zabbix監控Elasticsearch集羣

本節以 zabbix 爲例,介紹如何使用監控系統完成 Elasticsearch 的監控報警。node

github 上有好幾個版本的 ESZabbix 倉庫,都源自 Elastic 公司員工 untergeek 最先的貢獻。可是當時 Elasticsearch 尚未官方 python 客戶端,因此監控程序都是用的是 pyes 庫。對於最新版的 ES 來講,已經不推薦使用了。python

GitHub 地址見:https://github.com/Wasim37/zabbix-esgit


安裝配置

倉庫中包括三個文件:
一、ESzabbix.py
二、ESzabbix.userparm
三、ESzabbix_templates.xmlgithub

其中,前兩個文件須要分發到每一個 ES 節點上。若是節點上運行的是 yum 安裝的 zabbix,兩者的默認位置應該分別是:web

/etc/zabbix/zabbix_externalscripts/ESzabbix.py
/etc/zabbix/agent_include/ESzabbix.userparm

而後在各節點安裝運行 ESzabbix.py 所需的 python 庫依賴:api

yum install -y python-pbr python-pip python-urllib3 python-unittest2
pip install elasticsearch

安裝成功後,你能夠試運行下面這行命令,看看命令輸出是否正常:瀏覽器

/etc/zabbix/zabbix_externalscripts/ESzabbix.py cluster status
0

最後一個文件是 zabbix server 上的模板文件,不過在導入模板以前,還須要先建立一個數值映射,由於在模板中,設置了集羣狀態的觸發報警,沒有映射的話,報警短信只有 0, 1, 2 數字不是很易懂。bash

建立數值映射,在瀏覽器登陸 zabbix-web,菜單欄的 Zabbix Administration 中選擇 General 子菜單,而後在右側下拉框中點擊 Value Maping。elasticsearch

完成之後,便可在 Templates 頁中經過 import 功能完成導入 ESzabbix_templates.xml。ide

在給 ES 各節點應用新模板以前,須要給每一個節點定義一個 {$NODENAME} 宏,具體值爲該節點 elasticsearch.yml 中的 node.name 值。從統一配管的角度,建議你們都設置爲 ip 地址。


模板應用

導入完成後,zabbix 裏多出來三個可用模板:

  • Elasticsearch Node
    Cache 其中包括兩個 Application:ES Cache 和 ES Node。分別有 Node Field Cache Size, Node Filter Cache Size 和 Node Storage Size, Records indexed per second 共計 4 個 item 監控項。在完成上面說的宏定義後,就能夠把這個模板應用到各節點(即監控主機)上了。

  • Elasticsearch Service
    只有一個監控項 Elasticsearch service status,作進程監控的,也應用到各節點上。

  • Elasticsearch Cluster
    包括 11 個監控項,以下列所示。其中,ElasticSearch Cluster Status 這個監控項連帶有報警的觸發器,並對應以前建立的那個 Value Map。
    Cluster-wide records indexed per second
    Cluster-wide storage size
    ElasticSearch Cluster Status
    Number of active primary shards
    Number of active shards
    Number of data nodes
    Number of initializing shards
    Number of nodes
    Number of relocating shards
    Number of unassigned shards
    Total number of records

Elasticsearch Cluster模板下都是集羣整體狀況的監控項,因此,運用在一臺有 ES 集羣讀取權限的主機上便可,好比 zabbix server。

zabbix監控成功後,能夠在grafana上進行相關配置,展現圖像。下面是我初步搭建的界面:


其餘

untergeek 最近剛更新了他的倉庫,重構了一個 es_stats_zabbix 模塊用於 Zabbix 監控,有興趣的讀者能夠參考:https://github.com/untergeek/zabbix-grab-bag/blob/master/Elasticsearch/es_stats_zabbix.README.md

相關文章
相關標籤/搜索