指標に基づくアラート ポリシーを作成する

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

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

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

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

始める前に

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      モニタリングする指標タイプがリストにない場合は、[指標の選択] メニューで [有効なリソースと指標のみを表示] を無効にします。詳しくは、トラブルシューティング: メニューに表示されない指標をご覧ください。

    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. [トリガーとなる不在時間] フィールドを使用してアラート通知を送信する前の指標データの不在時間を指定します。
    3. [しきい値] 条件の場合は、次の操作を行います。

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

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

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

        デフォルト値は [No retest] です。この設定では、測定を 1 回行うだけで通知が送られます。詳細と例については、アライメント期間と期間をご覧ください。

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

        Google Cloud Console
        「評価結果のデータがありません」
        概要 詳細
        欠落データがない 対応待ちのインシデントはオープンのままです。
        新しいインシデントはオープンされません。

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

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

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

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

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

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

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

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

  7. (省略可)複数の条件を使用してアラート ポリシーを作成します。

    ほとんどのポリシーでは、単一の指標タイプをモニタリングします。たとえば、ポリシーでは 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 Console の他の場所では、Markdown フォーマットのみが表示されます。

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

    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 Console で [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 Console で [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動

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

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

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

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

      モニタリングする指標タイプがリストにない場合は、[指標の選択] メニューで [有効なリソースと指標のみを表示] を無効にします。詳しくは、トラブルシューティング: メニューに表示されない指標をご覧ください。

    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"