BLOG
2017 年 11 月 14 日
Zabbix / MIRACLE ZBX ServerのPollerプロセスのエラー処理
前回は Zabbix / MIRACLE ZBX Server の Poller プロセスが正常にアイテムがデータを取得する処理について解説を行いました。今回は Poller プロセスによるアイテムのデータ取得においてエラーが発生した場合の挙動について解説します。ログ "first network error","another network error","host unavailable" がどのような場合に出力されるのかや、パラメータ UnreachableDelay,UnreachablePeriod,UnavailableDelay との関係についても触れます。
Poller プロセスのエラー処理解説
前回に引き続き Poller プロセスについて解説を行います。前回は Poller プロセスが正常にアイテムがデータを取得する処理について解説を行いました。
前回の記事
Zabbix / MIRACLE ZBX Server の Poller プロセスの全体像解説
今回は Poller プロセスによるアイテムのデータ取得においてエラーが発生した場合の挙動について解説します。
なお、今回の調査に使用した環境は以下の通りです。
MIRACLE ZBX v3.0.7
データを取得する際のエラーには大きく分けて、下記の 2 種類があります。
- ネットワークの問題又はタイムアウト
- 取得不可 (Not supported)
1. ネットワークの問題又はタイムアウト
アイテムのデータ取得において、「ネットワークの問題又はタイムアウト」が発生した場合の挙動を解説します。
このエラーは Zabbix サーバから Zabbix エージェントへの接続やデータの送受信が成功しないことにより発生します。また、データを取得する一連の処理に掛かる時間が Zabbix サーバのタイムアウトを越えた場合に発生します。タイムアウトの設定は、Timeout パラメータ (zabbix_server.conf) により行います。
Zabbix エージェント側においてタイムアウトが発生した場合もこのエラーとなります。Zabbix エージェントのタイムアウトの設定は、Timeout パラメータ (zabbix_agentd.conf) により行います。このタイムアウト値は、Zabbix サーバとのデータの送受信や、アイテムのデータを取得する処理に使用されています。
「ネットワークの問題又はタイムアウト」が発生した場合、Zabbix サーバの設定や発生状況により、監視を行うタイミングや挙動が変化します。
下図は、あるアイテムの監視において、正常にデータを 2 回取得し、「ネットワークの問題又はタイムアウト」が 5 回発生した後、正常にデータを取得した場合の挙動を示しています。
以下、図中の番号に沿って解説を進めます。
① 正常な監視データの取得
アイテムの更新間隔 (Update Interval) 毎にデータの取得が行われます。
② エラー発生(初回)
次回のデータ取得がエラーが発生した時刻から (zabbix_server.conf) 秒後に行われるようにセットされます。
<file:/etc/zabbix/zabbix_server.conf>
### Option: UnreachableDelay # How often host is checked for availability during the unreachability period, in seconds. # # Mandatory: no # Range: 1-3600 # Default: # UnreachableDelay=15 UnreachableDelay=15
また、Zabbix サーバのログには下記のようなログが出力されます。このログは直前の監視において正常にアイテムのデータが取得できていた状態において、エラーが発生した場合に出力されます。
<file:/var/log/zabbix/zabbix_server.log>
17817:20171013:174430.730 Zabbix agent item "dummy.echo[foo]" on host "zbx222" failed: first network error, wait for 15 seconds
③ エラーの発生(2 回目以降)
再び同様に問題が発生した場合は下記のようなログが出力されます。この場合、同様に UnreachableDelay(zabbix_server.conf) 秒後に次回の監視データ取得時刻がセットされます。
<file:/var/log/zabbix/zabbix_server.log>
23435:20171013:192358.298 Zabbix agent item "dummy.echo[foo]" on host "zbx222" failed: another network error, wait for 15 seconds
④ エラーの発生(最初のエラー発生から UnreachablePeriod が経過)
最初にエラーが発生してから UnreachablePeriod(zabbix_server.conf) 秒が経過していた場合、ホストの状態が unavailable にセットされます。
<file:/etc/zabbix/zabbix_server.conf>
### Option: UnreachablePeriod # After how many seconds of unreachability treat a host as unavailable. # # Mandatory: no # Range: 1-3600 # Default: # UnreachablePeriod=45 UnreachablePeriod=45
この場合の挙動は以下の通りです。
a) 次回の監視時刻が、UnnavailableDelay(zabbix_server.conf) 秒後にセットされる。
<file:/etc/zabbix/zabbix_server.conf>
### Option: UnavailableDelay # How often host is checked for availability during the unavailability period, in seconds. # # Mandatory: no # Range: 1-3600 # Default: # UnavailableDelay=60 UnavailableDelay=60
b) Zabbix サーバのログに下記のようなログが出力される
23435:20171013:192404.314 temporarily disabling Zabbix agent checks on host "zbx222": host unavailable
c) Web フロントエンドにおいては、[ 設定 ]->[ ホスト ] のエージェントの状態カラムにある "ZBX" のアイコンの色が赤になる。
d) 該当するホストのトリガーが全て " 不明 " にセットされる
( ただし、アクティブチェック、状態が無効であるアイテムに紐づいたトリガー条件式、nodata() 等の時間ベースの関数を使用した条件式等は除く )
⑤ 正常な監視データの取得(エラー状態からの復旧)
問題なくデータが取得された場合、下記のようなログが出力されます。
データの取得成功したあとはアイテムの更新間隔でデータの取得が行われるようになります。
<file:/var/log/zabbix/zabbix_server.log>
17818:20171013:174445.729 resuming Zabbix agent checks on host "zbx222": connection restored
2. 取得不可 (Not supported)
このエラーは、アイテムのキーの設定が不正である場合や、取得したデータの型が設定と一致しない、Zabbix エージェント内でデータの取得が成功しない等の場合に発生します。
このエラーが発生した場合の挙動は以下の通りとなります。
a) アイテムのステータスが " 取得不可 " となる
Zabbix Web フロントエンドの下記のページにおける該当のアイテムのステータスが " 取得不可 " となり、情報のカラムに "X" のアイコンが表示されます。また、そのアイコンをクリックするとエラーの内容が表示されます。
b) " 取得不可アイテムの更新間隔 ( 秒 )" 後に次回のデータ取得時刻がセットされる
取得不可アイテムの更新間隔は Zabbix Web フロントエンドより、下記の画面で設定を行います。
c) 該当するアイテムに紐づいている全てのトリガーのステータスが " 不明 " となる
d) 関連のログ出力
Zabbix サーバのログに以下のようなログが出力されます。
<file:/var/log/zabbix/zabbix_server.log>
19795:20171024:125654.407 item "zbx222:dummy.echo[1sec]" became not supported: Received value [1sec] is not suitable for value type [Numeric (float)]
関連情報
関連記事
注意事項
- 本ドキュメントの内容は、予告なしに変更される場合があります。
- 本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、全ての環境での動作を保証するものではありません。
- 本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が生じた場合でも、当社はその損害についての責任を負いません。あくまでお客さまのご判断にてご使用ください。