概要
Redis を監視してダウンしたら自動で起動するようにしてみました
カスタムスクリプトの使い方のおさらいもしたのでメモしておきます
環境
- CentOS 6.6 64bit
- Zabbix 2.4.5
- Redis 3.0.2-1
各種インストール方法
アイテムおよびトリガーの作成
Redisを監視するアイテムとトリガーを作成します
テンプレートはお好きなテンプレートを作成してください
アイテム
トリガー
アクションの作成
上記作成したトリガーを元に実行されるアクションを設定します
条件
実行内容
ポイントは実行内容を「リモートコマンド」にして「現在のホスト」でコマンドを実行される部分でしょうか
このままだと権限の関係でコマンドを実行できない可能性があるので設定ファイルを修正します
zabbix_agentd.conf の修正
以下のパラメータが有効になっているか確認してください
- EnableRemoteCommands=1
- AllowRoot=1
今回 service コマンドで redis を再起動しますが、zabbix ユーザだと権限がなく service コマンドを実行できません
また、EnableRemoteCommands を有効にしないとカスタムスクリプト自体使えません
AllowRoot の設定はセキュリティ的に嫌だという場合は sudo 等で権限を与えるようにしてください
修正後は zabbix-agent を再起動してください
ここまで設定できれば完了です
実際に redis を停止すれば設定したリモートコマンドが実行されると思います
トラブルシュート
カスタムスクリプトに指定したコマンドがうまく実行されない場合は Zabbix サーバのログを見てみましょう
デフォルトだとログレベルが warnings (3) になっているため debugging (4) にしてください
- vim /etc/zabbix/zabbix_server.conf
- DebugLevel=4
これでリモートコマンドが実行されたときに/var/log/zabbix/zabbix_server.log
にログが出るようになります
ただ、ログの量が非常に多いのでtail -f /var/log/zabbix/zabbix_server.log | grep start
等で必要なログだけ見るようにしてください
Zabbix サーバのログにエラーが出ていなくてもリモートコマンドが実行されていない場合はコマンドを実行しているホスト側で何かしらが原因で実行されていないのでホスト側を確認しましょう
いろいろと原因は考えられますが、コマンドが間違っていたり、一番多そうなのはやはり権限回りかと思います
最後に
Zabbix はトラブルシュート系が結構面倒だといつも感じます
もう少しログを見やすくしてほしい気もします
一番はUI上で「失敗」や「エラー」となっている状態で、その原因を詳細に確認できるとログもデバッグモードにして見る必要がないので楽かなと思います
0 件のコメント:
コメントを投稿