ログベースのアラート ポリシーのインシデント

インシデントとは、アラート ポリシーの条件が満たされたタイミングを記録したものです。通常、アラート ポリシーの条件に一致するログを受信すると、Cloud Monitoring はインシデントを開いて通知を送信します。ただし、次のような状況ではインシデントは作成されません。

  • ポリシーがスヌーズされているか、無効になっている。
  • アラート ポリシーまたはインシデントの数が、既存のアラートの上限を超えている。
  • 別のログエントリにより、開かれているインシデントと同じ条件が満たされた。この場合、Monitoring は同じインシデントに関する別の通知のみを送信します。

Monitoring は、インシデントごとに [インシデントの詳細] ページを作成します。このページでは、インシデントを管理できるほか、障害のトラブルシューティングに役立つインシデント情報が報告されます。たとえば、[インシデントの詳細] ページには、ログベースのアラート ポリシーのクエリに一致するログエントリのリストが表示されます。関連するインシデントへのリンクも確認できます。

このドキュメントでは、インシデントを検索する方法について説明します。また、[インシデントの詳細] ページを使用して、Cloud Logging の個々のログに保存されているログエントリ データを評価するログベースのアラート ポリシーのインシデントを管理する方法についても説明します。

この機能は Google Cloud プロジェクトでのみサポートされています。App Hub の構成には、App Hub ホスト プロジェクトまたは管理プロジェクトを選択します。

始める前に

インシデントの表示と管理に必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Cloud Monitoring のロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。

インシデントを表示

プロジェクトのインシデントを表示するには、 Google Cloud コンソール、gcloud CLI(一般提供)、または Monitoring API(一般提供)を使用します。

Google Cloud コンソール

Google Cloud プロジェクトのインシデントを一覧表示する手順は次のとおりです。

  1. Google Cloud コンソールで、[ アラート] ページに移動します。

    [アラート] に移動

    このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。

  2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub の構成には、App Hub ホスト プロジェクトまたは管理プロジェクトを選択します。

    [アラート] ページには、アラート ポリシー、スヌーズ、インシデントに関する情報が表示されます。

    • [概要] ペインには、開かれているインシデントの数が一覧表示されます。
    • [インシデント] テーブルには、最新の対応待ちインシデントが表示されます。クローズされたインシデントを含め、テーブル内の最新のインシデントを一覧表示するには、[対応済みのインシデントを表示] をクリックします。
  3. 特定のインシデントの詳細を表示するには、リスト内のインシデントを選択します。

    [インシデントの詳細] ページが開きます。[インシデントの詳細] ページの詳細については、このドキュメントのインシデントを調査するセクションをご覧ください。

古いインシデントを見つける

[アラート] ページの [インシデント] テーブルに、最新の対応待ちのインシデントが表示されます。古いインシデントを表示するには、次のいずれかを行います。

  • [インシデント] テーブルで [ ] または [ それ以前] をクリックし、ページを切り替えてエントリを確認します。

  • インシデントを一覧表示してフィルタできるページを開くには、[すべてのインシデントを表示] をクリックします。[インシデント] ページが開きます。そのページで、次の操作を行います。

    • クローズしたインシデントを含むすべてのインシデントを表示します。すべてのインシデントを表示するには、[クローズしたインシデントを表示] をクリックします。
    • インシデントをフィルタします。フィルタの追加については、インシデントをフィルタするをご覧ください。
    • インシデントを確認またはクローズするか、アラート ポリシーをスヌーズする。これらのオプションにアクセスするには、インシデントの行で [その他のオプション] をクリックし、メニューから項目を選択します。詳細については、インシデントを管理するをご覧ください。

インシデントのフィルタ

テーブルに表示されるインシデントを制限するには、フィルタを追加します。複数のフィルタを追加すると、すべてのフィルタを満たすインシデントのみがテーブルに表示されます。

インシデントのテーブルをフィルタするには、次の操作を行います。

  1. [インシデント] ページで [ テーブルをフィルタリング] をクリックし、フィルタ プロパティを選択します。フィルタ プロパティには、次のものが含まれます。

    • インシデントの状態
    • アラート ポリシーの名前
    • インシデントの開始日、終了日
  2. サブメニューの値を選択するか、フィルタバーに値を入力します。

    [インシデント] テーブルにフィルタが一覧表示されます。

gcloud

