開發排查系統問題用得最多的手段就是查看系統日誌,ELK
是 Elastic
公司開源的實時日誌處理與分析解決方案,已經爲日誌處理方案的主流選擇。json
而在生產環境中,如何針對 ELK
進行監控,保證各個組件正常運行?如何知道目前的資源是否能承受線上的壓力呢?本文主要是以 Elastic Stack 7.x
版本爲例,介紹如何監控 ELK
自身的各個組件。vim
常見的 Elastic Stack
日誌系統架構以下服務器
其中可以使用 Metricbeat
組件做爲輕量級監視代理,經過HTTP端點收集各個組件的監控信息,並把監控數據落盤到 Elasticsearch
中,最終經過 Kibana
以圖形化的方式展現各類監控數據。架構
建議在每臺服務器上都運行 Metricbeat
收集指標,多個Metricbeat實例的指標將在 Elasticsearch
服務器上合併。app
下載對應版本的 Metricbeat
地址以下:ssh
https://www.elastic.co/cn/dow...elasticsearch
在 Metricbeat
中啓用並配置 Elasticsearch x-pack
模塊
從安裝目錄中,運行:spa
./metricbeat modules enable elasticsearch-xpack
默認狀況下,模塊從 http://localhost:9200 收集 Elasticsearch 指標。若是本地服務器有不一樣的地址,請在 modules.d/elasticsearch-xpack.yml 中將其添加到主機設置。代理
在 Metricbeat
中啓用並配置 Kibana x-pack
模塊日誌
./metricbeat modules enable kibana-xpack
該模塊將默認從 http://localhost:5601 收集 Kibana 監測指標。若是本地 Kibana 實例有不一樣的地址,則必須經過 modules.d/kibana-xpack.yml 文件中的 hosts 設置進行指定。
在 Metricbeat
中啓用並配置 Logstash x-pack
模塊
./metricbeat modules enable logstash-xpack
該模塊將默認從 http://localhost:9600 收集 Logstash 監測指標。若是本地 Logstash 實例有不一樣的地址,則必須經過 modules.d/logstash-xpack.yml 文件中的 hosts 設置進行指定。
全部類型的
Beats
配置都同樣
須要開啓 Beats
本身的HTTP端點輸出監控數據,例如 Filebeat
修改 filebeat.yml
文件,在最後添加如下配置
http: enabled: true host: 0.0.0.0 port: 5066
在 Metricbeat
中啓用並配置 Beat x-pack
模塊
./metricbeat modules enable beat-xpack
該模塊將默認從 http://localhost:5066 收集 beat 監測指標。若是正在監測的 beat 實例有不一樣的地址,則必須經過 modules.d/beat-xpack.yml 文件中的 hosts 設置進行指定。
配置 Metricbeat
以發送至監測集羣,在 metricbeat.yml
文件中修改如下內容
output.elasticsearch: hosts: ["http://localhost:9200"] ## Monitoring cluster # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" #password: "changeme"
PS:地址、用戶名和密碼按實際狀況修改
./metricbeat -e
使用 Filebeat
收集 Elasticsearch
自身的日誌數據。
首先須要在 Elasticsearch
所在的服務器中安裝 Filebeat
組件。
在 Filebeat
中啓用並配置 Elasticsearch
模塊,執行如下命令
./filebeat modules enable elasticsearch
修改es模塊的配置信息,指定日誌路徑
vim modules.d/elasticsearch.yml
修改成如下內容
- module: elasticsearch server: enabled: true var.paths: - /app/elk/elasticsearch/logs/*_server.json gc: enabled: true var.paths: - /app/elk/elasticsearch/logs/gc.log.[0-9]* - /app/elk/elasticsearch/logs/gc.log audit: enabled: true var.paths: - /app/elk/elasticsearch/logs/*_audit.json slowlog: enabled: true var.paths: - /app/elk/elasticsearch/logs/*_index_search_slowlog.json - /app/elk/elasticsearch/logs/*_index_indexing_slowlog.json deprecation: enabled: true var.paths: - /app/elk/elasticsearch/logs/*_deprecation.json
PS:日誌路徑按實際狀況修改
修改 filebeat.yml
文件,配置es相關信息
output.elasticsearch: hosts: ["localhost:9200"] # Optional protocol and basic auth credentials. #protocol: "https" #username: "elastic" #password: "changeme"
PS:地址、用戶名和密碼按實際狀況修改
./filebeat -c filebeat.yml -e
進入 Kibana
的控制檯界面,進入 堆棧監測
菜單
便可查看各個組件的監控信息
掃碼關注有驚喜!