メンテナンス期間

概要

メンテナンスは、あらかじめ定義した期間中に障害を抑制するために使用します。

次のエンティティに対してメンテナンス期間を定義できます。

  • ホストグループ
  • ホスト
  • トリガー
  • イベント名
  • タグ

特定のタグまたはイベント名に対してメンテナンスを定義した場合、メンテナンスは対応するトリガーに対してのみ有効になります。ホストまたはホストグループのその他のトリガーはメンテナンス中になりません。

メンテナンスには、データ収集あり と データ収集なし の2種類があります。

データ収集あり のメンテナンス中は、トリガーは通常どおり処理され、必要に応じてイベントが作成されます。 ただし、アクション設定で 抑制された障害に対する操作を一時停止 オプションが選択されている場合、メンテナンス中のエンティティに対する障害のエスカレーションは一時停止されます。 この場合、通知の送信やリモートコマンドの実行を含むエスカレーションステップは、メンテナンス期間中は無視されます。 障害の復旧および更新操作はメンテナンス中も抑制されず、抑制されるのはエスカレーションのみであることに注意してください。 メンテナンス中に開始した障害については、復旧通知は送信されません。

たとえば、障害の開始から0分、30分、60分後にエスカレーションステップがスケジュールされていて、実際の障害発生から10分後から40分後まで30分間のメンテナンスが実施される場合、障害が引き続き存在していれば、ステップ2と3は30分遅れて、60分後と90分後に実行されます。 同様に、メンテナンス中に障害が発生した場合、エスカレーションはメンテナンス終了後に開始されます。

メンテナンス中も通常どおり(遅延なく)障害通知を受信するには、アクション設定で 抑制された障害に対する操作を一時停止 オプションの選択を解除する必要があります。

(トリガーの式で使用されている)少なくとも1つのホストがメンテナンスモードでない場合、Zabbixは障害通知を送信します。

メンテナンス中もZabbixサーバーを稼働させておく必要があります。 メンテナンス期間に変更がある場合、メンテナンスは1分ごと、または設定キャッシュが再読み込みされた時点で再計算されます。

タイマープロセスは、毎分0秒にホストのステータスをメンテナンスに変更する必要があるか、またはメンテナンスから戻す必要があるかを確認します。 さらに、設定の更新後に[メンテナンス期間]に変更があるかどうかに基づいて、メンテナンスを開始または停止する必要があるかをタイマープロセスが毎秒確認します。 したがって、メンテナンス期間の開始または停止の速度は、設定の更新間隔(デフォルトでは10秒)によって異なります。 メンテナンス期間の変更には、有効期間の開始/有効期間の終了 設定は含まれないことに注意してください。 また、既存のアクティブなメンテナンス期間にエンティティ(ホストグループ、ホスト、トリガーなど)が追加された場合、変更は次の分の開始時にタイマープロセスによってのみ有効になります。

ホストがメンテナンスに入ると、Zabbixサーバーのタイマープロセスは、抑制が必要かどうかを確認するため、すべての未解決の障害を読み取ります。 未解決の障害が多数ある場合、パフォーマンスに影響する可能性があります。 また、メンテナンスが設定されていない場合でも、Zabbixサーバーの起動時にすべての未解決の障害が読み取られます。

メンテナンスの種類(データ収集なし のメンテナンスを含む)にかかわらず、Zabbixサーバー(またはプロキシ)は常にデータを収集します。 データ収集なし が設定されている場合、データは後でサーバーによって無視されます。

データ収集なし のメンテナンスが終了した場合、nodata() 関数を使用するトリガーは、確認対象の期間中に次のチェックが行われるまで発火しません。

ホストがメンテナンス中にログアイテムが追加され、メンテナンスが終了した場合、メンテナンス終了後の新しいログファイルエントリのみが収集されます。

データ収集なし のメンテナンス中のホストにタイムスタンプ付きの値が送信された場合(Zabbix senderを使用する場合など)、この値は破棄されます。ただし、期限切れのメンテナンス期間に対してタイムスタンプ付きの値を送信することは可能で、その値は受け入れられます。

メンテナンス期間またはメンテナンスオプション(ホストグループ、ホスト、トリガーなど)をユーザーが変更した場合、変更は設定キャッシュの同期後にのみ有効になります。

設定

メンテナンス期間を直ちに開始するには、次の手順を実行します。

  1. 監視 > 障害 に移動します。
  2. 障害名をクリックします。
  3. イベントメニュー(ホスト、トリガー、イベント名、タグ)からメンテナンスオプションを選択します。
  4. フォームでメンテナンスパラメータを変更します。

計画されたメンテナンス期間を設定するには、次の手順を実行します。

  1. データ収集 > メンテナンス に移動します。
  2. メンテナンス期間の作成(または既存のメンテナンス期間の名前)をクリックします。
  3. フォームにメンテナンスパラメータを入力します。

必須入力フィールドには、赤いアスタリスクが付いています。

