zabbix-agent自身の監視方法について
ZABBIX 1.4.5を利用しているのですが、zabbix-agent自身を監視する方法についてご教授ください。
linuxのテンプレートにあった下記項目で設定していたのですが
監視対象のagentが落ちるとまったく情報が取れなくなりアラートも上がってきません。
{Template_Linux:proc.num[zabbix_agentd].last(0)}<1
そこで、エージェントを用いない監視方法である、シンプルチェックのTCPポート監視により下記設定を行ってエージェントが停止した際にアラートを検知しようとしたのですが、エージェントが落ちると情報が取得できなくなるだけで、ステータスが変化せずにエラーを検知できませんでした。
{Template_Standalone_zabbix:tcp,10050.last(0)}#1
以上
宜しくお願いします。
fukumaru - 投稿数: 8
はじめましてfukumaruです。私もzabbix勉強中の身です。
zabbixagentの生存監視については、以下のトリガで監視できるかと思います。
{テンプレート名:status.last(0)}=2
お試しください。
iwatani - 投稿数: 2
fukumaru様
申し訳ありませんが、
{テンプレート名:status.last(0)}=2
の具体的な設定方法が分からないため、設定方法についてご教授いただけませんでしょうか?
アイテムの設定においてタイプはどれを選んで、キーを何にするのでしょうか?
以上
宜しくお願いします。
fukumaru - 投稿数: 8
こんにちはfukumaruです。
アイテムにつきましては、
タイプ:zabbixエージェント
キー:status
データ型:整数
乗数;使用しない
で取れると思います。
お試しください。
kodai - 投稿数: 1341
こんにちは。
シンプルチェックの設定は「tcp,,10050」(カンマ2つ)が正しい設定ですね。
こちらの環境では、上記の設定でZABBIXエージェントが落ちたことを正常に検知できていますので、ひとまずはカンマの部分を修正して試されてみてはどうでしょうか?
takai - 投稿数: 20
こんにちは。いつもお世話になっています。
私もiwataniさんと同じ現象が起きましたのでご報告します。
まず、上でkodaiさんより頂いている、
ですが、バージョンに依存したりはしますでしょうか。
zabbix-1.4.5 をソースからコンパイルして使っているのですが、カンマを2つ入れてアイテムを登録した場合、ログ(ログレベルをでバックにしています)に "Too many parameters in [tcp,,10050]" と表示されます。
ソースを確認したところ、checks_simple.c の 98行目以降辺りで、確かにパラメータが3つ以上の場合(=アイテムのキーにカンマが2つ以上入っている場合)、該当のメッセージが出力されるようです。この場合、監視が行えません。(Cはほとんど読めないので間隔です。間違っていたらごめんなさい。)
2つ目。こちらの方が本質なのですが、以下の手順にてiwataniさんの事象と同等の事象が発生しました。
(1) Simple Check のアイテム(例えば、[tcp,80])と ZABBIX Agent のアイテム(例えば、perf_counter[\LogicalDisk(C:)\% Free Space])を作成する。(監視対象サーバにて80/tcpをサービスしている前提。)
(2) Simple Check に対応するトリガーを作成する。
(3) 監視対象サーバのZABBIX Agentプロセスを落とす。
※ すぐには何も起きませんが、Agent との疎通が取れなくなる為、しばらくすると、ホストの『状態』が変化する
(4) 上記の状態では、Agent を利用するperf_counterのアイテム収集ができなくなるのは当然だが、加えて、tcp,80 の監視も停止してしまう。
こちらもソースを眺めてみたのですが、Agent/SNMPポーリング/Simple Chekc(Ping以外)の監視は、全てpoller.cの中で実行しているように見えます。加えて、poller.cの中で上記3種類の監視項目を判別する前にホストの『状態』を確認し、状態が何らかの無効な値だと、本来実施できるはずのSimple Checkまで実行されず、結果としてトリガーのステータスが不明となっているように思います。(こちらも直観的に、なので間違っていたらごめんなさい。)
私が監視をしている環境(サーバ80台程度)でも、同じような事象(TCPポート監視が正常に行えない事がある)が発生していて、対処方法を検討しています。
今のところ、Simple CheckとAgent を使う監視について、Zabbix Server に登録する際に別のホストとして登録する案があるのですが、何か良い方法は無いでしょうか。(例えば、Zabbix Serverのログで特定の文字列を監視する事も考えてはいます。)
以上、長文になってしまい申し訳ないですが、知恵をお貸し頂けると幸いです。
kodai - 投稿数: 1341
こんにちは。
試してみたところ、確かに「tcp,10050」が正しいようです。マニュアルだけしか見てませんでした(汗。マニュアルの方が間違ってますね。
ソースを見てみたところ、takaiさんの通り、ZABBIXエージェントで監視が行えない場合にホストが「不明」になってしまい、シンプルチェックの監視まで止まってしまっているようです。
回避策も考えてみましたが、シンプルチェックでIPアドレスを指定するオプションがない以上、やはり同じホストを2つ登録してZABBIXエージェントの監視とシンプルチェックの監視で分けるしかなさそうですね。
takai - 投稿数: 20
こんにちは。いつもお世話になっています。
やはりホストを分けるのが分かり易いですかね…。
ご返信ありがとうございます。
kodai - 投稿数: 1341
次期バージョン1.8の開発版である1.7で試してみたところ、上記の問題は解決されているようです。
ソースまでは見れていないですが、ビルド7866で動作させて試したところZABBIXエージェントを停止していてもシンプルチェックの監視が動作しました。