指標ベースのアラート ポリシーを作成する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このドキュメントでは、Google Cloud コンソールを使用して、指標をモニタリングするアラート ポリシーを作成する方法について説明します。たとえば、仮想マシン(VM)の CPU 使用率をモニタリングするアラート ポリシーがトリガーされると、このポリシーによりオンコール チームに通知されることがあります。または、稼働時間チェックをモニタリングするポリシーにより、オンコール チームと開発チームに通知されることがあります。

このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが表示されたときに通知する、ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。

このドキュメントでは、以下については説明しません。

準備

  1. Identity and Access Management ロールに roles/monitoring.alertPolicyEditor ロールの権限が含まれていることを確認します。ロールについて詳しくは、アクセス制御をご覧ください。

  2. アラート ポリシーの一般的なコンセプトに精通していることを確認してください。 これらのトピックについては、アラートの概要をご覧ください。

  3. アラートの受信に使用する通知チャンネルを構成します。これらの手順については、通知チャンネルを管理するをご覧ください。

    冗長性を確保するために、複数のタイプの通知チャンネルを作成することをおすすめします。詳細については、通知チャンネルを管理するをご覧ください。

アラート ポリシーを作成する

このセクションでは、アラート ポリシーの作成方法について説明します。

デフォルトでは、Google Cloud コンソールでアラート作成フローを開始すると、メニュー形式のインターフェースが表示されます。これらのメニューを使用して、モニタリングする指標タイプを選択し、ポリシーを構成します。指標選択メニューには、Google Cloud サービスによって生成されたすべての指標タイプと、定義したカスタム指標タイプが一覧表示されます(指標タイプに関するデータがある場合)。デフォルトのダイアログでの手順の詳細については、デフォルトのアラート ポリシーの作成フローをご覧ください。

Google Cloud サービスによって生成された指標タイプや定義したカスタム指標タイプ以外のアラートを作成するには、特別なアラート作成フローのいずれかを使用します。たとえば、Google Cloud コンソールの [サービス] ページには、サービスレベル目標(SLO)のモニタリングに特化したガイド付きアラート作成フローが用意されています。ユーザーの関心がありそうな特殊なタイプのアラート ポリシーについては、以下をご覧ください。

デフォルトのアラート ポリシー作成フロー

このセクションでは、組み込み指標タイプまたは作成したカスタム指標タイプをモニタリングするアラート ポリシーを作成する方法について説明します。このセクションで説明するポリシーでは、指標が存在しない場合、または指標が静的しきい値を上回るか下回った場合に通知します。時系列の値を動的しきい値と比較するポリシーを作成するには、MQL を使用する必要があります。

このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが表示されたときに通知する、ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。

