読者です 読者をやめる 読者になる 読者になる

ログってなんぼ

日々のメモです

Zabbix:td-agentのバッファを監視する

Zabbix2.0で検証

EnableRemoteCommands=1 が前提です。

アイテムの追加

td-agentのconfに指定したバッファ用のディレクトリを監視します

system.run[ls -l /var/log/td-agent/buffer | wc -l]

f:id:Okisanjp:20160714153703p:plain

いいですね。

トリガーの追加

..td-agentテンプレートがあるとして。

{..td-agent:system.run[ls -l /var/log/td-agent/buffer | wc -l].last(0)}>5

バッファが溜まってきたらアラート出るようになった。

ちなみに上記コマンドを実行すると、ファイルが一つもなくてもトータル行数を表示する行だけは出力されてしまうので最低値は1となります。ゼロにはならないので注意。

zabbix_getでチェックする際の注意

Server側からzabbix_getコマンドでチェックする場合は

# zabbix_get -s IP_ADDR -k system.run[ls -l /var/log/td-agent/buffer | wc -l]

とするとエラーになりました。

# zabbix_get -s IP_ADDR -k system.run['ls -l /var/log/td-agent/buffer | wc -l']

コマンド部分をクオートしてあげると値が取れますが、自分の環境だとシングルクオートでくくった上記文字列をアイテムに設定すると、値が取得できないサーバーが発生してしまいました・・・ zabbix_getでは値が取れるのにZabbixのダッシュボードから見ると「取得不可」になってしまった場合の参考になれば。

リモートコマンド有効に出来ない場合

UserParameterに同じ物書けばいいと思う。

でもワンライナーで済むものはリモートコマンド使ったほうがかなり楽ですね。Zabbix側で設定してサーバーにテンプレート追加するだけなんで。。。