パラメータ 説明
名前 メンテナンス期間の名前。
メンテナンスタイプ メンテナンスには、次の2種類を設定できます。
データ収集あり - メンテナンス中もサーバーによってデータが収集され、トリガーが処理されます。
データ収集なし - データは収集される場合がありますが、メンテナンス中はデータベースに保存されず、トリガー(nodata()関数を含む)は発生しません。
各タイプが可用性レポートに与える影響については、メンテナンス期間の影響を参照してください。
開始日時 メンテナンス期間の実行が有効になる日時。
注: この時刻だけを設定しても、メンテナンス期間は有効になりません。メンテナンス期間は期間で設定する必要があります(以下を参照)。
終了日時 メンテナンス期間の実行が有効でなくなる日時。
期間 このブロックでは、メンテナンスを実施する正確な日付と時間を定義できます。をクリックすると、柔軟なメンテナンス期間フォームを含むポップアップウィンドウが開き、メンテナンススケジュールを定義できます。詳しくは、メンテナンス期間を参照してください。
ホストグループ メンテナンスを有効にするホストグループを選択します。指定したホストグループのすべてのホストでメンテナンスが有効になります。このフィールドはオートコンプリートに対応しているため、入力を開始すると、利用可能なすべてのホストグループがドロップダウンに表示されます。
親ホストグループを指定すると、すべてのネストされたホストグループが暗黙的に選択されます。そのため、ネストされたグループのホストでもメンテナンスが有効になります。
ホスト メンテナンスを有効にするホストを選択します。
このフィールドはオートコンプリートに対応しているため、入力を開始すると、利用可能なすべてのホストがドロップダウンに表示されます。
トリガー メンテナンスを有効にするトリガーを選択します。
このフィールドはオートコンプリートに対応しているため、入力を開始すると、利用可能なすべてのトリガーがドロップダウンに表示されます。
イベント名 メンテナンスを有効にするイベント名を指定します。
複数の条件を設定できます。
各条件では、次の2つの演算子を使用できます。
含む - タグの値に入力した文字列が含まれる場合、指定したタグ名を含めます(部分文字列の一致、大文字と小文字を区別しない)。
含まない - タグの値に入力した文字列が含まれる場合、指定したタグ名を除外します(部分文字列の一致、大文字と小文字を区別しない)。
タグ メンテナンスを有効にするタグを指定します。
複数の条件を設定できます。タグ名の照合では、常に大文字と小文字が区別されます。

各条件では、次の複数の演算子を使用できます。
含む - タグの値に入力した文字列が含まれる場合、指定したタグ名を含めます(部分文字列の一致、大文字と小文字を区別する)。
等しい - 指定したタグ名と値を含めます(大文字と小文字を区別する)。
等しくない - 指定したタグ名と値を除外します(大文字と小文字を区別する)。
含まない - タグの値に入力した文字列が含まれる場合、指定したタグ名を除外します(部分文字列の一致、大文字と小文字を区別しない)。

条件には、次の2種類の計算タイプがあります。
And/Or - すべての条件を満たす必要があります。同じタグ名を持つ条件は、Or条件でグループ化されます。
Or - 1つの条件を満たせば十分です。

タグを指定できるのは、メンテナンスタイプでデータ収集ありを選択した場合のみです。
説明 メンテナンス期間の説明。
メンテナンス期間

メンテナンス期間ウィンドウは、定期メンテナンスまたは1回限りのメンテナンスの時間をスケジュールするために使用します。
フォームは動的で、選択した Period type に応じて利用可能なフィールドが変わります。

Period type Description
One time only 1回限りのメンテナンス期間を設定します:
Date - メンテナンス期間の日時;
Maintenance period length - メンテナンスを有効にする期間。
Daily 日次のメンテナンス期間を設定します:
Every day(s) - メンテナンスの頻度 (1 - (default) 毎日、2 - 2日ごと、など);
At (hour:minute) - メンテナンスを開始する時刻;
Maintenance period length - メンテナンスを有効にする期間。

Every day(s) パラメータが "1" より大きい場合、開始日は Active since の時刻が属する日になります。例:
- Active since が "2021-01-01 12:00"、Every day(s) が "2"、At (hour:minute) が "23:00" の場合、最初のメンテナンス期間は 1月1日 23:00 に開始し、2回目のメンテナンス期間は 1月3日 23:00 に開始します;
- Active since が "2021-01-01 12:00"、Every day(s) が "2"、At (hour:minute) が "01:00" の場合、最初のメンテナンス期間は 1月3日 01:00 に開始し、2回目のメンテナンス期間は 1月5日 01:00 に開始します。
Weekly 週次のメンテナンス期間を設定します:
Every week(s) - メンテナンスの頻度 (1 - (default) 毎週、2 - 2週ごと、など);
Day of week - メンテナンスを実施する曜日;
At (hour:minute) - メンテナンスを開始する時刻;
Maintenance period length - メンテナンスを有効にする期間。

