9 メンテナンス

概要

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

Zabbix では、ホストおよびホストグループに対してメンテナンス期間を定義できます。

さらに、トリガータグを指定することで、単一のトリガー(またはトリガーの一部)に対してのみメンテナンスを定義することも可能です。
この場合、メンテナンスはそのトリガーに対してのみ有効になり、ホストまたはホストグループの他のすべてのトリガーはメンテナンス対象になりません。

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

データ収集あり のメンテナンス中は、トリガーは通常どおり処理され、必要に応じてイベントが生成されます。
ただし、アクション設定抑制された問題に対する操作を一時停止 オプションがチェックされている場合、メンテナンス中のホスト/トリガーに対する問題のエスカレーションは一時停止されます。
この場合、通知送信やリモートコマンドを含む可能性のあるエスカレーションステップは、メンテナンス期間が続く限り無視されます。
なお、問題の復旧および更新操作はメンテナンス中でも抑制されず、抑制されるのはエスカレーションのみです。
問題がメンテナンス中に発生した場合、復旧通知は送信されません。

たとえば、問題発生後 0 分、30 分、60 分にエスカレーションステップが予定されており、実際の問題発生から 10 分後に始まり 40 分後に終わる 30 分間のメンテナンスがある場合、2 番目と 3 番目のステップは 30 分遅れて、つまり 60 分後と 90 分後に実行されます(問題がまだ存在している場合)。
同様に、問題がメンテナンス中に発生した場合、エスカレーションはメンテナンス終了後に開始されます。

メンテナンス中でも通常どおり(遅延なしで)問題通知を受け取るには、アクション設定で 抑制された問題に対する操作を一時停止 オプションのチェックを外す必要があります。

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

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

タイマープロセスは、毎分 0 秒にホストの状態をメンテナンスへの/からの変更が必要かどうか確認します。
さらに、設定更新後に [メンテナンス期間] に変更があるかどうかに基づいて、タイマープロセスは毎秒、開始/停止すべきメンテナンスがあるかを確認します。
そのため、メンテナンス期間の開始/停止速度は、設定の 更新間隔(デフォルトは 10 秒)に依存します。
なお、メンテナンス期間の変更には 開始日時/終了日時 の設定は含まれません。
また、ホスト/ホストグループが既存の有効なメンテナンス期間に追加された場合、その変更が有効になるのは次の分の開始時にタイマープロセスが実行されたときです。

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

Zabbix サーバー(またはプロキシ)は、メンテナンスの種類に関係なく、常にデータを収集することに注意してください(データ収集なし のメンテナンスを含む)。
その後、データ収集なし が設定されている場合、そのデータはサーバーによって無視されます。

データ収集なし のメンテナンスが終了したとき、nodata() 関数を使用するトリガーは、その期間中にチェックしている次回のチェックまで発火しません。

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

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

ユーザーによってメンテナンス期間、ホスト、グループ、またはタグが変更された場合、その変更は設定キャッシュの同期後にのみ有効になります。

設定

メンテナンス期間を設定するには:

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

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

Parameter Description
Name メンテナンス期間の名前。
Maintenance type メンテナンスには2種類を設定できます:
データ収集あり - メンテナンス中もデータはサーバーによって収集され、トリガーは処理されます;
データ収集なし - データは収集される場合がありますが、メンテナンス中はデータベースに保存されず、トリガー(nodata() 関数を含む)は発火しません。
各種類が可用性レポートに与える影響については、メンテナンス期間の影響 を参照してください。
Active since メンテナンス期間の実行が有効になる日時。
注: この時刻を設定しただけではメンテナンス期間は有効になりません。メンテナンス期間は Periods(以下参照)で設定する必要があります。
Active till メンテナンス期間の実行が無効になる日時。
Periods このブロックでは、メンテナンスが行われる正確な日付と時刻を定義できます。 をクリックすると、柔軟な メンテナンス期間 フォームを含むポップアップウィンドウが開き、メンテナンススケジュールを定義できます。詳細は メンテナンス期間 を参照してください。
Host groups メンテナンスを有効にするホストグループを選択します。メンテナンスは、指定したホストグループ内のすべてのホストに対して有効になります。このフィールドはオートコンプリート対応で、入力を始めると利用可能なホストグループのドロップダウンが表示されます。
親ホストグループを指定すると、その配下のすべてのネストされたホストグループも暗黙的に選択されます。そのため、メンテナンスはネストされたグループ内のホストにも有効になります。
Hosts メンテナンスを有効にするホストを選択します。このフィールドはオートコンプリート対応で、入力を始めると利用可能なホストのドロップダウンが表示されます。
Tags メンテナンス中のホストにある一致するタグに対して、問題を抑制 するためのタグを指定します。
複数の条件を設定できます。タグ名の一致は常に大文字小文字を区別します。

