官方地址:

https://github.com/justwatchcom/elasticsearch_exporter

下载exporter:

https://github.com/justwatchcom/elasticsearch_exporter/releases/download/v1.1.0/elasticsearch_exporter-1.1.0.linux-amd64.tar.gz

安装:

tar -xf elasticsearch_exporter-1.1.0.linux-amd64.tar.gz -C /usr/local/
ln -sv elasticsearch_exporter-1.1.0.linux-amd64/ elasticsearch_exporter

配置systemd:

cat << EOF > /usr/lib/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 = /usr/local/elasticsearch_exporter/elasticsearch_exporter --es.all --es.indices --es.timeout 20s
ExecStop= /usr/bin/kill /usr/local/elasticsearch_exporter/elasticsearch_exporter

[Install]
WantedBy=default.target
EOF

启动:

systemctl daemon-reload
systemctl enable elasticsearch_exporter.service
systemctl start  elasticsearch_exporter.service

prometheus.yml的配置:只要获取一个节点的metrics就可以监控整个集群。

- job_name: 'elasticsearch'
      scrape_interval: 60s
      scrape_timeout:  30s
      metrics_path: "/metrics"
      static_configs:
      - targets:
        - '192.168.50.153:9109'
        labels:
          service: elasticsearch
      relabel_configs:
      - source_labels: [__address__]
        regex: '(.*)\:9109'
        target_label:  'instance'
        replacement:   '$1'
      - source_labels: [__address__]
        regex:         '.*\.(.*)\.lan.*'
        target_label:  'environment'
        replacement:   '$1'

模板:这模板描述里有详细的 elasticsearch_exporter 使用教程和配置。

https://grafana.com/grafana/dashboards/2322

监控多个集群:在prometheus中配置多个job_name字段即可,在grafana面板中切换cluster即可。