Every week(s) パラメータが "1" より大きい場合、開始週は Active since の時刻が属する週になります。例については、上記の Daily の説明を参照してください。
Monthly 月次のメンテナンス期間を設定します:
Month - 定期メンテナンスを実施する月をすべて選択します;
Date: Day of month - メンテナンスを毎月同じ日付に実施する場合 (たとえば、毎月1日) はこのオプションを選択し、表示される Day of month フィールドで必要な日を選択します;
Date: Day of week - メンテナンスを特定の日にのみ実施する場合 (たとえば、毎月第1月曜日) はこのオプションを選択し、ドロップダウンで必要な月内の週 (first, second, third, fourth, or last) を選択してから、メンテナンス日をチェックボックスで選択します;
At (hour:minute) - メンテナンスを開始する時刻;
Maintenance period length - メンテナンスを有効にする期間。

メンテナンス期間を作成する際には、それを作成するユーザーの time zone が使用されます。 ただし、繰り返しメンテナンス期間(Daily、Weekly、Monthly)をスケジュールする場合は、Zabbix サーバーのタイムゾーンが使用されます。 繰り返しメンテナンス期間の動作を予測可能にするには、Zabbix のすべての部分で共通のタイムゾーンを使用する必要があります。

完了したら、Add をクリックしてメンテナンス期間を Periods セクションに追加します。

夏時間(DST)の変更は、メンテナンスの継続時間に影響しないことに注意してください。 たとえば、通常は 01:00 に開始して 03:00 に終了する 2 時間のメンテナンスが設定されているとします。

  • 1 時間のメンテナンス後(02:00)に DST の変更が発生し、現在時刻が 02:00 から 03:00 に変わった場合、メンテナンスはさらに 1 時間継続します(04:00 まで)。
  • 2 時間のメンテナンス後(03:00)に DST の変更が発生し、現在時刻が 03:00 から 02:00 に変わった場合、2 時間が経過しているため、メンテナンスは停止します。
  • メンテナンス期間が DST の変更によって飛ばされる 1 時間の間に開始する場合、メンテナンスは開始されません。

メンテナンス期間が "1 day" に設定されている場合(Zabbix は日数を時間で計算するため、メンテナンスの実際の期間は 24 時間です)、00:00 に開始して翌日の 00:00 に終了するときは、次のようになります。

  • 現在時刻が 1 時間進む場合、メンテナンスは翌日の 01:00 に停止します。
  • 現在時刻が 1 時間戻る場合、メンテナンスはその日の 23:00 に停止します。

表示

メンテナンス中のホストの表示

ホスト名の横にオレンジ色のレンチアイコン が表示されている場合、そのホストがメンテナンス中であることを示します。これは次の場所で確認できます。

  • ダッシュボード
  • 監視 > 障害
  • インベントリ > ホスト > ホストインベントリ詳細
  • データ収集 > ホスト(ステータス 列を参照)

アイコンにマウスポインターを合わせると、メンテナンスの詳細が表示されます。

さらに、メンテナンス中のホストは 監視 > マップ でオレンジ色の背景で表示されます。

抑制された障害の表示

通常、メンテナンス中のホストの障害は抑制され、つまり Webインターフェースには表示されません。

抑制された障害は、手動で抑制されたために非表示になっている場合もあります。

次の場所で 抑制された障害を表示 オプションを選択すると、抑制された障害を表示できます。

  • ダッシュボード(障害ホスト、障害、深刻度別の障害、トリガー概要 ウィジェットの設定内)
  • 監視 > 障害(フィルター内)
  • 監視 > マップ(マップ設定内)
  • グローバル 通知(ユーザープロファイル設定内)

抑制された障害が表示されると、次のアイコンが表示されます: 。 抑制の理由がホストのメンテナンスである場合は、次のアイコンが表示されます。

  • icon_suppression_maintenance.png - ホストのメンテナンスにより障害が抑制されています。
  • icon_unsuppressed_maintenance.png - ホストのメンテナンス後に障害の抑制が解除されています。

アイコンにカーソルを合わせると、詳細が表示されます。 イベントの詳細では、そのイベントがメンテナンスによって抑制されたのか、手動で抑制されたのかを確認できます。 メンテナンスと手動抑制の両方が適用される場合、アイコンの色は手動抑制が優先されます。

メンテナンス中のキューの計算

Zabbix Webインターフェース(Administration > Queue)に表示されるキューは、Zabbix サーバーによって計算されます。
これらには No data collection メンテナンス中のアイテムは含まれず、値が遅延している場合でも、これらのアイテムのキュー長は常に 0 です。
With data collection メンテナンス中の遅延したアイテムは、引き続きキューにカウントされます。

Zabbix プロキシ は、Zabbix サーバーとプロキシ間でメンテナンス設定の同期が行われないため、メンテナンス期間を認識しません。
Zabbix プロキシ上で計算される内部チェック(たとえば、zabbix[queue,,] や zabbix[stats,,,queue,,])は、Zabbix サーバー上のメンテナンス状態に関係なく、遅延したアイテムを報告します。

その結果、No data collection メンテナンス中の同じアイテムについて、Zabbix Webインターフェースと Zabbix プロキシ上の内部チェックで、異なるキュー長が報告される場合があります。