Tech Sketch Bucket of Technical Chips by TIS Inc.

フリーで使える統合監視の鬼、Zabbixでナウい監視をする〜独自のkeyを設定する〜

Pocket

この記事はeXcale Developer's Blogから移転されたものです。


eXcale 開発チームの泉谷(@syguer)です。
今回は、強力な機能であるUser Parameterを使って独自のkeyを設定する方法を紹介します。


User Parameterについて

以前の記事で、Itemを追加するときに設定するkeyは用意されているものを使うと説明しました。
用意されているkeyは汎用的にできているので、基本的な監視を行う上では特に問題ありませんが、ミドルウェア固有のステータスといった値の取得はできません。
そういう時のためにZabbixではUser Parameterというものが用意されています。
User Parameterを使うと、監視対象ホストで任意のコマンドを実行した結果の値をZabbix serverで受け取ることができるので、監視できる項目の幅がぐっと広がります。

eXcaleでは、User Parameterを使うことでMongoDBのパラメータを監視したり、RabbitMQのサービス稼働確認などを行っています。

今回はUser Parameterのイメージを掴むための簡単な例として、Zabbix agentのログ(/var/log/zabbix/zabbix_agentd.log)の行数を取得して監視してみます。


User Parameterの設定方法

User ParameterはZabbix agentが動いているホストの設定ファイルに書きます。
直接zabbix_agentd.confに書いても良いのですが、それだと対象が増えた際に管理し辛くなるので、zabbix_agentd.d配下にコンポーネント毎の設定ファイルを作るようにすることを推奨します。
zabbix_agentd.d配下のファイルはzabbix_agentd.confに以下の行を追加して読み込むようにします。

今回はzabbix_agentd.d/userparameter_zabbix_agent.confというファイルを用意し、そこに設定を書きます。
UserParameterのフォーマットは以下のようになっています。

キー名は全てのkeyでユニークである必要があります。
実行するコマンドは自由に記載できます。ここがUser Parameterの強力なところです。

今回は「Zabbix agentのログ(/var/log/zabbix/zabbix_agentd.log)の行数を取得する」ので以下のように設定します。

設定を反映するためにはZabbix agentの再起動が必要なので、設定変更後は忘れずに再起動をするようにしてください。

User ParameterをZabbix serverで利用する

Zabbix serverでUser Parameterを使うには、Item追加時のkeyに先ほど追加したキーを入れます。

※Itemの追加方法についてはこちらの記事で言及しているので参照してください。

値が取れていることが確認できたでしょうか?

値が取得できない場合は、以下のような点を確認してみてください。

  • 設定変更後にZabbix agentを再起動したか
  • コマンドが誤っていないか
  • Zabbix agent実行ユーザーで実行できるコマンドか
  • Zabbix agentのログにコマンドに失敗しているログがでていないか

最後に

今回はZabbixのUser Parameterを使って独自のkeyを設定する方法を紹介しました。
User Parameterを使いこなせばどんなものでも監視できると言っても過言ではないでしょう。
工夫して使ってみてください!

エンジニア採用中!私たちと一緒に働いてみませんか?