gcloud を使用して、インシデントを取得したり、インシデントを一覧表示したりできます。

インシデントを取得する

後述のコマンドデータを使用する前に、次のように置き換えます。

  • ALERT_NAME: アラートのリソース名。例: projects/my-project/alerts/my-alert-id

gcloud alpha monitoring alerts describe コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud alpha monitoring alerts describe ALERT_NAME

Windows(PowerShell)

gcloud alpha monitoring alerts describe ALERT_NAME

Windows(cmd.exe)

gcloud alpha monitoring alerts describe ALERT_NAME
このコマンドは、アラートの状態、関連付けられたラベル、ソース アラート ポリシーなどのアラートの詳細を含むレスポンスを返します。この機能がプレビュー版である間は、レスポンスのラベルは変更される可能性があります。レスポンスは次のようになります。
{
  "name": "projects/my-project/alerts/my-alert-id",
  "state": "OPEN",
  "open_time": "2025-06-11T09:53:46Z",
  "resource": {
    "type": "k8s_cluster",
    "labels": {
      "location": "us-central1",
      "cluster_name": "example_cluster",
      "project_id": "my-project"
    }
  },
  "log": {
    "extracted_labels": {
      "title": "my title"
    }
  },
  "policy": {
    "name": "projects/my-project/alertPolicies/POLICY_1",
    "displayName": "test-policy"
  },
  "summaryText": "[ALERT] test-policy for Kubernetes Cluster with {cluster_name=example_cluster, location=us-central1, project_id=my-project}"
}

インシデントの一覧を取得する

gcloud CLI を使用して、プロジェクトのインシデントを一覧表示し、結果をフィルタリングできます。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。

gcloud alpha monitoring alerts list コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud alpha monitoring alerts list

Windows(PowerShell)

gcloud alpha monitoring alerts list

Windows(cmd.exe)

gcloud alpha monitoring alerts list
このコマンドは、アラートの状態、関連付けられたラベル、ソース アラート ポリシーなどのアラートの詳細を含むレスポンスを返します。この機能がプレビュー版である間は、レスポンスのラベルは変更される可能性があります。レスポンスは次のようになります。
{
  "alerts": [
    {
      "name": "projects/my-project/alerts/my-alert-id",
      "state": "OPEN",
      "open_time": "2025-06-11T09:53:46Z",
      "resource": {
        "type": "k8s_cluster",
        "labels": {
          "location": "us-central1",
          "cluster_name": "example_cluster",
          "project_id": "my-project"
        }
      },
      "log": {
        "extracted_labels": {
          "title": "my title"
        }
      },
      "policy": {
        "name": "projects/my-project/alertPolicies/POLICY_1",
        "displayName": "test-policy"
      },
      "summaryText": "[ALERT] test-policy for Kubernetes Cluster with {cluster_name=example_cluster, location=us-central1, project_id=my-project}"
    }
  ]
}
次のオプション フラグを使用して、出力をフィルタ、並べ替え、変更することもできます。
  • --filter: フィルタ式を指定して、時間またはラベルでアラートをフィルタします。たとえば、--filter='close_time>="2025-09-10T00:00:00Z"' で時間でフィルタしたり、--filter='resource.labels.key="value"' でラベルでフィルタしたりします。

  • --sort-by: 出力を並べ替えるフィールドのカンマ区切りのリスト。例: --sort-by=open_time

  • --uri: コマンドは、デフォルトの出力ではなく、リソース URI のリストを出力します。

  • --limit: 返されるアラートの数を制限するには、このフラグを 2 以上に設定します。このフラグは --filter フラグと組み合わせて使用しないでください。

Monitoring API

Monitoring API を使用して、インシデントを取得し、インシデントを一覧表示できます。

インシデントを取得する

Monitoring API で単一のインシデントの詳細を取得するには、alerts.get メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。
  • ALERT_ID: アラートの ID。

HTTP メソッドと URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/alerts/ALERT_ID

リクエストを送信するには、次のいずれかのオプションを展開します。

