OSS監視ソフトウェアのZabbixで、たまに遭遇した事象と対応について記載メモ。
Actionは正しく設定しているのに、通知メールが来ない
原因:
Actionが正常に設定されていても、監視対象への権限がない場合には、障害検知とActionが正常に終了しているものの、メール等の通知が実施されません。Zabbixに新規でユーザーを追加した場合や、対象ホストが新規グループなどで作成した時などに発生したりします。
対応:
通知ユーザーに(イベントを生成した)監視対象ホストへの読み取り権限を設定
正規表現はWEBでテストしてみてOKだったのに、トリガーで機能しない
原因:
Zabbixは正規表現のテスト機能が提供されています。(Administration→General →Regular expressions選択で正規表現のテストや登録を行うことができます。)
この機能を使用してOKだった正規表現を登録して、@Item名と記載して、トリガー等で使用することができますが、機能しないことがあります。
トリガーでは拡張POSIXしかサポートしていないためです。
対応:
拡張POSIX対応の記述に変更する なお、Zabbix3.4以降は、PCREがサポートされています。
Zabbixサーバーのイベント検知が全体的に遅くなる
原因:
Zabbixサーバーの処理能力不足または、大量アラート発生時等に遅延が発生することがあります。
対応:
Administration→Queueで、キューの状態を確認できます。慢性的にキューが溜まるようであれば、Zabbixの監視状況Zabbix busy ** processesなどを確認して、必要に応じてZabbixやDBのConfigを変更したり、リソース追加を実施します。
なお、ログ監視については、読み込み行数(maxlines)や監視間隔によって、最大の読み込み行数が決まるため、アラートが大量に発生したような場合には、警報に遅延が発生する可能性があります。Zabbixサービス自体が停止していたような場合には、Zabbixサービス再開時に、以前読み込んだログの時点から、アラート条件に合致するものを検知して通知していくので、遅れてアラートが継続するという事象が発生することもあります。ログファイルの監視については、発生時点が異なる警報を検知することはよくある事象なので、読み込んだファイル内のタイムスタンプを確認することをお勧めします。
ログファイルの監視で、以前のログを再検知する
原因:
ログファイルの監視設定で、対象ログを最初から読み直し、過去のエラーが再度通知されることがあります。Zabbixのログファイル監視は、ログサイズと、最終更新時間、inode等により判断しているため、該当時間に、Touchコマンド等で最終更新時間を変更したり、ログファイルの中身を削除した場合、同じ名前でログをコピーしたような場合には、ログファイルの再読み込みが発生します。
対応:
原因等により、ログファイルのメンテナンス方法の変更を実施。手動による操作の場合には、一時的にメンテナンスを設定することで、再検知しても通知を抑止することができます。ログローテーションをしている場合には、ローテーション方法の見直しを実施し、問題ないかどうか確認してください。
うっかりあるある
通知されたメールのアイテム値は問題ないのに、何故Problemになっているの?
Zabbixの監視結果をメールで通知している時に、アイテムの最新値({ITEM.LASTVALUE})が例えばCPU Ulitization 60%などで問題なさそうなのに、通知が障害として届いているといったことです。
これは、アイテムが平均値を見て判断しているため、高い状態が続いて、最後ちょっと下がっている時(でも平均値は閾値以上)に通知されたような場合に発生します。メールの通知欄に、アイテムの最新値のみが表示されている場合には、誤解されることもあります。
Dashboardのエラー詳細は最新20件だけです
これは見ればそのままなのですが、Dashboardの表示画面にエラー内容も記載されているのは、「Last 20 issues」なので、全てのエラーを確認するには、SystemStatusを見る必要があります。当たり前なのですが、エラーが多発してるような環境だとここに表示されていないものを見落とした事例を見たことがあるのであげてみました。
その他Zabbixのバグにあたることもよくあります。
Zabbixのバグは以下で調べられます。