この記事は1398文字で約4分で読めます
ZabbixでElasticsearchのクラスタを監視したい、したくない?
Elasticsearchのノードを先日1つ追加しましたので、ちょい傾向とかを確認しようと思いZabbixで監視できるテンプレートとかを作ってみました。
Table of Contents
使い方
Elastic_zabに同梱しているelastic.shをZabbixサーバーのexternalscriptsディレクトリに配置します。実行権限もZabbixユーザーにします。
$ git clone https://github.com/tubone24/Elastic_zab
$ cp -p Elastic_zab/elastic.sh /usr/lib/zabbix/externalscripts/
$ chown zabbix. /usr/lib/zabbix/externalscripts/elastic.sh
$ chmod 751 /usr/lib/zabbix/externalscripts/elastic.sh
Zabbixにテンプレートをインストールする
Zabbix画面の設定のテンプレートからelasticsearch_zab.xmlをインポートします。

うまくインストールできれば、テンプレート一覧にElastic clusterが出現します。

Elasticsearchのノードにテンプレートを当てる
Elasticsearchのノードにテンプレートを当てます。

合わせて、ElasticsearchのIPとポートをマクロで設定しておきます。

設定するマクロは以下の2つです。
- {$ESIP} = ElasticsearchのIPもしくはDNSネームを設定します。
- {$ESPORT} = Elasticsearchのポートを設定します。
監視する
うまく監視できるとこんなグラフができます。

おまけ Zabbixの予測関数を使ってみた
いくつかの監視アイテムはforecastやtimeleftといったZabbixの関数を利用しています。
予測は線形としています。
予測値はトリガー設定していないのでお好みでトリガーを設定するのもいいのではないでしょうか。

こんな感じで計算アイテムで簡単に実装できるのが魅力ですね。監視ツールとしては他にもGrafana World Pingを使った死活監視を試したり、AWS X-RayとDatadog APMを連携した分散トレーシングにも取り組んでいます。Elasticsearchの活用では企業名サジェスト機能の開発もご覧ください。