このコマンドは、アラートの状態、関連付けられたラベル、ソース アラート ポリシーなどのアラートの詳細を含むレスポンスを返します。この機能がプレビュー版である間は、レスポンスのラベルは変更される可能性があります。レスポンスは次のようになります。
{
  "name": "projects/my-project/alerts/my-alert-id",
  "state": "OPEN",
  "open_time": "2025-06-11T09:53:46Z",
  "resource": {
    "type": "k8s_cluster",
    "labels": {
      "location": "us-central1",
      "cluster_name": "example_cluster",
      "project_id": "my-project"
    }
  },
  "log": {
    "extracted_labels": {
      "title": "my title"
    }
  },
  "policy": {
    "name": "projects/my-project/alertPolicies/POLICY_1",
    "displayName": "test-policy"
  },
  "summaryText": "[ALERT] test-policy for Kubernetes Cluster with {cluster_name=example_cluster, location=us-central1, project_id=my-project}"
}

インシデントの一覧を取得する

プロジェクト内のインシデントを一覧表示し、Monitoring API で結果をフィルタするには、alerts.list メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。

HTTP メソッドと URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/alerts

リクエストを送信するには、次のいずれかのオプションを展開します。

このコマンドは、アラートの状態、関連付けられたラベル、ソース アラート ポリシーなどのアラートの詳細を含むレスポンスを返します。この機能がプレビュー版である間は、レスポンスのラベルは変更される可能性があります。レスポンスは次のようになります。
{
  "alerts": [
    {
      "name": "projects/my-project/alerts/my-alert-id",
      "state": "OPEN",
      "open_time": "2025-06-11T09:53:46Z",
      "resource": {
        "type": "k8s_cluster",
        "labels": {
          "location": "us-central1",
          "cluster_name": "example_cluster",
          "project_id": "my-project"
        }
      },
      "log": {
        "extracted_labels": {
          "title": "my title"
        }
      },
      "policy": {
        "name": "projects/my-project/alertPolicies/POLICY_1",
        "displayName": "test-policy"
      },
      "summaryText": "[ALERT] test-policy for Kubernetes Cluster with {cluster_name=example_cluster, location=us-central1, project_id=my-project}"
    }
  ]
}
Curl ユーザーは、--data-urlencode フラグの後にフィルタ式を追加して、時間またはラベルでアラートをフィルタできます。次の例をご覧ください。

過去 1 時間以内に開かれたアラートを一覧表示します。

--data-urlencode "filter=(open_time>=\"`date -u -d "1 hour ago" +"%Y-%m-%dT%H:%M:%SZ"`\")"

過去 1 日間にオープンしたアラートを一覧表示してフィルタします。

--data-urlencode "filter=(open_time>=\"`date -u -d "1 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\" AND state=open)"

2 つの期間の間にオープンされたアラートを一覧表示してフィルタします。

--data-urlencode "filter=(open_time>=\"`date -u -d "2 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\" AND open_time<=\"`date -u -d "1 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\")"

ユーザーラベルでアラートを一覧表示してフィルタします。この例では、名前が app で値が my-gke-app のユーザーラベルでフィルタします。

--data-urlencode "filter=(policy.user_labels.app=\"my-gke-app\")"
Powershell ユーザーは、次の例を使用して、リクエスト URL に時間ベースのフィルタを追加できます。
$baseUrl = "https://monitoring.googleapis.com/v3/projects/my-project/alerts"
$filterValue = (Get-Date).AddHours(-1).ToString("yyyy-MM-ddTHH:mm:ssZ")
$filter = 'open_time >= "' + $filterValue + '"'
$encodedFilter = [System.Uri]::EscapeDataString($filter)
$url = $baseUrl + "?filter=" + $encodedFilter

インシデントを調査する

[インシデントの詳細] ページには、インシデントの原因を特定する際に役立つ情報が表示されます。

ログエントリを調べる

ログエントリを調べて、調査に関連するパターンや繰り返し発生する問題を探します。[ログ] ペインには、ログベースのアラート ポリシーのクエリに一致するログエントリが表示されます。

  • ログ エクスプローラでログエントリを表示するには、[ログ エクスプローラで表示] をクリックし、スコーピング プロジェクトを選択します。
  • Metrics Explorer で [ログ] パネルを表示するには、[ データを探索] をクリックします。

補足情報を表示する

[ラベル] セクションには、インシデントの原因となったログエントリに含まれるモニタリング対象リソースのラベルと値が表示されます。この情報は、インシデントの原因となった具体的なモニタリング対象リソースの特定に役立ちます。詳細については、アラートにラベルでアノテーションを付けるをご覧ください。

