Zabbix-agent2について
Zabbix-agent2の話を説明する前にZabbixについてご説明します。
ZabbixServerとは
ZabbixServerとは監視サーバの1つとなります。
システム監視として、プロセス、リソース、ログ等を監視し、条件(トリガー)の設定にて異常を検知し通知を行うシステムとなります。大きく分けてシンプルチェックとエージェント監視があります。(SNMP等については今回話からは除外致します。)
シンプルチェックとは
Ping監視やPortへ接続を行い、応答を監視。
エージェント監視とは
監視対象にagentをインストールし、プロセスはリソースの情報を吸い上げその値を監視。
zabbix-agentについて
Zabbix-agentを監視対象のサーバにインストールします。サービス監視についてはほぼデフォルトのテンプレートのまま監視できてしまう為、特に気にせず使っていましたが、今回Linuxサーバにインストールされたサードパーティ製のサービスを監視しようとして苦労しました。
結論から言うと、今まで利用していたzabbix-agentではLinuxサーバのサービス監視ができなかったからです。
いざサービス監視を行おうとしてサービス名を確認し、監視させようとした際に「あれ?」。
サービス監視として今まで登録していたものは、サーバで動いているプロセスの監視やPortの監視であってサービスのステータス監視がない。
監視サーバとしては普通にあるものと思っておりました。Windowsサーバについてはあるのに、なぜない?
回避策
ひとまず監視を行いたいため、サービス起動時に動いているプロセスを調べ取り敢えず、あるもので監視設定はしたが、「ん~なにか納得いかない」
zabbix-agent2
Linuxのサービス監視する方法を調べていると、いつの間にかzabbix-agentとzabbix-agent2の2種類のagentが出ていた(2019年にリリース)。Zabbix-ServerとZabbix-agentが対と思い込んでいたため、新たにzabbix-agent2があったことを今まで気が付かなかったのは正直恥ずかしかった。Zabbix-agent2について調べていくうちに下記を使えば監視ができそうだ。
systemd.unit.info[監視対象サービス名]
監視設定を行ったところサービスのステータスについて取得「active」。今までの監視は停止か起動の0か1の値を返していたが、今回は文字列なのにびっくり。
動作テストとして値がactive以外は全て障害として登録を行いサービス停止するとアラート通知が正常に行われました。
これからはzabbix-agent2を利用すればサービスで起動しているプロセスを洗い出す必要なくサービスの監視ができることが分かりました。
最後に
サービス監視は行えるようになりましたが、サービスの障害検知については、サービスは起動しているがプロセスが落ちて正常動作していない場合もあります。どっちの監視が優れているかではなく監視の用途ごとに使い分ける必要は残りますがZabbix-agent2を使えばどちらの監視も行える為、参考として試しに使ってみるのはいかがでしょうか。
Zabbixは、ラトビア共和国にあるZabbix LLCの商標です