このドキュメントでは、Google Cloud コンソールを使用して、指標の値が特定の期間時間枠のしきい値を上回るかまたは下回ったときに通知を送信する指標ベースのアラート ポリシーを作成する方法について説明します。たとえば、少なくとも 5 分間 CPU 使用率が 80% を超える場合に、アラート ポリシーの条件が満たされる可能性があります。
このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが表示されたときに通知する、ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。
このドキュメントでは、以下については説明しません。
- データの受信が停止したときに通知する方法。詳細については、指標不在のアラート ポリシーを作成するをご覧ください。
- 指標の予測値に基づいて通知する方法。詳細については、予測指標値のアラート ポリシーを作成するをご覧ください。
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
で終わるすべての時系列データに一致する正規表現を使用します。詳細については、選択した時系列をフィルタするをご覧ください。省略可: 時系列のポイントの配置方法を変更するには、データの変換セクションで、ローリング ウィンドウおよび ローリング ウィンドウ関数を設定します。
これらのフィールドは、ウィンドウに記録されるポイントの組み合わせ方を指定します。たとえば、ウィンドウが 15 分で、ウィンドウ関数が
max
であるとします。整列されたポイントは、直近の 15 分間にあるすべてのポイントの最大値となります。詳細については、アライメント: 系列内の正則化をご覧ください。[ローリング ウィンドウ関数] フィールドを使用して [percent change] を使用して、指標値の変化率をモニタリングすることもできます。詳細については、変化率をモニタリングするをご覧ください。
省略可: ポリシーによってモニタリング対象の時系列の数を減らす場合や、時系列のコレクションのみをモニタリングする場合は、時系列を結合します。たとえば、各 VM インスタンスの CPU 使用率をモニタリングする代わりに、ゾーン内のすべての VM の CPU 使用率の平均を計算し、その平均値をモニタリングすることもできます。デフォルトでは、時系列は結合されません。一般的なことについては、縮小: 時系列の結合をご覧ください。
すべての時系列を結合するには、次の操作を行います。
- [時系列間] セクションで、expand_more [開く] をクリックします。
- [時系列集計] フィールドを
none
以外の値に設定します。たとえば、時系列の平均値を表示するには、mean
を選択します。 - [時系列のグループ化の基準] フィールドが空であることを確認します。
ラベル値で時系列を結合またはグループ化するには、次の操作を行います。
- [時系列間] セクションで、expand_more [開く] をクリックします。
- [時系列集計] フィールドを
none
以外の値に設定します。 - [時系列のグループ化の基準] フィールドで、グループ化するラベルを選択します。
たとえば、
zone
ラベルでグループ化し、集計フィールドをmean
に設定すると、グラフには、データが存在するゾーンごとに 1 つの時系列が表示されます。特定のゾーンに表示される時系列は、そのゾーンを含むすべての時系列の平均です。[Next(次へ)] をクリックします。
条件のトリガーを構成します。
[条件タイプ] フィールドはデフォルト値の [しきい値] のままにします。
[Alert trigger] メニューの値を選択します。このメニューを使用すると、条件を満たす前にしきい値をまたぐ必要がある時系列のサブセットを指定できます。
[しきい値の位置] と [しきい値] を使用して、指標の値がしきい値に違反するタイミングを入力します。たとえば、これらの値を [しきい値より上] と [
0.3
] に設定すると、0.3
より高い測定値はしきい値に違反します。省略可: 測定値がしきい値に違反して Monitoring が通知を送信するまでの時間を選択するには、[詳細オプション] を開いて [再テスト ウィンドウ] メニューを使用します。
デフォルト値は [再テストなし] です。この設定では、1 回の測定で通知を行えます。詳細と例については、アライメント期間と期間の設定をご覧ください。
省略可: データの受信が停止したときに Monitoring が条件を評価する方法を指定するには、[詳細オプション] を開いて [Evaluation missing data] メニューを使用します。
[再テスト ウィンドウ] の値が [再テストなし] の場合は、[評価の欠落データ] メニューが無効になります。
Google Cloud コンソール
[欠落データの評価] フィールド概要 詳細 欠落データがない 対応待ちのインシデントはオープンのままです。
新しいインシデントはオープンされません。条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントはオープンのままになります。インシデントが対応待ちで、データが送られてこない場合、自動クローズ タイマーは 15 分以上の時間をおいて開始されます。タイマーの期限が切れると、インシデントはクローズされます。
条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。
欠落データポイントが、ポリシーに違反する値として扱われる 対応待ちのインシデントはオープンのままです。
新しいインシデントをオープンできます。条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントはオープンのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータが到着しない場合、インシデントはクローズされます。
条件が満たされない場合は、この設定により、指標しきい値の条件が
metric-absence condition
のように動作します。再テストの時間枠で指定された時間内にデータを受信しない場合は、条件が満たされたと評価されます。条件が 1 つのアラート ポリシーでは、条件が満たされるとインシデントが開始されます。欠落データポイントが、ポリシーに違反しない値として扱われる 対応待ちのインシデントはクローズされます。
新しいインシデントはオープンされません。条件が満たされている場合、データの受信が停止すると、その条件は満たされなくなります。この条件のインシデントが対応待ちの場合、インシデントはクローズされます。
条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。
[Next(次へ)] をクリックします。
省略可: 複数の条件を持つアラート ポリシーを作成します。
ほとんどのポリシーは、1 つの指標タイプをモニタリングします。たとえば、ポリシーで VM インスタンスに書き込まれたバイト数をモニタリングする場合があります。複数の指標タイプをモニタリングする場合は、複数の条件を持つポリシーを作成します。各条件で、1 つの指標タイプがモニタリングされます。条件を作成した後で、条件の組み合わせを指定します。詳細については、複数の条件を持つポリシーをご覧ください。
複数の条件を持つアラート ポリシーを作成するには、次の操作を行います。
- 追加する条件ごとに、[条件を追加] をクリックして条件を構成します。
- [次へ] をクリックして、条件の組み合わせ方を構成します。
- [次へ] をクリックして通知とドキュメントの設定に進みます。
通知を構成します。
[通知と名前] メニューを開いて通知チャネルを選択します。冗長性を確保するために、複数のタイプの通知チャンネルをアラート ポリシーに追加することをおすすめします。詳細については、通知チャンネルを管理するをご覧ください。
インシデントがクローズされたときに通知を受け取るには、[Notify on incident closure] を選択します。 デフォルトでは、Google Cloud コンソールでアラート ポリシーを作成すると、インシデントが作成されたときにのみ通知が送信されます。
省略可: データの受信が停止してからインシデントがクローズされるまでの Monitoring の待機時間を変更するには、[インシデントの自動クローズ期間] メニューからオプションを選択します。 デフォルトでは、データの受信が停止すると、Monitoring は対応待ちのインシデントがクローズされるまで 7 日間待機します。
[ポリシーの重大度レベル] メニューからオプションを選択します。インシデントと通知には重大度レベルが表示されます。
省略可: アラート ポリシーにカスタムラベルを追加するには、[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") |
トラブルシューティング
このセクションでは、トラブルシューティングのヒントを紹介します。
利用可能な指標のメニューに指標が表示されない
[指標を選択] メニューに表示されていない指標をモニタリングするには、次のいずれかを行います。
Google Cloud 指標をモニタリングするアラート ポリシーを作成するには、[指標を選択] メニューを開いて、[
アクティブ] をクリックします。無効にすると、Google Cloud サービスのすべての指標とデータのあるすべての指標がメニューに表示されます。カスタム指標タイプの条件を、カスタム指標タイプによってデータが生成される前に構成するには、Monitoring フィルタを使用して指標タイプを指定する必要があります。
- [?] を選択して[指標の選択] ヘッダーをクリックして、ツールチップの [ダイレクト フィルタモード] を選択します。
モニタリング フィルタまたは時系列セレクタを入力します。構文については、次のドキュメントをご覧ください。
変化率をモニタリングする
指標値の変化率をモニタリングするには、[ローリング ウィンドウ関数] フィールドを [percent change] に設定すると、Monitoring により指標の変化率がしきい値と比較されます。[percent change] 関数を選択すると、Monitoring は次の処理を行います。
- 時系列に
DELTA
またはCUMULATIVE
の指標の種類がある場合、その時系列はGAUGE
の指標の種類を持つ時系列に変換されます。変換の詳細については、種類、タイプ、コンバージョンをご覧ください。 - 直近 10 分間のウィンドウの平均値を、再テストの前の 10 分間のウィンドウの平均値と比較することで変化率を計算します。
10 分間のルックバック ウィンドウは固定値です。変更はできません。ただし、条件を作成するときに再テスト ウィンドウを指定できます。
次のステップ
- 時系列の値を動的しきい値と比較するポリシーを作成するには、MQL を使用する必要があります。詳細については、MQL を使用して動的重大度を作成するをご覧ください。
このページの手順は、すべてのアラート ポリシーに適用されます。次のドキュメントでは、特定の構成に関するガイダンスを提供しています。