[ドキュメント] セクションには、アラート ポリシーの作成時に指定した通知のドキュメント テンプレートが表示されます。この情報には、アラート ポリシーがモニタリングする内容の説明と、対策のヒントを含めることができます。詳細については、ユーザー定義のドキュメントで通知にアノテーションを付けるをご覧ください。

アラート ポリシーのドキュメントを構成しなかった場合、[ドキュメント] ペインには「ドキュメントが構成されていません」と表示されます。

アプリケーション全体の根本的な問題を特定するには、他のアラート ポリシーの条件に関連するインシデントを調べます。

[関連インシデント] セクションには、次のいずれかの条件に一致するインシデントのリストが表示されます。

  • このインシデントは、同じアラート ポリシーの条件が満たされたときに作成された。
  • このインシデントは、[インシデントの詳細] ページに表示されるインシデントとラベルを共有している。

インシデントを管理する

インシデントは次のいずれかの状態になります。

  •  オープン: ログベースのアラート ポリシーの条件が満たされ、インシデントがまだ開かれています。同じ条件が再度満たされても、インシデントがすでに開かれている場合、新しいインシデントは開かれません。

  •  確認済み: インシデントが開かれていて、手動で確認済みとしてマークされています。通常、このステータスは、そのインシデントが調査中であることを示します。

  •  クローズ済み: インシデントを手動でクローズしたか、自動クローズ期間が終了した後に自動的にクローズされました。

インシデントを確認する

インシデントの原因調査を開始するときは、インシデントに確認済みのマークを付けることをおすすめします。

インシデントに確認済みのマークを付けるには、次の操作を行います。

  1. [アラート] ページの [インシデント] テーブルで、[すべてのインシデントを表示] をクリックします。
  2. [インシデント] ページで、確認するインシデントを見つけて、次のいずれかを行います。

    • その他のオプション)をクリックし、[確認] を選択します。
    • インシデントの詳細ページを開いて、[インシデントを確認する] をクリックします。

アラート ポリシーをスヌーズする

特定の期間中に Monitoring でインシデントが作成されて通知が送信されないようにするには、関連するアラート ポリシーをスヌーズします。アラート ポリシーをスヌーズすると、そのアラート ポリシーに関連するインシデントは開かれたままになりますが、それ以上の通知は発生しません。インシデントは、アラート ポリシーの自動クローズ期間に基づいてクローズされます。

表示しているインシデントのスヌーズを作成するには、次の操作を行います。

  1. [インシデントの詳細] ページで、[ポリシーをスヌーズ] をクリックします。

  2. スヌーズ期間を選択します。スヌーズ期間を指定すると、スヌーズがすぐに開始されます。

[インシデント] ページから、スヌーズするインシデントを見つけて その他のオプション)をクリックし、[スヌーズ] を選択して、アラート ポリシーをスヌーズすることもできます。サービス停止中はアラート ポリシーをスヌーズして、トラブルシューティング プロセス中に通知が届かないようにすることができます。

インシデントをクローズする

Monitoring でインシデントをクローズすることも、ユーザーがインシデントをクローズすることもできます。

アラート ポリシーの自動クローズ期間が終了すると、Monitoring によってインシデントが自動的にクローズされます。デフォルトの自動クローズ期間は 7 日間です。自動クローズ期間は最短 30 分です。

自動クローズ期間には、インシデントの原因が再発しない状態で経過する必要がある時間を指定します。このため、インシデントが開かれている間にその原因が再発した場合、インシデントは自動クローズ期間よりも長く開かれたままになる可能性があります。

インシデントをクローズする手順は次のとおりです。

  1. [アラート] ページの [インシデント] テーブルで、[すべてのインシデントを表示] をクリックします。
  2. [インシデント] ページで、クローズするインシデントを見つけて、次のいずれかを行います。

    • もっと見る)をクリックし、[インシデントを閉じる] を選択します。
    • そのインシデントの [インシデントの詳細] ページを開き、[インシデントを閉じる] をクリックします。

メッセージ「Unable to close incident」が表示された場合は、数分後にもう一度お試しください。インシデントの原因となった条件はアラート システムによって引き続き有効であるとみなされるため、新しいインシデントを直ちにクローズすることはできません。

データの保持と上限

インシデントの制限と保持期間の詳細については、アラートの上限をご覧ください。

次のステップ