指標をモニタリングするアラート ポリシーを作成するには、次の手順を行います。

  1. Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動

  2. ナビゲーション パネルで [アラート] を選択し、[ポリシーを作成] をクリックします。

  3. モニタリング対象の時系列を選択します。

    1. [Select a metric] をクリックして、フィルタバーに目的の指標タイプまたはリソースタイプの名前を入力します。たとえば、フィルタバーに「VM インスタンス」と入力すると、VM インスタンスの指標タイプのみが表示されます。「CPU」と入力すると、名前に「CPU」が含まれる指標タイプのみがメニューに表示されます。

    2. メニューを移動して指標を選択し、[適用] をクリックします。

      モニタリングする指標タイプが一覧に表示されない場合は、[Select a metric] メニューで [Show only active resources & metrics] を無効にします。詳細については、トラブルシューティング: 指標がメニューに表示されないをご覧ください。

    3. 省略可: 前のステップで選択した指標とリソースタイプに一致する時系列のサブセットをモニタリングするには、[フィルタを追加] をクリックします。フィルタ ダイアログで、フィルタリングに使用するラベル、コンパレータ、フィルタ値を選択します。たとえば、フィルタ zone =~ ^us.*.a$ はゾーン名が us で始まり a で終わるすべての時系列データに一致する正規表現を使用します。詳細については、選択したデータをフィルタするをご覧ください。

  4. 省略可: 時系列のポイントの配置方法を変更するには、[Transform data] セクションの [ローリング ウィンドウ] と [ローリング ウィンドウ関数] を設定します。

    これらのフィールドは、ウィンドウに記録されるポイントの組み合わせ方を指定します。たとえば、ウィンドウが 15 分で、ウィンドウ関数が max であるとします。揃えられるポイントは最新の 15 分間に記録されたすべてのサンプルの最大値です。詳細については、時系列を配置するをご覧ください。

  5. 省略可: ポリシーによってモニタリングされる時系列の数を減らす場合や、時系列のコレクションのみをモニタリングする場合は、時系列を結合します。たとえば、ゾーンの平均 VM インスタンスの CPU 使用率をモニタリングするとします。

    時系列を結合するには、[Across time series] ヘッダーで [展開] をクリックします。デフォルトでは、時系列は結合されません。

    すべての時系列を結合するには、次の操作を行います。

    1. [時系列集計] フィールドを none 以外の値に設定します。たとえば、mean を選択すると、表示される時系列の各ポイントは個々の時系列ポイントの平均になります。

    2. [時系列のグループ化の基準] フィールドが空であることを確認します。

    ラベル値で時系列を結合またはグループ化するには、次の操作を行います。

    1. [時系列集計] フィールドを none 以外の値に設定します。
    2. [時系列のグループ化の基準] フィールドで、グループ化するラベルを 1 つ以上選択します。

    たとえば、zone でグループ化し、集計フィールドを mean に設定すると、グラフに各ゾーンに対して 1 つの時系列が表示されます。特定のゾーンに表示される時系列は、そのゾーンを持つすべての時系列の平均です。

    [セカンダリ データ変換] フィールドはデフォルトで無効になっています。有効にすると、これらのオペレーションはプライマリ データの変換後に適用されます。

    詳細については、時系列を結合するをご覧ください。

  6. [次へ] をクリックして条件のトリガーを構成します。

    1. [条件タイプ] フィールドは、データの受信が停止したときに通知を受け取る場合を除き、[しきい値] のデフォルト値のままにします。その場合は、[指標の不在] を選択します。デフォルト設定では、指標の値としきい値を比較します。

    2. [Metric absence] 条件の場合は、次の操作を行います。

      1. [Alert trigger] メニューの値を選択します。このメニューを使用すると、条件をトリガーする前に適合する必要がある時系列のサブセットを指定できます。
      2. [トリガーとなる不在時間] フィールドを使用してアラート通知を送信する前の指標データの不在時間を指定します。

      モニタリングでは常に、ローリング ウィンドウを 24 時間に設定して「指標の不在」の条件を評価します。コンソールには、入力した値がオーバーライドされていることを示すメッセージが表示されます。

    3. [しきい値] 条件の場合は、次の操作を行います。

      1. [Alert trigger] メニューの値を選択します。このメニューを使用すると、条件をトリガーする前に適合する必要がある時系列のサブセットを指定できます。

      2. [しきい値の位置] と [しきい値] を使用して、指標の値がしきい値に違反するタイミングを入力します。たとえば、これらの値を [しきい値より上] と [0.3] に設定すると、0.3 より高い測定値はしきい値に違反します。

      3. 省略可: 測定値がしきい値に違反してアラートがインシデントを生成するまでの期間を選択するには、[詳細オプション] を開いて [再テスト ウィンドウ] メニューを使用します。

        デフォルト値は [再テストなし] です。この設定では、1 回の測定で通知を行えます。詳細と例については、アライメントの期間と継続時間をご覧ください。

      4. 省略可: データの受信が停止したときに Monitoring が条件を評価する方法を指定するには、[詳細オプション] を開いて [Evaluation missing data] メニューを使用します。このメニューを有効にするには、[再テスト ウィンドウ] を [再テストなし] 以外の値に設定する必要があります。

        Google Cloud コンソール
        [評価データの不足] フィールド
        まとめ 詳細
        欠落データがない 対応待ちのインシデントはオープンのままです。
        新しいインシデントはオープンされません。

        条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、データが送られてこない場合、自動クローズ タイマーは 15 分以上の時間をおいて開始されます。タイマーの期限が切れると、インシデントはクローズされます。

        条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。

        欠落データポイントが、ポリシーに違反する値として扱われる 対応待ちのインシデントはオープンのままです。
        新しいインシデントをオープンできます。

        条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータが到着しない場合、インシデントはクローズされます。

        条件が満たされない場合は、この設定により、指標しきい値の条件が metric-absence condition のように動作します。再テストの時間枠で指定された時間内にデータを受信しない場合は、条件が満たされたと評価されます。条件が 1 つのアラート ポリシーでは、条件が満たされるとインシデントが開始されます。

        欠落データポイントが、ポリシーに違反しない値として扱われる 対応待ちのインシデントはクローズされます。
        新しいインシデントはオープンされません。

        条件が満たされている場合、データの受信が停止すると、その条件は満たされなくなります。この条件のインシデントが対応待ちの場合、インシデントはクローズされます。

        条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。

  7. 省略可: 複数の条件でアラート ポリシーを作成します。

    ほとんどのポリシーは、1 つの指標タイプをモニタリングします。たとえば、ポリシーで VM インスタンスに書き込まれたバイト数をモニタリングする場合があります。複数の指標タイプをモニタリングする場合は、複数の条件を持つポリシーを作成します。各条件では 1 つの指標タイプがモニタリングされます。条件を作成したら、条件を組み合わせる方法を指定します。詳細については、複数の条件を持つポリシーをご覧ください。

    複数の条件を持つアラート ポリシーを作成するには、次の操作を行います。

    1. 追加する条件ごとに [条件を追加] をクリックし、上記の手順を使用して条件を構成します。
    2. すべての条件を追加したら、[複数条件のトリガー] ステップでこれらの条件の組み合わせ方法を選択します。
  8. [次へ] をクリックして通知と名前ページに進みます。

  9. [通知チャネル] メニューを開いて通知チャネルを選択します。

    冗長性を確保するために、複数のタイプの通知チャンネルをアラート ポリシーに追加することをおすすめします。これらの推奨事項の詳細については、通知チャンネルを管理するをご覧ください。

  10. インシデントがクローズされたときに通知を受け取るには、[Notify on incident closure] を選択します。

    デフォルトでは、Google Cloud コンソールでアラート ポリシーを作成すると、インシデントが作成されたときにのみ通知が送信されます。

  11. 省略可: データの受信が停止してからインシデントがクローズされるまでの Monitoring の待機時間を変更するには、[インシデントの自動クローズ期間] メニューからオプションを選択します。

    デフォルトでは、データの受信が停止すると、Monitoring は対応待ちのインシデントがクローズされるまで 7 日間待機します。

  12. 省略可: アラート ポリシーにカスタムラベルを追加するには、[Policy user labels] セクションで、次の操作を行います。

    1. [ラベルを追加] をクリックして、[キー] フィールドにラベルの名前を入力します。ラベル名の先頭は小文字にする必要があり、小文字、数字、アンダースコア、ダッシュを使用できます。たとえば、「severity」と入力します。
    2. [] をクリックし、ラベルの値を入力します。ラベルの値に使用できるのは、小文字、数字、アンダースコア、ダッシュです。たとえば、「critical」と入力します。

    ポリシーラベルを使用してアラートを管理する方法については、アラート ポリシーに重大度レベルを追加するをご覧ください。

  13. 省略可: 通知付きのカスタム ドキュメントを指定する場合は、その内容を [ドキュメント] セクションに入力します。

    ドキュメントのフォーマットには Markdown を使用できます。ポリシー自体から情報を pull してドキュメントの内容を調整するには、変数を使用できます。 たとえば、Addressing High CPU Usage などのタイトルと、プロジェクトを識別する詳細をドキュメントに含めることができます。

    ## Addressing High CPU Usage
    
    This note contains information about high CPU Usage.
    
    You can include variables in the documentation. For example:
    
    This alert originated from the project ${project}, using
    the variable $${project}.
    

    通知が作成されると、Monitoring によって変数が通知の値に置き換えられます。この値は通知でのみ変数に置き換えられます。プレビュー ペインと Google Cloud コンソールの他の場所では、マークダウンの書式のみが表示されます。

    マークダウンを使用したドキュメント メモの作成例

    Markdown と変数の詳細については、ドキュメント テンプレートで Markdown と変数を使用するをご覧ください。

    通知を制御するためにチャネル固有のタグを含める方法については、チャネル コントロールの使用をご覧ください。

  14. [アラート名] をクリックして、アラート ポリシーの名前を入力します。

  15. [ポリシーを作成] をクリックします。

