本記事では 2022 年 02 月 15 日にリリースされた Zabbix の最新メジャーバージョン 6.0 で機能の追加・変更が行われたサービス監視を紹介します。
はじめに
Zabbix のサービス監視は以下の図のようにサービスとそれを構成するコンポーネントを階層化して監視を行います。
サービスを構成する各コンポーネントに障害が発生した際にそのサービスや上位のサービスも障害状態となるため、障害の影響範囲の把握ができ、IT サービス全体の俯瞰的な監視が可能です。
さらに、サービスごとにステータスを計算し、SLA に関する数値を算出させることが可能なため、サービスレベルの維持やサービスを構成する IT インフラの弱点の把握の手助けにもなります。
これらの項目に分けて Zabbix 6.0 で追加・変更されたサービス監視の機能を紹介します。
- 俯瞰的な障害点把握と柔軟なサービス監視設定
- 各種 IT サービスに定義された SLA に関する指標のレポート作成
- サービスの状態変化によるメッセージ通知
- ユーザーロール単位の権限付与によるサービス監視のマルチテナント対応
俯瞰的な障害点把握と柔軟なサービス監視設定
Zabbix 6.0 よりサービスの監視や設定はメインメニューの「サービス」セクション内で行います。
Zabbix 5.0 では「設定」→「サービス」で設定、「監視」→「サービス」で状態確認、とそれぞれの用途でセクション・ページが分れていました。
「サービス」ページには「ビュー」と「変更」の 2 種類の画面が用意されており、画面右上のボタンで切替えます。
「ビュー」画面では設定済みのサービスの状態を確認でき、「変更」画面ではサービス監視の設定や変更ができます。
サービスビュー
Zabbix 6.0 では階層ごとにサービスの一覧が表示されるようになりました。
「ビュー」画面には以下の情報が表示されます。
名前
現在選択している階層に登録されている各サービス名が表示されます。
サービス名の右横に表示される数字はそのサービスの子サービスの数を表しています。
サービス名をクリックすると、1 階層下にドリルダウンします。
ドリルダウン後の画面ではそのサービスの親サービス、ステータス、SLA(詳細は後述)、付与されているタグやパンくずリストによる現在位置が表示されます。
画面下部には子サービスの状態が表示されるため、どのサービスで障害が発生しているか、ドリルダウンしながら確認することができます。
ステータス
現在のサービスの状態が表示されます。
根本原因
Zabbix 6.0 より追加された項目です。
サービスのステータスが異常の場合に原因となる障害リストが表示されます。
障害名は「監視データ」→「障害」ページへのリンクとなっており、ワンクリックで障害情報を確認できます。
作成日時
Zabbix 6.0 より追加された項目です。
サービスの監視設定が作成された日付が表示されます。
タグ
Zabbix 6.0 より追加された項目です。
サービスに付与されているタグとタグの値が表示されます。
サービス監視設定
サービスの新規作成は「変更」画面右上の「サービスの作成」をクリックすることで作成フォームが開きます。
設定の主なポイントとして以下が挙げられます。
障害タグ
Zabbix 6.0 で追加された項目です。
Zabbix 5.0 ではサービスと障害の関係は 1 対 1 で設定されていましたが、Zabbix 6.0 よりタグによってサービスと障害の紐づけを行うようになり、1 対 N の設定が可能になりました。
障害タグに指定したタグ全てに一致するタグを持つ障害イベントが発生した際にサービスのステータスが異常になります。
なお、子サービスが存在する場合は子サービスの状態によってサービスの状態が決まるため、「障害タグ」はグレーアウトとなり設定することはできません。
ステータス計算ルール
サービスのステータスの計算ルールを以下の表に記載のルールから指定します。
ステータス計算ルール | 説明 |
---|---|
子サービスでもっとも重要 | 1 つでも子サービスが障害であった場合に障害となり、その障害のうち最も高い深刻度をステータスとする |
すべての子が障害であったときにもっとも重要 | すべての子サービスが障害であった場合に障害となり、その障害のうち最も高い深刻度をステータスとする |
ステータスを正常に設定 | ステータスは計算せず常に正常 |
高度な設定
Zabbix 6.0 で追加された項目です。
条件に応じてステータスを計算したり、親サービスへのステータスの伝搬方法を指定することができます。
「高度な設定」にチェックを入れると追加で以下の設定が可能です。
追加のルール
以下の表に記載のルールを追加することができます。
ルール |
---|
少なくとも N 個の子サービスの状態がステータス以上 |
少なくとも N% の子サービスの状態がステータス以上 |
N 個未満の子サービスのステータスがステータス以下 |
子サービスの N% 未満のステータスがステータス以下 |
ステータスがステータス以上の子サービスの重みが少なくとも W |
ステータスがステータス以上の子サービスの重みが少なくとも N% |
ステータスがステータス以下の子サービスの重みが W 未満 |
ステータスがステータス以下の子サービスの重みが N% 未満 |
「追加のルール」によって特定のステータス以上もしくは以下である子サービスの個数や割合、重みによってステータスの設定が可能になりました。
ステータス伝搬ルール
子サービスから親サービスへのステータスの伝搬ルールを指定します。
ステータス伝搬ルール | 説明 |
---|---|
そのまま | 子サービスのステータスをそのまま伝搬する |
深刻度を増やす | 深刻度を 1 ~ 5 増やして伝搬する |
深刻度を減らす | 深刻度を 1 ~ 5 減らして伝搬する |
このサービスを無視 | ステータスを伝搬しない |
固定ステータス | 常に同じステータスを伝搬する |
「ステータス伝搬ルール」によって親サービスに対して実際の深刻度から増減させて伝搬させたり、そのサービスを無視させて親サービスのステータスに影響を与えないような設定が可能になりました。
重み
サービスに重みづけをします。
設定された重みは親サービスの「追加のルール」で利用されます。
タグ
Zabbix 6.0 で追加された項目です。
「タグ」タブより設定します。
複数設定することが可能で、タグ付けによってそのサービスの種類、誰に向けたサービスか、などの情報を付与します。
サービスに付与したタグは後述の SLA レポートの作成やサービスアクションの実行条件で利用可能です。
ここまでサービス監視の設定項目について紹介してきました。
Zabbix 6.0 ではサービスと障害の紐づけがトリガーからタグに変更されたり、「高度な設定」によって柔軟にステータスの計算ルールや伝搬ルールを設定することができるため冗長化されたコンポーネントを持つサービスにおいてもより有効的に監視を行えます。
各種 IT サービスに定義された SLA に関する指標のレポート作成
Zabbix 6.0 ではより詳細な SLA に関する指標が算出されるようになりました。
また、Zabbix 5.0 では 1 サービスに対し、それぞれ SLA の設定をしていましたが、Zabbix 6.0 ではサービスに付与しているタグに応じて SLA の設定をするように変更されました。
本パートで使用する SLA に関する用語を以下の表に定義します。
用語 | 説明 |
---|---|
SLA(サービスレベル合意) | サービス提供先との合意に基づいたサービス品質レベル |
SLO(サービスレベル目標) | SLA に基づいたサービスレベルの目標値 |
SLI(サービスレベル指標) | サービスの品質を測る指標 |
エラーバジェット | SLO を満たすためのダウンタイム許容時間(指標) |
作成された SLA レポートでは SLO や指定した期間ごとの SLI、エラーバジェットなどの情報が表示されます。
SLA 作成
SLA 作成の主なポイントとして以下が挙げられます。
SLO
SLA に基づいた SLO を指定します。
レポート期間
日次、週次、月次など SLI を算出する期間を指定します。
スケジュール
サービスの稼働時間に基づいてスケジュールを指定します。
サービスが 24 時間 365 日で稼働することが想定されている場合は「24×7」を選択します。
平日のビジネスタイムのみ、など稼働時間が決められている場合は「カスタム」から曜日ごとに稼働時間を指定することが可能です。
「カスタム」で指定したスケジュール外のサービスの状態は SLI の計算に含まれません。
発行日
サービスの提供開始日など SLA レポートの発行開始日を指定します。
サービスタグ
「サービスタグ」によってどのサービスに対し、現在の設定を適用させるか指定します。
指定したタグが付与されているすべてのサービスに設定が適用されます。
除外するダウンタイム
メンテナンスの実施などサービスの一時的な停止時間が発生する場合は「除外するダウンタイム」タブにて時間を指定します。
指定された時間帯のサービスの状態は SLI の計算に含まれません。
「除外するダウンタイム」は過去に遡って後から設定することができます。
また、複数設定することもできます。
SLA レポート
設定された SLA に関するレポートは「SLAレポート」ページから確認することができます。
画面上部のフィルターで確認したい SLA 名を指定すると、その SLA が適用されているサービス名、SLO、「レポート期間」で指定した間隔ごとに算出された SLI が表示されます。
また、各サービス名をクリックすると、詳細な情報を確認することができます。
- アップタイム列 : サービスの稼働時間(正常な時間)
- ダウンタイム列 : サービスの停止時間(異常な時間)
- エラーバジェット列 : SLO と SLI によって算出されたエラーバジェット
- 除外するダウンタイム列 : 指定した時間帯が含まれている場合は「開始日時 名前: 経過時間」を表示
以下の Zabbix 5.0 のレポート画面と比較してみると、より詳細な情報を得られるようになったことが分かります。
「サービス」ページでも画面上部の「SLA」行にそのサービスと関連のある「SLA」名と SLI が表示されるようになります。
また、数値の右横に表示されている吹き出しアイコンにマウスカーソルを合わせると、詳細な情報を確認することができます。
さらに、ダッシュボードに「SLAレポート」ウィジェットを追加するとダッシュボードからも特定の SLA レポートを閲覧することが可能です。
「SLA」を用いることで指標の計算が自動的に行われ、作成されたレポートも様々なページで見られるため SLA の把握に役立ちます。
サービスの状態変化によるメッセージ通知
サービス単位でアクション実行ができるよう Zabbix 6.0 では「サービスアクション」が実装されました。
トリガーアクションなどと同様にサービスの状態変化によるメッセージ通知設定ができます。
サービス単位で通知先を設定し、メッセージを送信することができます。
設定は「サービスアクション」ページより行います。
アクションの実行条件は「サービス」、「サービス名」、「サービスのタグ名」、「サービスのタグの値」から選択します。
アクションの実行内容はトリガーアクションと同様に状態変更時、復旧時、更新時それぞれに設定することが可能です。
各メディアタイプにはメッセージテンプレートとして「サービス」、「サービスの復旧」、「サービスの更新」メッセージタイプが用意されています。
利用中のメディアタイプに追加しておくと、サービスアクションを複数設定する際に共通の形式のメッセージを送信することができます。
また、サービス監視関連のマクロが追加されました。詳細は以下のページをご覧ください。
上記メッセージテンプレートを用いた場合、実際にサービスの状態変化が起きた際に送信されるメッセージはこのようになります。
件名:
Service “ERP” problem: Status of service “ERP” changed to Warningメッセージ:
Service problem started at 14:10:48 on 2022.02.08
Service problem name: Status of service “ERP” changed to Warning
Service: ERP
Severity: Warning
Original problem ID: 1680
Service description:Host: “ERP DB Server” Problem name: “DB Test Trigger” Severity: “Warning” Age: 2s Problem tags: “Server:DB, Type:ERP”
マクロを含めることで、通知メッセージから異常となったサービスや原因となる障害、といった情報を確認できるようになります。
ユーザーロール単位の権限付与によるサービス監視のマルチテナント対応
サービス監視をマルチテナント環境でも利用できるよう Zabbix 6.0 より「管理」→「ユーザーの役割」ページでユーザーロール単位でサービス監視に関する権限付与が可能になりました。
サービス名またはタグによって指定したサービスに対し、「表示・設定」または「表示のみ」の権限付与ができます。
権限が付与されたサービスに子サービスが存在する場合は、子サービスにもその権限が継承されます。
このように Zabbix 6.0 ではユーザーに応じてサービスのアクセス権限付与ができるため、マルチテナント環境で Zabbix を利用されている際に有用な機能となっています。
まとめ
Zabbix 6.0 で追加・変更された機能を中心にサービス監視について紹介してきました。
Zabbix 6.0 では従来のサービス監視と比較して大幅な機能の更新が行われました。
サービスのステータスや SLA の計算はより柔軟に行えるようになり、冗長化されたコンポーネントを持つサービスの監視にもより有効的になりました。
また、サービスアクションやサービスのアクセス権限付与の実装により、従来のサービス監視よりもさらに運用しやすくなりました。
リニューアルされたサービス監視を活用してみてはいかがでしょうか。
Appendix
zabbix 6.0 未満のバージョンで設定していたサービス監視設定も 6.0 へのバージョンアップによって設定が移行されます。
バージョンアップ前(5.0)
バージョンアップ後
親子関係、ソート順、サービスのダウンタイムはそのまま引き継がれます。
6.0 で新規に追加されたサービスのタグには「SLA: n」が自動的に付与され、そのタグに応じて「SLA」も作成されます。
次に旧バージョンでサービスにトリガーを紐づけていた場合、バージョンアップ後に自動的に「ServiceLink 等しい トリガー ID:トリガー名」で「障害タグ」が付与されます。