zabbix監控Elasticsearch集群


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

github 上有好幾個版本的 ESZabbix 倉庫,都源自 Elastic 公司員工 untergeek 最早的貢獻。但是當時 Elasticsearch 還沒有官方 python 客戶端,所以監控程序都是用的是 pyes 庫。對於最新版的 ES 來說,已經不推薦使用了。

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


安裝配置

倉庫中包括三個文件:
1、ESzabbix.py
2、ESzabbix.userparm
3、ESzabbix_templates.xml

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

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

然后在各節點安裝運行 ESzabbix.py 所需的 python 庫依賴:

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 數字不是很易懂。

創建數值映射,在瀏覽器登錄 zabbix-web,菜單欄的 Zabbix Administration 中選擇 General 子菜單,然后在右側下拉框中點擊 Value Maping。

完成以后,即可在 Templates 頁中通過 import 功能完成導入 ESzabbix_templates.xml。

在給 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM