11. メンテナンス

概要

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

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

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

「データ収集あり」のメンテナンス中は、トリガーは通常どおり処理され、必要に応じてイベントが作成されます。 ただし、アクション設定で Pause operations for suppressed problems オプションがチェックされている場合、メンテナンス中のホスト/トリガーに対する障害のエスカレーションは一時停止されます。 この場合、通知の送信やリモートコマンドの実行を含む可能性のあるエスカレーションステップは、メンテナンス期間が終了するまで無視されます。 メンテナンス中に抑止されるのはエスカレーションのみであり、障害の復旧および更新操作は抑止されないことに注意してください。

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

メンテナンス中も通常どおり(遅延なく)障害通知を受信するには、アクション設定で Pause operations for suppressed problems オプションのチェックを外す必要があります。

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

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

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

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

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

「データなし」メンテナンスが終了したとき、nodata() 関数を使用するトリガーは、その監視期間内で次回のチェックが行われるまでは発火しません。

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

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

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

設定

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

  • 設定 → メンテナンスに移動します
  • メンテナンス期間の作成 (または既存のメンテナンス期間の名前) をクリックします。
  • フォームにメンテナンス パラメータを入力します

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

パラメータ 説明
名前 メンテナンス期間名
メンテナンスタイプ 2 種類のメンテナンスを設定できます。
データ収集あり - メンテナンス中でもサーバーによってデータが収集され、トリガーが処理されます
データ収集なし - メンテナンス中、サーバーはデータ収集しません
設定有効期間の開始日時 メンテナンス期間の設定を有効にします。
: この時間を設定するだけでは、メンテナンス期間はアクティブになりません。メンテナンス期間をアクティブにするには監視対象のメンテナンス期間 タブに移動します。
設定有効期間の終了日時 メンテナンス期間が非アクティブになる日時。
監視対象のメンテナンス期間 このブロックにより、メンテナンスが行われる正確な日時を定義できます。 をクリックすると、柔軟な メンテナンス期間 フォームを含むポップアップ ウィンドウが開き、メンテナンス スケジュールを定義できます。 詳細な説明については、メンテナンス期間を参照してください。
ホストグループ メンテナンスを有効にするホスト グループを選択します。 指定したホスト グループのすべてのホストに対してメンテナンスが有効になります。 このフィールドはオートコンプリートなので、入力を開始すると、使用可能なすべてのホスト グループがドロップダウン表示されます。
親ホスト グループを指定すると、ネストされたすべてのホスト グループが暗黙的に選択されます。 したがって、ネストされたグループのホストでもメンテナンスが有効になります。
ホスト メンテナンスを有効にするホストを選択します。 このフィールドはオートコンプリートなので、入力を開始すると、利用可能なすべてのホストがドロップダウン表示されます。
タグ メンテナンス タグが指定されている場合、選択したホストのメンテナンスが有効になった際に、タグが一致する問題は抑制されます (つまりアクションは実行されません)。
タグが複数ある場合は、次のように計算されます:
And/Or - すべてのタグが対応している必要があります。 ただし、同じタグ名を持つタグは Or 条件で計算されます
Or - 少なくとも 1 つのタグが対応している必要があります
タグ値を一致させる方法は 2 つあります:
含む - case - 部分文字列を区別して一致 (タグ値に入力された文字列が含まれる)
等しい - 大文字と小文字を区別して文字列一致 (タグ値が入力された文字列と等しい)
データ収集あり モードが選択された場合にのみ、タグを指定できます。
説明 メンテナンス期間の説明
メンテナンス期間

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

Period type 説明
One time only 1回限りのメンテナンス期間を設定します:
Date - メンテナンス期間の日時;
Maintenance period length - メンテナンスを有効にする期間。
Daily 毎日のメンテナンス期間を設定します:
Every day(s) - メンテナンスの頻度(1 - (デフォルト) 毎日、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 - (デフォルト) 毎週、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月曜日)にのみ実施する場合はこのオプションを選択し、次にドロップダウンで必要な週(第1、第2、第3、第4、または最終)を選択してから、メンテナンスを実施する曜日のチェックボックスをオンにします;
At (hour:minute) - メンテナンスを開始する時刻;
Maintenance period length - メンテナンスを有効にする期間。

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

完了したら、追加を押して、メンテナンス期間を期間ブロックに追加します。

夏時間(DST)の変更は、メンテナンスの時間には影響しません。

例えば、通常午前1時に開始し、午前3時に終了する2時間のメンテナンスを設定しているとします。

  • メンテナンス開始から1時間後(午前2時)にDSTの変更が発生し、現在時刻が午前2時から午前3時に変更された場合、メンテナンスはさらに1時間(午前4時まで)継続されます。
  • メンテナンス開始から2時間後(午前3時)にDSTの変更が発生し、現在時刻が午前3時から午前2時に変更された場合、2時間経過したためメンテナンスは停止します。
  • メンテナンス期間が、DSTの変更によってスキップされた時間に開始された場合、メンテナンスは開始されません。

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

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

表示

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

ホスト名の横にあるオレンジ色のレンチアイコン は、このホストが以下でメンテナンス中であることを示します。

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

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

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

抑制された障害の表示

通常、メンテナンス中のホストの障害は抑制され、つまりWebインターフェースには表示されません。 ただし、以下の場所で Show suppressed problems オプションを選択することで、抑制された障害を表示するように設定することもできます。

  • ダッシュボードProblem hostsProblemsProblems by severityTrigger overview ウィジェットの設定内)
  • 監視 > 障害(フィルター内)
  • 監視 > マップ(マップ設定内)
  • グローバル 通知 (ユーザープロファイル設定内)

抑制された障害が表示される場合、次のアイコンが表示されます: 。 アイコンにマウスポインターを合わせると、詳細が表示されます。

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

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

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

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