各条件には2つの演算子があります:
Contains - 入力した文字列を値に含む指定タグ名を含めます(部分一致、大文字小文字を区別);
Equals - 指定したタグ名と値を含めます(大文字小文字を区別)。

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

タグは、データ収集あり のメンテナンスタイプが選択されている場合にのみ指定できます。
Description メンテナンス期間の説明。
メンテナンス期間

メンテナンス期間ウィンドウは、定期的または一度限りのメンテナンスのスケジュールを設定するためのものです。 フォームは動的で、選択した期間タイプに応じて利用可能なフィールドが変化します。

期間タイプ 説明
一度限り 一度限りのメンテナンス期間を設定します:
日付 - メンテナンス期間の日付と時刻;
メンテナンス期間の長さ - メンテナンスが有効である期間。
毎日 毎日のメンテナンス期間を設定します:
毎日 - メンテナンスの頻度(1 - (デフォルト) 毎日、2 - 2日ごと、など);
時刻(時:分) - メンテナンスが開始される時刻;
メンテナンス期間の長さ - メンテナンスが有効である期間。

毎日パラメータが「1」より大きい場合、開始日は有効期間開始の時刻が属する日となります。例:
- 有効期間開始が「2021-01-01 12:00」、毎日が「2」、時刻(時:分)が「23:00」の場合、最初のメンテナンス期間は1月1日23:00に開始され、2回目のメンテナンス期間は1月3日23:00に開始されます;
- 有効期間開始が「2021-01-01 12:00」、毎日が「2」、時刻(時:分)が「01:00」の場合、最初のメンテナンス期間は1月3日01:00に開始され、2回目のメンテナンス期間は1月5日01:00に開始されます。
毎週 毎週のメンテナンス期間を設定します:
毎週 - メンテナンスの頻度(1 - (デフォルト) 毎週、2 - 2週間ごと、など);
曜日 - メンテナンスを実施する曜日;
時刻(時:分) - メンテナンスが開始される時刻;
メンテナンス期間の長さ - メンテナンスが有効である期間。

毎週パラメータが「1」より大きい場合、開始週は有効期間開始の時刻が属する週となります。例については、上記の毎日パラメータの説明を参照してください。
毎月 毎月のメンテナンス期間を設定します:
- 定期メンテナンスを実施するすべての月を選択;
日付: 月の日 - 毎月同じ日にメンテナンスを実施する場合はこのオプションを選択し、表示される月の日フィールドで必要な日を選択;
日付: 曜日 - 特定の曜日にのみメンテナンスを実施する場合はこのオプションを選択し、(ドロップダウンで)月の必要な週(第1週、第2週、第3週、第4週、または最終週)を選択し、メンテナンス日をチェックボックスで指定;
時刻(時:分) - メンテナンスが開始される時刻;
メンテナンス期間の長さ - メンテナンスが有効である期間。

メンテナンス期間を作成する際には、作成者のタイムゾーンが使用されます。 ただし、定期的なメンテナンス期間(日次週次月次)がスケジュールされている場合は、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インターフェースには表示されません。
ただし、次の場所で 抑制された問題を表示 オプションを選択することで、抑制された問題を表示するように設定することもできます。

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

抑制された問題が表示される場合、次のアイコンが表示されます:
アイコンにマウスを重ねると、詳細が表示されます。

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

ZabbixのWebインターフェース(Administration > Queue)に表示されるキューは、Zabbixサーバーによって計算されます。
これには、データ収集なし のメンテナンス中のアイテムは含まれず、値の取得が遅延している場合でも、これらのアイテムのキュー長は常にゼロです。
データ収集あり のメンテナンス中にある遅延アイテムは、引き続きキューにカウントされます。

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

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