この記事は1398文字4で読めます

ZabbixでElasticsearchのクラスタを監視したい、したくない?

Elasticsearchのノードを先日1つ追加しましたので、ちょい傾向とかを確認しようと思いZabbixで監視できるテンプレートとかを作ってみました。

Elastic_zab

#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をインポートします。

Zabbixのテンプレートインポート画面でXMLファイルを選択

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

テンプレート一覧にElastic clusterが表示された画面

#Elasticsearchのノードにテンプレートを当てる

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

Elasticsearchノードにテンプレートを適用する設定画面

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

ZabbixマクロでElasticsearchのIPとポートを設定する画面

設定するマクロは以下の2つです。

  • {$ESIP} = ElasticsearchのIPもしくはDNSネームを設定します。
  • {$ESPORT} = Elasticsearchのポートを設定します。

#監視する

うまく監視できるとこんなグラフができます。

ZabbixでElasticsearchクラスタの監視グラフが表示された画面

#おまけ Zabbixの予測関数を使ってみた

いくつかの監視アイテムはforecastやtimeleftといったZabbixの関数を利用しています。

予測は線形としています。

予測値はトリガー設定していないのでお好みでトリガーを設定するのもいいのではないでしょうか。

Zabbixのforecast関数を使った予測値グラフの表示例

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

tubone24にラーメンを食べさせよう!

ぽちっとな↓

Buy me a ramen