【Zabbix】リモートコマンド ~ httpd落ちたら自動で立ち上がる編 ~
Zabbix設定の備忘ログ。
Zabbixにはリモートコマンドという機能があり、指定の事象(トリガー)を検知し、動作(アクション)することが可能です。
死活監視していてPing応答が無くなったらメールを出すとか、指定プロセスが落ちたら指定のコマンドを発行するみたいな感じです。
今回はWebサーバにてhttpdサービスが落ちたことを検知し、httpdサービスを起動するコマンドをリモートから命令して実行します。
【環境】
CentOS + Apache → サイトを運用中
Zabbix Agentがインストール済みであることが前提です。
1.「設定」-「ウェブ」にて対象のホストを指定し「シナリオの作成」クリックする。
2.シナリオタブに任意の設定をします。
認証には「Basic」や「NTLM」を指定可能です。
3.ステップタブにて追加をクリックする。
4.任意の設定をして「追加」クリックする。
URL:http://(IPアドレスもしくはドメイン)
要求文字列:対象URLにハードコードされている文字列(日本語以外)
/var/www/html/index.htmlには以下を記載しています。 test zabbix
5.「監視データ」-「ウェブ」に登録したホストが表示されステータスが"正常"となっていれば問題なし。
6.監視設定が終わったのでトリガー(検知事象)を設定します。
「設定」-「ホスト」をクリックし、対象ホストのトリガーをクリックする。
7.右上部の「ログ用のトリガーを作成」をクリックする。
8.トリガータブの条件式を設定する。「追加」ボタンをクリックする。
トリガー条件式の状態フォームでアイテムの「選択」ボタンをクリックし、先ほど設定したウェブ監視を指定する。
9.トリガー条件式の状態フォームに自動で戻り、残りの項目を設定する。
10.トリガータブに自動で戻り、残りの項目を設定し「保存」する。
11.トリガー一覧画面に設定したトリガーが表示されステータスが"有効"になっていれば問題なし。
12.トリガー(検知)後の動作(アクション)を指定します。
「設定」-「アクション」-「アクションの作成」をクリックし、アクションタブに任意の設定をする。
デフォルトの件名やデフォルトのメッセージはメッセージ通知設定した場合のメッセージ内容を指定でき、
マクロや変数登録も可能なので合わせてメッセージ通知設定をする場合は記載すると便利。
一般的にはメールを利用した通知が多い。
リカバリーメッセージは発生事象が解決された際にメッセージ通知することが可能。
13.アクションの実行条件タブをクリックし、任意の設定をする。
新規条件を追加する。
ホスト = 対象ホスト 「追加」をクリックする。
14.アクションの実行内容タブをクリックし、任意の設定をして「追加」をクリックする。
※ 画面ショットは1度作成したものを編集しているところを撮っているため「更新」となっています。
15.「保存」ボタンをクリックする。
16.アクションの一覧画面に設定したアクションが表示されステータスが"有効"になっていれば問題なし。
17.エージェント側(監視対象側)の設定を行う。
vi /etc/sudoers #Defaults requiretty ←コメントアウト zabbix localhost=(root) NOPASSWD:/etc/init.d/apachectl ←追加 zabbix ALL=NOPASSWD: ALL ←追加 sudoersの編集権限が無い場合は一時的にchmodで付けて下さい。 chmod 640 /etc/sudoers 上記編集 chmod 440 /etc/sudoers
18.実際にhttpdサービスを停止させ動作確認をする。
service httpd stop
Zabbixのダッシュボードで障害を検知し、該当webへアクセスできないことを確認し、数秒後に自動起動していることを確認する。