Zabbix-Angetの監視のアイテムとトリガー設定について
お世話になっております。
ZabbixのAgent監視を行うために以下のアイテムとトリガーを設定しています。
Zabbixのバージョンは1.8.10-1を使っています。
--アイテム
タイプ:Zabbixエージェント
キー:agent.ping
データ型:数値(整数)
データの形式:10進数
--トリガー
条件式:agent.ping.last(0)}=0
イベント生成:ノーマル
深刻度:重度の障害
この設定でZabbix-Agentを停止して動作確認を行いましたが、
Agentとの通信が行えなくなるため、ステータスが重度の障害(赤色)ではなく、
不明(グレー)になってしまい、「重度の障害」で設定しているアクションが実行されません。
Agentが停止した際に重度の障害でトリガーを上げたいのですが、
この方法では実装出来ないのでしょうか?
また、代替の方法などありましたら、教えていただけますでしょうか。
宜しくお願いします。
fripper - 投稿数: 495
過去にも私が同じ質問をしたことがあるのですが、
agent.ping アイテムの値が戻ってこなくなるため、不明となります
ですので、トリガーでの判定にて、nodata 関数も組み合わせて
{host:agent.ping.last(0)}=0=1
などとすることで、検出ができるようになります
wakaba - 投稿数: 228
広瀬です
弊社環境でも同様事象がありました
ただ、ver1.4の頃から利用していて、エージェントが落ちる
ケースは一度もなかったので余り重視はしていません。
いちを、net.tcp.serviceアイテムとシンプルチェックを併用
しています
ただ、この手の監視設定を入れると、エージェントを止めた
い時にアラートをいちいち止めるか、メンテナンス設定入れる
る必要があるので、若干煩わしいです
kodai - 投稿数: 1341
fripperさんも書かれていますが、nodata()関数を利用して
{hostname:agent.ping.nodata(300)}=1
などとトリガーで設定してみてください。nodata()関数の詳細はオフィシャルマニュアルを見ていただくのが一番いいと思います。
http://www.zabbix.com/documentation/jp/1.8/manual/config/triggers#トリガー関数
ちなみに、agent.pingとnodata()の組み合わせで検知はできるのですが、個人的には分かりにくいと思っています。本家のBTSにはZabbixサーバーとエージェントでheartbeat通信をするのが良いのでは、と提案を上げていたりします。(まだ特にロードマップには取り上げられていないですけれど)
https://support.zabbix.com/browse/ZBXNEXT-1022
matt - 投稿数: 13
以前のやり取りはこちらですね。
zabbix_agentd の停止検出について
http://www.zabbix.jp/node/1482
同じ用途に使えそうな「statusキーの非推奨」にも言及してありますので新規訪問者のご参考までに。
http://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/za...
にも言及ありました。
Can be used as a TCP ping. Use function nodata() to check for host unavailability.
因みにですが、agent.pingでagent自体は存在しかつunavailableで1以外を返すことはあるのでしょうか。
つまり {hostname:agent.ping.nodata(300)}=1 以外に{hostname:agent.ping.last(0)}#1 を入れる意義はあるのかと。
もし事例を御存知でしたら訓えてください。
kodai - 投稿数: 1341
agent.pingのキーは常に1を返すようになっていまして、他の値を返すことはありません。エージェントとの通信が行えれば1、行えなければ何もデータが帰ってこないということになります(実際にはポーリングのタイムアウト)。
ですので、{hostname:agent.ping.last(0)}#1を設定する意味はなく、nodata()の方だけ設定しておけば大丈夫です。
matt - 投稿数: 13
kodaiさん
情報有難うございました。nodataのみの使用にします。
cloret - 投稿数: 25
お世話になっております。
たくさんのサポートありがとうございました。
nodataとagent.pingの値でトリガーを設定することで、
Zabbix-AgentがDownした際の検出が出来るようなりました。
とりあえずは、この方法で実装しようかと思います。