Prometheus
Elasticsearch
監控
Prometheus 監控 Elasticsearch cluster 實作
2019/02/01 09:25:43
3
3517
1. Prometheus elasticsearch_exporter 簡介
根據 Promtheus 上的 Exporters and Integrations 頁面 所載,Prometheus 有釋出給 Elasticsearch 所用的 exporter ,也就是 elasticsearch_exporter 。
本文即是根據 elasticsearch_exporter 上的指示,在我們 lab 的 Elasticsearch replica set 上的實作步驟。
2. 環境說明
lab 的環境,是一套 Elasticsearch replica set,由 caai3 以及 caai4 所組成,資料會自動地由 caai3 複製到 caai4 上。
Hostname | IP : Port | 說明 | |
Prometheus server | caai4 | 192.168.1.144:3000 | Red Hat 7.4 |
Elasticsearch node 1 | caai3 | 192.168.1.143:9220 | Red Hat 7.4 |
Elasticsearch node 2 | caai4 | 192.168.1.144:9220 | Red Hat 7.4 |
公司的 Elasticsearch 是採用 replica set 的方式運作,是由 192.168.1.143:9220 以及 192.168.1.144:9220 所組成。本文直接從 elasticsearch exporter release 下載 binary,安裝在主機 caai3 上。
然後再啟動 elasticsearch_exporter 納入 Prometheus 的監控,完整步驟如
3. 實作
裡所述。
3. 實作
3.1 從 elasticsearch exporter release 下載 elasticsearch exporter binary ,本文採用的是 elasticsearch_exporter-1.0.4rc1.linux-amd64.tar.gz
3.2 解開
elasticsearch exporter
# tar zxvf elasticsearch_exporter-1.0.4rc1.linux-amd64.tar.gz -C /opt
3.3 在 caai3 上,新增 /etc/systemd/system/elasticsearch_exporter.service ,加入以下的內容
[Unit]
Description=Prometheus elasticsearch_exporter
After=local-fs.target network-online.target network.target
Wants=local-fs.target network-online.target network.target
[Service]
User=root
Nice=10
ExecStart = /opt/elasticsearch_exporter-1.0.4rc1/elasticsearch_exporter -es.timeout 20s -es.all=true -es.uri=http://192.168.1.143:9220 -es.indices=true -es.shards=true
ExecStop= /usr/bin/killall elasticsearch_exporter
[Install]
WantedBy=default.target
其中,
-es.url 這裡設定的是 ES 的連線方式,設定從其中一台連進去即可
3.4 執行以下的執行啟動 elasticsearch_export
# systemctl daemon-reload
# systemctl start elasticsearch_exporter
elasticsearch_exporter 啟動後,會使用 9108 port。可以使用以下的指令確認:
# systemctl status -l elasticsearch_exporter
會看到如下的畫面

如上圖,就代表 elasticsearch_exporter 已經正常的啟動,並且在 9108 port listen
接著,就可以設定 Prometheus server,將該 elasticsearch_exporter 納入監控
3.5 設定 Prometheus server 上的 /etc/prometheus.yaml
加入以下這一段
## ES_exporter
- job_name: 'ES_exporter'
static_configs:
- targets:
- '192.168.1.143:9108'
然後,重新啟動 Prometheus server
3.6 在 Grafana server 上新增 dashboard
最後,在 Grafana 上新增用來展示 elasticsearch_exporter metrics 的 dashboard 就大功告成了
在這裡要大力推薦 https://grafana.com/dashboards/2322 這個強大的 dashboard
以下就是實際的截圖
雖然我們只設定了 replica set 的其中一個 server,但從 dashboard 上,可以同時看到所有的 node

如上圖,我們可以看到 4 個 nodes:即兩個 dataNode 以及兩個 router。其中,es-dataNode1 / es-router1 位在 caai3 上;而
es-dataNode2 / es-router2 則是位在 caai4 上。
以下是該 dashboard 所呈現的所有資訊,因為資訊繁多,在此就不一一地解釋了。

4. 參考資料
1. Elasticsearch exporter :
https://github.com/justwatchcom/elasticsearch_exporter
2. Elasticsearch exporter 參數設定: https://grafana.com/dashboards/2322