変化率のアラート ポリシーを作成する

指標の変化率がしきい値を超えた場合に通知を受け取るには、変化率のアラート ポリシーを作成します。たとえば、CPU 使用率が急速に上昇したときに通知を受けるには、このタイプのポリシーを作成します。

このタイプのポリシーを作成するには、デフォルトのアラート ポリシー作成フローで説明されている手順に沿って行ってください。ただし、[ローリング ウィンドウ関数] フィールドが [percent change] に設定されていることを確認します。

percent change 関数を選択すると、Monitoring は次の処理を行います。

  1. 時系列に DELTA または CUMULATIVE の指標の種類がある場合、その時系列は GAUGE の指標の種類を持つ時系列に変換されます。変換の詳細については、種類、タイプ、コンバージョンをご覧ください。
  2. 直近 10 分間のウィンドウの平均値を、再テストの前の 10 分間のウィンドウの平均値と比較することで変化率を計算します。

    10 分間のルックバック ウィンドウは固定値です。変更はできません。ただし、条件を作成するときに再テスト ウィンドウを指定できます。

プロセスの状態のアラート ポリシーを作成する

指定した条件を満たす VM で実行中のプロセスの数をモニタリングするには、プロセスの状態のアラート ポリシーを作成します。たとえば、root ユーザーが開始したプロセスの数をカウントできます。呼び出しコマンドに特定の文字列が含まれるプロセスの数を数えることもできます。アラート ポリシーでは、プロセス数がしきい値を上回るか、下回ったときに通知できます。モニタリングできるプロセスについては、モニタリングされるプロセスをご覧ください。

プロセスの状態の指標は、Ops エージェントまたは Monitoring エージェントがモニタリング対象リソースで実行されているときに使用できます。エージェントの詳細については、Google Cloud オペレーション スイートのエージェントをご覧ください。

VM 上で実行されているプロセスの数をモニタリングする手順は次のとおりです。

  1. Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動

  2. ナビゲーション パネルで [アラート] を選択し、[ポリシーを作成] をクリックします。

  3. [?] を選択して[指標の選択] ヘッダーをクリックして、ツールチップの [ダイレクト フィルタモード] を選択します。

  4. モニタリング フィルタを入力します。

    たとえば、名前に nginx が含まれている Compute Engine VM インスタンスで動作しているプロセスの数をカウントするには、次のように入力します。

    select_process_count("monitoring.regex.full_match(\".*nginx.*\")")
    resource.type="gce_instance"
    

    詳しくは、次のリソースをご覧ください。

  5. アラート ポリシー ダイアログを終了します。これらの手順についてのみ、このセクションで説明します。詳細については、デフォルトのアラート ポリシー作成フローをご覧ください。

    1. 省略可: データ変換の設定を確認して更新します。
    2. [次へ] をクリックして条件のトリガーを構成します。
    3. [次へ] をクリックし、通知とドキュメントの手順を完了します。
    4. [アラート名] をクリックして、アラート ポリシーの名前を入力します。
    5. [ポリシーを作成] をクリックします。

モニタリング対象のプロセス

プロセスの状態条件によって、システム内で実行中のすべてのプロセスをモニタリングできるわけではありません。この条件により、プロセスを呼び出したコマンドラインに適用される正規表現を使用して、モニタリングするプロセスが選択されます。コマンドライン フィールドが使用できない場合、プロセスはモニタリングできません。

プロセスの状態条件でプロセスをモニタリングできるかどうかを判別する方法の 1 つは、アクティブなプロセスを調べることです。たとえば、Linux システムの場合、ps コマンドを使用できます。

    ps aux | grep nfs
    USER      PID  %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      1598  0.0  0.0      0     0 ?        S<   Oct25   0:00 [nfsd4]
    root      1639  0.0  0.0      0     0 ?        S    Oct25   2:33 [nfsd]
    root      1640  0.0  0.0      0     0 ?        S    Oct25   2:36 [nfsd]

COMMAND エントリが角かっこで囲まれている場合(たとえば、[nfsd])、プロセスのコマンドライン情報は利用できません。この場合、Cloud Monitoring を使用してプロセスをモニタリングすることはできません。

SLO アラート ポリシーを作成する

定義されたサービスレベル目標(SLO)に違反する危険があるときに通知を受け取るために、アラート ポリシーを作成します。たとえば、システムの SLO の中には、1 週間に 99% の可用性を実現するというものもあります。別の SLO では、30 日間のローリング期間中のリクエストのうち、レイテンシが 300 ミリ秒を超えるリクエストは 5% しか指定できません。

SLO のアラートの作成方法については、次のドキュメントをご覧ください。

Cloud Monitoring API の使用時に SLO アラート ポリシーを作成するには、API に提供するデータに時系列セレクタを含めます。 これらのセレクタの詳細については、SLO データの取得をご覧ください。

Google Cloud コンソールのアラート インターフェースを使用して、SLO アラート ポリシーを作成できます。手順については、プロセス状態のアラート ポリシーを作成するをご覧ください。ただし、Monitoring フィルタを入力する手順になったら、プロセスの状態式ではなく、時系列セレクタを入力します。

リソース グループのアラート ポリシーを作成する

グループのメンバーがいくつかの基準で定義されているリソースのコレクションをモニタリングする場合は、リソース グループを作成して、グループをモニタリングします。たとえば、本番環境で使用する Compute Engine VM インスタンスのリソース グループを定義できます。そのグループを作成したら、インスタンスのグループのみをモニタリングするアラート ポリシーを作成できます。グループ条件に一致する VM を追加すると、アラート ポリシーによってその VM が自動的にモニタリングされます。

リソース グループのアラート ポリシーは、Google Cloud コンソールを使用して作成できます。手順については、プロセス状態のアラート ポリシーを作成するをご覧ください。ただし、指標を選択してから、時系列を制限するフィルタをそのグループの基準と一致する時系列に追加します。

リソース グループをモニタリングするアラート ポリシーを作成するには、次の操作を行います。

  1. Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動

  2. ナビゲーション パネルで [アラート] を選択し、[ポリシーを作成] をクリックします。

  3. モニタリング対象の時系列を選択します。

    1. [Select a metric] をクリックして、フィルタバーに目的の指標タイプまたはリソースタイプの名前を入力します。たとえば、フィルタバーに「VM インスタンス」と入力すると、VM インスタンスの指標タイプのみが表示されます。「CPU」と入力すると、名前に「CPU」が含まれる指標タイプのみがメニューに表示されます。

    2. メニューを移動して指標を選択し、[適用] をクリックします。

      モニタリングする指標タイプが一覧に表示されない場合は、[Select a metric] メニューで [Show only active resources & metrics] を無効にします。詳細については、トラブルシューティング: 指標がメニューに表示されないをご覧ください。

    3. [フィルタを追加] をクリックして [グループ] を選択します。

    4. [] を開いて、グループ名を選択します。

    5. [完了] をクリックします。

  4. デフォルトのアラート ポリシー作成フローの説明に沿って、アラート ポリシーを構成する手順を完了します。

稼働時間チェックのアラート ポリシーを作成する

稼働時間チェックが失敗したときに通知するアラート ポリシーを作成することをおすすめします。稼働時間チェック インフラストラクチャには、ガイド付きのアラート作成フローが含まれています。 これらの手順の詳細については、稼働時間チェックに関するアラートをご覧ください。

トラブルシューティング: 指標がメニューに表示されない

デフォルトでは、[指標を選択] メニューには、データが存在するすべての指標タイプが一覧表示されます。たとえば、Pub/Sub を使用していない場合、これらのメニューに Pub/Sub 指標は表示されません。

アラートでモニタリングするデータがまだ存在しない場合でも、アラートを構成できます。

  • Google Cloud 指標をモニタリングするアラートを作成するには、デフォルトのアラート ポリシー作成フローの手順に沿って作成します。ただし、指標を選択するステップでは、[指標を選択] メニューで [有効なリソースと指標のみを表示] を無効にします。無効にすると、Google Cloud サービスのすべての指標とデータのあるすべての指標がメニューに表示されます。

  • カスタム指標タイプによってデータが生成される前に、カスタム指標タイプのアラートを構成する場合は、プロセスの状態のアラート ポリシーの作成の手順に沿って行います。Monitoring フィルタを入力する手順になったら、指標タイプとリソースを指定するフィルタを入力します。指標タイプを指定する Monitoring フィルタの例を次に示します。

    metric.type="compute.googleapis.com/instance/disk/write_bytes_count"
    resource.type="gce_instance"