このドキュメントでは、Google Cloud コンソールを使用して、モニタリング対象時系列に特定の期間のデータがない場合に通知を送信するアラート ポリシーを作成する方法について説明します。
指標の不在条件では、そのポリシーのインストールまたは変更後、最大期間内に測定が 1 回以上成功(測定でデータが取得される)している必要があります。この期間は、トリガーとなる不在時間と呼ばれます。構成可能なトリガーとなる不在時間の最大値は 23.5 時間です。
たとえば、指標の不在ポリシーでトリガーとなる不在時間を 30 分に設定したとします。指標データを書き込むサブシステムが一度もデータポイントを書き込んでいない場合、この条件は満たされません。サブシステムが 1 つ以上のデータポイントを出力していて、その後の 30 分間に追加のデータポイントが出力できない場合に条件が満たされます。
このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが表示されたときに通知する、ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。
このドキュメントでは、次の項目については説明しません。
- 指標の値がしきい値を上回るかまたは下回ったときに通知する方法。詳細については、指標しきい値のアラート ポリシーを作成するをご覧ください。
- 指標の予測値に基づいて通知する方法。詳細については、予測指標値のアラート ポリシーを作成するをご覧ください。
Cloud Monitoring API を使用してアラート ポリシーを作成する方法。詳細については、API を使用してアラート ポリシーを作成するをご覧ください。
条件に Monitoring Query Language(MQL)クエリを含むアラート ポリシーを作成する方法。こうしたポリシーでは、静的しきい値か動的しきい値を使用できます。詳細については、次のドキュメントをご覧ください。
始める前に
-
Google Cloud コンソールを使用してアラート ポリシーを作成および変更するために必要な権限を取得するには、プロジェクトに対する Monitoring 編集者(
roles/monitoring.editor
)の IAM ロールの付与を管理者に依頼してください。 ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Cloud Monitoring のロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。
アラート ポリシーの一般的なコンセプトに精通していることを確認してください。 このトピックについては、アラートの概要をご覧ください。
アラートの受信に使用する通知チャンネルを構成します。冗長性を確保するために、複数のタイプの通知チャンネルを作成することをおすすめします。詳細については、通知チャンネルを作成して管理するをご覧ください。
通知ポリシーの作成
モニタリング対象の時系列に特定のトリガーとなる不在時間のデータがない場合に通知を送信するアラート ポリシーを作成するには、次の操作を行います。
-
Google Cloud コンソールで、notifications [アラート] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
- [ポリシーを作成] を選択します。
モニタリング対象の時系列を選択します。
[指標の選択] をクリックし、メニューの操作でリソースタイプと指標タイプを選択して、[適用] をクリックします。
[指標を選択する] メニューには、使用可能な指標タイプを探すのに役立つ機能が含まれています。
- 特定の指標タイプを探すには、filter_list フィルタバーを使用します。たとえば、「
util
」と入力すると、util
を含むエントリを表示するようにメニューが制限されます。エントリは、大文字と小文字を「区別しない」テストに合格した場合に表示されます。
組み込み指標またはユーザー定義指標をモニタリングできます。
- 特定の指標タイプを探すには、filter_list フィルタバーを使用します。たとえば、「
省略可: 前の手順で選択した指標とリソースタイプに一致する時系列のサブセットをモニタリングするには、[フィルタを追加] をクリックします。フィルタ ダイアログで、フィルタに使用するラベル、比較対象、フィルタ値を選択します。たとえば、フィルタ
zone =~ ^us.*.a$
はゾーン名がus
で始まりa
で終わるすべての時系列データに一致する正規表現を使用します。詳細については、選択した時系列をフィルタするをご覧ください。省略可: 時系列のポイントの配置方法を変更するには、データの変換セクションで、ローリング ウィンドウおよび ローリング ウィンドウ関数を設定します。
ログベースの指標をモニタリングする場合は、[ローリング ウィンドウ] メニューを 10 分以上に設定することをおすすめします。
これらのフィールドは、ウィンドウに記録されるポイントの組み合わせ方を指定します。たとえば、ウィンドウが 15 分で、ウィンドウ関数が
max
であるとします。整列されたポイントは、直近の 15 分間にあるすべてのポイントの最大値となります。詳細については、アライメント: 系列内の正則化をご覧ください。省略可: ポリシーによってモニタリング対象の時系列の数を減らす場合や、時系列のコレクションのみをモニタリングする場合は、時系列を結合します。たとえば、各 VM インスタンスの CPU 使用率をモニタリングする代わりに、ゾーン内のすべての VM の CPU 使用率の平均を計算し、その平均値をモニタリングすることもできます。デフォルトでは、時系列は結合されません。一般的なことについては、縮小: 時系列の結合をご覧ください。
すべての時系列を結合するには、次の操作を行います。
- [時系列間] セクションで、expand_more [開く] をクリックします。
- [時系列集計] フィールドを
none
以外の値に設定します。たとえば、時系列の平均値を表示するには、mean
を選択します。 - [時系列のグループ化の基準] フィールドが空であることを確認します。
ラベル値で時系列を結合またはグループ化するには、次の操作を行います。
- [時系列間] セクションで、expand_more [開く] をクリックします。
- [時系列集計] フィールドを
none
以外の値に設定します。 - [時系列のグループ化の基準] フィールドで、グループ化するラベルを選択します。
たとえば、
zone
ラベルでグループ化し、集計フィールドをmean
に設定すると、グラフには、データが存在するゾーンごとに 1 つの時系列が表示されます。特定のゾーンに表示される時系列は、そのゾーンを含むすべての時系列の平均です。[次へ] をクリックします。
条件のトリガーを構成します。
条件の種類は [指標の不在] を選択します。
省略可: [Alert trigger] メニューを更新します。次の値が表示されます。
任意の時系列の違反: デフォルト設定。トリガーとなる不在時間全体にデータがない時系列では条件が満たされます。
時系列の違反の割合: 条件が満たされる前に、トリガーとなる不在時間全体で時系列の割合にデータが存在しないようにする必要があります。たとえば、モニタリング対象の時系列の 50% にトリガーとなる不在時間全体のデータがない場合、通知を受け取ることができます。
時系列の違反の数: 条件が満たされる前に、特定の数の時系列でトリガーとなる不在時間全体にデータが存在しないようにする必要があります。たとえば、32 個のモニタリング対象の時系列でトリガーとなる不在時間全体のデータがない場合に通知を受け取ることができます。
全時系列の違反: 条件が満たされる前に、すべての時系列でトリガーとなる不在時間全体にデータが存在しないようにする必要があります。
Monitoring が時系列データの調整と測定に使用する間隔については、アライメント期間と再テスト ウィンドウをご覧ください。
[トリガーとなる不在時間] フィールドを使用して、Monitoring が通知を送信する前の指標データの不在時間を指定します。
[次へ] をクリックします。
省略可: 複数の条件を持つアラート ポリシーを作成します。
ほとんどのポリシーは、1 つの指標タイプをモニタリングします。たとえば、ポリシーで VM インスタンスに書き込まれたバイト数をモニタリングする場合があります。複数の指標タイプをモニタリングする場合は、複数の条件を含むポリシーを作成します。各条件は 1 つの指標タイプをモニタリングします。条件を作成したら、条件の組み合わせ方法を指定します。詳細については、複数の条件を持つポリシーをご覧ください。
複数の条件を持つアラート ポリシーを作成するには、次の操作を行います。
- 追加する条件ごとに、[条件を追加] をクリックして条件を構成します。
- [次へ] をクリックして、条件の組み合わせ方を構成します。
- [次へ] をクリックして通知とドキュメントの設定に進みます。
通知を構成します。
[通知と名前] メニューを開いて通知チャネルを選択します。冗長性を確保するために、複数のタイプの通知チャンネルをアラート ポリシーに追加することをおすすめします。詳細については、通知チャンネルを管理するをご覧ください。
インシデントがクローズされたときに通知を受け取るには、[Notify on incident closure] を選択します。 デフォルトでは、Google Cloud コンソールでアラート ポリシーを作成すると、インシデントが作成されたときにのみ通知が送信されます。
省略可: データの受信が停止してからインシデントがクローズされるまでの Monitoring の待機時間を変更するには、[インシデントの自動クローズ期間] メニューからオプションを選択します。 デフォルトでは、データの受信が停止すると、Monitoring は対応待ちのインシデントがクローズされるまで 7 日間待機します。
[Policy severity level] メニューからオプションを選択します。インシデントや通知に重大度レベルが表示されます。
省略可: アラート ポリシーにカスタムラベルを追加するには、[Policy user labels] セクションで、次の操作を行います。
- [ラベルを追加] をクリックして、[キー] フィールドにラベルの名前を入力します。ラベル名の先頭は小文字にする必要があり、小文字、数字、アンダースコア、ダッシュを使用できます。たとえば、「
severity
」と入力します。 - [値] をクリックして、ラベルの値を入力します。ラベルの値には、英小文字、数字、アンダースコア、ダッシュを使用できます。たとえば、「
critical
」と入力します。
ポリシーラベルを使用して通知を管理する方法については、インシデントにラベルでアノテーションを付けるをご覧ください。
- [ラベルを追加] をクリックして、[キー] フィールドにラベルの名前を入力します。ラベル名の先頭は小文字にする必要があり、小文字、数字、アンダースコア、ダッシュを使用できます。たとえば、「
省略可: [ドキュメント] セクションで、通知に含めるコンテンツを入力します。
ドキュメントのフォーマットには、書式なしテキスト、Markdown、変数を使用できます。内部プレイブック、Google Cloud ダッシュボード、外部ページへのリンクなど、ユーザーがインシデントをデバッグするのに役立つリンクを含めることもできます。たとえば、次のドキュメント テンプレートは、
gce_instance
リソースの CPU 使用率インシデントを表し、アラート ポリシーと条件 REST リソースを参照するためのいくつかの変数が含まれています。ドキュメント テンプレートは、デバッグに役立つ外部ページにユーザーを誘導します。通知が作成されると、Monitoring によってドキュメント変数が通知の値に置き換えられます。この値は通知でのみ変数に置き換えられます。Google Cloud コンソールのプレビュー ペインやその他の場所では、Markdown の書式設定のみが表示されます。
プレビュー
## CPU utilization exceeded ### Summary The ${metric.display_name} of the ${resource.type} ${resource.label.instance_id} in the project ${resource.project} has exceeded 90% for over 15 minutes. ### Additional resource information Condition resource name: ${condition.name} Alerting policy resource name: ${policy.name} ### Troubleshooting and Debug References Repository with debug scripts: example.com Internal troubleshooting guide: example.com ${resource.type} dashboard: example.com
通知の形式
詳細については、ユーザー定義のドキュメントで通知にアノテーションを付けるとチャネル コントロールの使用をご覧ください。
[アラート名] をクリックして、アラート ポリシーの名前を入力します。
[ポリシーを作成] をクリックします。
選択した時系列をフィルタする
フィルタにより、一定の条件を満たす時系列のみがモニタリングされるようになります。フィルタを適用すると、グラフ上の線の数が減り、グラフのパフォーマンスが向上します。集計を適用することで、モニタリング対象のデータの量を減らすこともできます。フィルタにより、一定の条件を満たす時系列のみが使用されるようになります。フィルタを適用すると、評価対象の時系列が減り、アラートのパフォーマンスが向上します。
フィルタは、ラベル、コンパレータ、値で構成されています。たとえば、zone
ラベルが "us-central1"
で始まるすべての時系列を照合するには、正規表現を使用して比較を行うフィルタ zone=~"us-central1.*"
を使用できます。
プロジェクト ID またはリソース コンテナでフィルタする場合は、等号演算子 (=)
を使用する必要があります。他のラベルでフィルタする場合は、サポートされている任意のコンパレータを使用できます。通常、指標ラベル、リソースラベル、リソース グループでフィルタできます。
複数のフィルタ条件を指定すると、全条件を満たす時系列のみがモニタリングされます。
フィルタを追加するには、[フィルタを追加] をクリックし、ダイアログの項目を入力して、[完了] をクリックします。ダイアログで [フィルタ] フィールドを使用し、フィルタリング条件を選択し、比較演算子を選択して、値を選択します。次の表の各行には、比較演算子とその意味、例が示されています。
演算子 | 意味 | 例 |
---|---|---|
= |
平等 | resource.labels.zone = "us-central1-a" |
!= |
不等 | resource.labels.zone != "us-central1-a" |
=~ |
正規表現 2 等式 | monitoring.regex.full_match("^us.*") |
!=~ |
正規表現 2 に一致しない | monitoring.regex.full_match("^us.*") |
starts_with |
値の先頭に次の項目が配置されている | resource.labels.zone = starts_with("us") |
ends_with |
値の末尾に次の項目が配置されている | resource.labels.zone = ends_with("b") |
has_substring |
値が次の項目を含む | resource.labels.zone = has_substring("east") |
one_of |
次のいずれか | resource.labels.zone = one_of("asia-east1-b", "europe-north1-a") |
!starts_with |
値の先頭に次の項目が配置されていない | resource.labels.zone != starts_with("us") |
!ends_with |
値が次の項目で終わらない | resource.labels.zone != ends_with("b") |
!has_substring |
値が次の項目を含まない | resource.labels.zone != has_substring("east") |
!one_of |
値が次の項目のいずれにも一致しない | resource.labels.zone != one_of("asia-east1-b", "europe-north1-a") |