天天看點

如何實作對ELK各元件的監控?試試Metricbeat

如何實作對ELK各元件的監控?試試Metricbeat

一、前言

開發排查系統問題用得最多的手段就是檢視系統日志,

ELK

Elastic

公司開源的實時日志處理與分析解決方案,已經為日志處理方案的主流選擇。

而在生産環境中,如何針對

ELK

進行監控,保證各個元件正常運作?如何知道目前的資源是否能承受線上的壓力呢?本文主要是以

Elastic Stack 7.x

版本為例,介紹如何監控

ELK

自身的各個元件。

二、總體架構

常見的

Elastic Stack

日志系統架構如下

如何實作對ELK各元件的監控?試試Metricbeat

其中可使用

Metricbeat

元件作為輕量級監視代理,通過HTTP端點收集各個元件的監控資訊,并把監控資料落盤到

Elasticsearch

中,最終通過

Kibana

以圖形化的方式展示各種監控資料。

如何實作對ELK各元件的監控?試試Metricbeat

三、部署Metricbeat

建議在每台伺服器上都運作

Metricbeat

收集名額,多個Metricbeat執行個體的名額将在

Elasticsearch

伺服器上合并。

下載下傳對應版本的

Metricbeat

位址如下:

https://www.elastic.co/cn/downloads/past-releases#metricbeat

3.1. 收集Elasticsearch資訊

Metricbeat

中啟用并配置

Elasticsearch x-pack

子產品

從安裝目錄中,運作:

./metricbeat modules enable elasticsearch-xpack           

預設情況下,子產品從

http://localhost:9200

收集 Elasticsearch 名額。如果本地伺服器有不同的位址,請在 modules.d/elasticsearch-xpack.yml 中将其添加到主機設定。

3.2. 收集Kibana資訊

Metricbeat

Kibana x-pack

./metricbeat modules enable kibana-xpack           

該子產品将預設從

http://localhost:5601

收集 Kibana 監測名額。如果本地 Kibana 執行個體有不同的位址,則必須通過 modules.d/kibana-xpack.yml 檔案中的 hosts 設定進行指定。

3.3. 收集Logstash資訊

Metricbeat

Logstash x-pack

./metricbeat modules enable logstash-xpack           
http://localhost:9600

收集 Logstash 監測名額。如果本地 Logstash 執行個體有不同的位址,則必須通過 modules.d/logstash-xpack.yml 檔案中的 hosts 設定進行指定。

3.4. 收集Beats資訊

所有類型的

Beats

配置都一樣

3.4.1. 開啟HTTP端點

需要開啟

Beats

自己的HTTP端點輸出監控資料,例如

Filebeat

修改

filebeat.yml

檔案,在最後添加以下配置

http:
  enabled: true
  host: 0.0.0.0
  port: 5066           

3.4.2. 啟用Beat子產品

Metricbeat

Beat x-pack

./metricbeat modules enable beat-xpack           
http://localhost:5066

收集 beat 監測名額。如果正在監測的 beat 執行個體有不同的位址,則必須通過 modules.d/beat-xpack.yml 檔案中的 hosts 設定進行指定。

3.5. 資料輸出配置

配置

Metricbeat

以發送至監測叢集,在

metricbeat.yml

檔案中修改以下内容

output.elasticsearch:
  hosts: ["http://localhost:9200"] ## Monitoring cluster

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"           
PS:位址、使用者名和密碼按實際情況修改

3.6. 啟動Metricbeat

./metricbeat -e           

四、收集Elasticsearch日志

使用

Filebeat

收集

Elasticsearch

自身的日志資料。

首先需要在

Elasticsearch

所在的伺服器中安裝

Filebeat

元件。

4.1. 啟用es子產品

Filebeat

Elasticsearch

子產品,執行以下指令

./filebeat modules enable elasticsearch           

4.2. 配置es子產品

修改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:日志路徑按實際情況修改

4.3. 配置輸出

filebeat.yml

檔案,配置es相關資訊

output.elasticsearch:
  hosts: ["localhost:9200"]
  
  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"           

4.4. 啟動Filebeat

./filebeat -c filebeat.yml -e           

五、檢視監控界面

進入

Kibana

的控制台界面,進入

堆棧監測

菜單

如何實作對ELK各元件的監控?試試Metricbeat

即可檢視各個元件的監控資訊

如何實作對ELK各元件的監控?試試Metricbeat
如何實作對ELK各元件的監控?試試Metricbeat

掃碼關注有驚喜!

如何實作對ELK各元件的監控?試試Metricbeat