障害状態から正常状態への手動変更について
Linuxサーバにて、ログファイルの監視を実施しております。
設定したトリガーにより、特定のログを検知し、ダッシュボードに"致命的な障害"として表示させるところまで実装できております。
希望として、"致命的な障害"として表示されている状態を任意のタイミングで正常な状態に更新したいと考えております。
例えば、「障害対応コメント」に何か入力すれば、"致命的な障害"状態であった監視対象ホストの状態が正常な状態に変更されるなど、手動操作によって状態を変更したいと考えております。
ご教示の程、よろしくお願い致します。
【使用しているZABBIXパッケージ】
zabbix-jp-release-6-6.noarch
zabbix-sender-2.0.5-1.el6.x86_64
zabbix-agent-2.0.5-1.el5.x86_64
zabbix-2.0.5-1.el5.x86_64
chironex8 - 投稿数: 7
ダッシュボード上の障害表示を正常にするという意味ではダッシュボード上のフィルタ設定(スパナのボタン)を押し、ダッシュボードフィルタを有効にし下のプルダウンから「障害対応コメント未入力のみ表示」を選択するとダッシュボード上では対応コメントを残すと「正常」になったはずです。
redbox - 投稿数: 21
これは私も同じようなことがやりたいと考えていました。
Nagiosなど他の監視ソフトではコメントを残し一時休止や、ステータスを正常にして再度監視を続行させるなどの対応が
簡単にできましたが、どうもZabbixではコメントを入力してもステータスの状態は変更されないようです。
nakano - 投稿数: 2
情報提供いただきまして、ありがとうございます。
chironex8さんにご教示ただきました方法にて、ダッシュボード上で赤く表示されることはなくなりました。しかし、ご説明頂いております通り表示されないようになる(ステータスが変化するわけではない)ものですので、希望している動作(任意のタイミングで正常な状態に更新する)とは異なるものとなります。
redboxさんも試されたということで、やはり厳しそうでしょうか。
ZABBIXのコマンド等でステータスを変更できれば作り込みで対応できるかと思いますが、何か情報をお持ちでしたらご教示頂けますと幸いです。
fripper - 投稿数: 495
別のアプローチを考えてみました
少々仕組みがややこしいことと、サーバ上に、自作のプログラムスクリプトを実装する必要があります‥
1.ログ取得アイテムに障害を示すデータが記録される
2.トリガーの条件として、ログ取得アイテムの取得内容を判定しているので障害となる→障害検知
3.その後、「正常を示すデータ」は更新されてこないため、延々と障害状態のまま復旧できない
というところから、
1.ログ取得アイテムに障害を示すデータが記録される
2.トリガーの条件として、ログ取得アイテムの取得内容を判定しているので障害となる→障害検知
3.何らかの方法で、アイテムのデータ記録に「正常」を示す値を投入してあげる
4.トリガーの条件として、ログ取得アイテムの取得内容を判定しているので正常となる→障害復旧
WebUIの「管理」→「スクリプト」で登録できるようなユーザスクリプトを1つ作成します
このスクリプトは、ダッシュボードの障害一覧のホスト名のリンクなどからポップアップメニューで表示されます
このスクリプトの実行場所を「zabbix server」として設定し、コマンドラインオプションとして「{HOST.HOST}」の
マクロを渡すように設定します
このようにすることで、ユーザスクリプトから、復旧させるべき対象のホスト名が特定できます
スクリプト側の実装内容としては、コマンドラインから渡されてきたホスト名を元に、
ZabbixAPIを使って、対象のホスト上で障害状態となっているトリガーを特定します。
トリガーから関連するアイテムを引っ張ってきて、そのアイテムキーを特定します。
さらに、zabbix_sender を利用して、対象のアイテムキーに対して、「正常」を示すような
ログ文字列データ たとえば 「Log-Trigger Recovered」 などを
zabbix_server へ向けて、横から投げ込んでやります
こうすることで、server 側は、sender で投げ込まれたデータを「新しいログ文字列が届いた」とみなして
トリガーの判定処理を行います
トリガー側の判定処理に、当該の文字列を含む場合は「正常」とみなす、という条件を入れてやることで
復旧させることができます
障害を復旧させたいタイミングで、Web UIから、そのホストに対してコマンドを選択すれば、
sender が発動するような仕組みです
手を入れる部分は多いですが、任意のタイミングで復旧させることができます
TNK - 投稿数: 4742
ログ監視で、zabbix_senderを利用してダミーの値を投げ込んでし
まうと、ログの最終読み込み位置がリセットされてしまったと思い
ます。
その場合、次のチェック処理でログファイルを最初から読み込み
なおしてしまうため、過去に発生して検知したログを再度トリガー
で処理されてしまいますのでご注意ください。
他の対応方法として、ログファイルには余計なログを残してしまう
ことになりますが、ログファイル自体にクリアするためのログ文字
列を出力して、トリガーでは、その文字列がきたら正常と判断する
ようにする方法が考えられます。