Docker筆記02-日誌平臺ELK搭建
OS: Centos7
準備工作:
虛擬機中安裝Centos, 搭建Docker環境
ELK簡介: 略
文檔地址 https://elk-docker.readthedocs.io/
需要註意的是在Beats套件加入ELK Stack後,新的稱呼是 Elastic Stack , 本次實踐的是 filebeat + elk
由於elk鏡像很大7.0.1版本大約1.8G 開始前建議將鏡像源設置成國內地址 如阿裏鏡像庫,網易鏡像庫等
阿裏鏡像源設置可參考 https://www.cnblogs.com/anliven/p/6218741.html/
1.下載鏡像
docker pull sebp/elk
2.運行鏡像
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -v /usr/dockerfile:/data -it -d --name elk sebp/elk
- 5601 (Kibana web interface).
- 9200 (Elasticsearch JSON interface).
- 5044 (Logstash Beats interface, receives logs from Beats such as Filebeat – see the Forwarding logs with Filebeat section).
本機elk鏡像運行有點慢,查看運行日誌
docker logs elk
3. 配置logstash文件 可以不用配置 由於filebeat比logstash有更好的性能基本是用filebeat搜集日誌後直接發給elasticsearch來分析存儲
如果需要處理日誌可以filebeat收集日誌發給logstash,再由logstash整理後給elasticsearch
vim /usr/dockerfile/config/logstash.yml
input 數據來源是filebeat 端口是5044 禁用ssl
output 輸出是elasticsearch 配置 elasticsearch 地址 和索引
input {
beats {
port => 5044
ssl => false
codec => "json"
}
}
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
index => "filebeat-%{+YYYY.MM.dd}"
}
}
4.查看elk是否成功啟動
host 192.168.95.131 是本地虛擬機的ip
http://192.168.95.131:9200/_search?pretty
http://192.168.95.131:5601/
能正常打開頁面表示成功了
5.安裝filebeat
可以根據Kibana頁面提示安裝filebeat
進入Kibana Home頁後 選擇 Add log data => Logstash logs
根據對應主機系統選擇不同的安裝方式
6.配置filebeat.yml
cd /etc/filebeat 進入配置文件路徑
ls fields.yml filebeat.reference.yml filebeat.yml modules.d
需要配置的就是filebeat.yml , filebeat.reference.yml 是完整的配置項
filebeat.inputs:
- type: log
enabled: true # 啟用 #
paths:
- /data/logs/*.log # 掃描的文件logs目錄下所有.log後綴的文件 #
- /data/logs/*/*.txt # 掃描logs目錄下文件夾下的.txt後綴的文件#
fields: # 標簽 表示 name = host value = 192.168.95.130 logstash中 獲取方式 fields.host #
host: "192.168.95.130"
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: true
setup.template.settings:
index.number_of_shards: 1
_source.enabled: true
output.elasticsearch:
hosts: ["192.168.95.131:9200"] #elasticsearch 地址#
processors:
- add_host_metadata: ~
- add_cloud_metadata: ~
- drop_fields:
fields: ["cpu.user","cpu.system","host.os.family"] # 過濾的字段 #
logging.to_files: true # filebeat 運行日誌 保存到 /var/log/filebeat 路徑下 #
logging.files:
path: /var/log/filebeat
7.filebeat 停止/啟動/狀態查看命令
sudo service filebeat stop
sudo service filebeat start
sudo service filebeat status
啟動filebeat後需查看status來確認是否成功啟動,通常失敗的原因是filebeat.yml文件配置有誤
成功狀態如下 :
8.驗證elk平臺是否正常
登陸Kibanna > Management > Kinbana > Index Patterns 根據提示創建索引
點擊 Discover 選擇索引 filebeat-* 或者 logstash-* 點擊刷新 查看日誌
或者點擊Logs 菜單 查看所有日誌 可以點擊 Stream live 實時查看日誌
遇到的坑:
1.filebeat 啟動時提示成功了 但是收集不到日誌,使用 sudo service filebeat status 查看啟動狀態 發現是失敗的,後來驗證是filebeat.yml配置錯誤
elk基礎功能搭建完成
其他功能還在探索中....
參考
https://www.imooc.com/article/70996
Docker筆記02-日誌平臺ELK搭建