スヌーズの作成と管理

このドキュメントでは、スヌーズを作成して管理する方法について説明します。スヌーズを使用すると、Cloud Monitoring で特定の期間にインシデントが作成され、通知が発行されないようにすることができます。各スヌーズで適用するリソースを指定します。

コンセプトの概要については、通知とインシデントのスヌーズをご覧ください。

ホワイトリストの作成と管理には、Google Cloud コンソールまたは Cloud Monitoring API を使用します。

始める前に

  1. 必要な権限があることを確認してください。

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

  2. このドキュメントの Cloud Monitoring API の例を使用する場合は、次の操作を行います。

    1. Google Cloud プロジェクト ID を保存する環境変数である PROJECT_ID を作成します。

      PROJECT_ID=PROJECT_ID
    2. Google Cloud CLI に対して認証を行います。

      gcloud auth login
    3. デフォルトの Google Cloud プロジェクトを設定します。

      gcloud config set project ${PROJECT_ID}
    4. 認可トークンを作成します。

      ACCESS_TOKEN=`gcloud auth print-access-token`

      アクセス トークンは定期的に更新する必要があります。動作していたコマンドが急に未認証と報告された場合は、このコマンドを再発行します。

スヌーズの作成

アラート ポリシーでのインシデントの作成と通知の送信を防ぐには、スヌーズを作成します。

スヌーズは、Google Cloud コンソール、gcloud CLI、または Cloud Monitoring API を使用して作成できます。

Console

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

    [アラート] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. 対応待ちのインシデントからスヌーズを作成するには、次のようにします。
    1. [アラート] ページの [インシデント] ペインで、インシデントを見つけて [インシデントの概要] をクリックします。
    2. [インシデントの詳細] ページで [スヌーズ] をクリックし、スヌーズの時間を指定します。他のフィールドは構成できません。
  3. まだ完了していない場合は、次の操作を行います。

    1. [アラート] ページで、[スヌーズを作成] をクリックします。
    2. スヌーズ用にわかりやすい名前を入力します。この名前は [アラート] ページに表示されます。
    3. [Start time] を選択します。特定の時間を入力するか、スヌーズが作成されるときにそのスヌーズを開始できます。
    4. [期間] を入力します。このフィールドの値によって、スヌーズ時間の長さが決まります。
    5. [スヌーズの条件] セクションに入力します。[アラート ポリシー] メニューを使用して、スヌーズに適用するアラート ポリシーを選択できます。

      1 つのスヌーズには最大 16 個のアラート ポリシーを追加できます。

      [スヌーズの条件] セクションに入力すると、[スヌーズ条件を作成] ペインに、基準に一致する過去のインシデントが一覧表示されます。

    6. [作成] をクリックします。

Cloud Monitoring API

スヌーズを作成するには、Snooze エンドポイントに POST リクエストを発行して snoozes.create メソッドを呼び出します。snooze オブジェクトを指定する必要があります。

curl -d @my-snooze.json -H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-X POST https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes

このメソッドは snooze オブジェクトを返します。"name" フィールドには、Monitoring によって生成されたスヌーズ ID が含まれます。このフィールドは、返されるオブジェクトと my-snooze.json の内容との唯一の相違点です。

{
  "name": "projects/my-project/snoozes/2986666341878464512",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/787884840895011889"
    ]
  },
  "interval": {
    "startTime": "2022-11-12T19:00:20Z",
    "endTime": "2022-11-12T19:05:20Z"
  },
  "displayName": "Snooze2"
}

gcloud CLI

スヌーズを作成するには、gcloud monitoring snoozes create コマンドを実行します。

gcloud monitoring snoozes create --criteria-policies=LIST_OF_POLICIES --display-name=DISPLAY_NAME --start-time=START_TIME --end-time=END_TIME

上記のコマンドでは、end-timestart-time より 1 分以上遅くする必要があります。ISO 8601 のフォーマット規則に従う必要がありますが、絶対的時間または相対的時間を指定できます。次の例では、絶対的時間を指定しています。現在の時刻から 30 分後にスヌーズを開始するには、--start-time="+PTM30M" を使用します。

複数のプロジェクトを指定する場合は、カンマで区切ります。

たとえば、次のコマンドでは、表示名が「Maintenance Week」のスヌーズが作成されます。スヌーズは 2 つのアラート ポリシーに適用され、3 月 1 日から 3 月 7 日までの期間にわたります。

gcloud monitoring snoozes create --display-name="Maintenance Week" \
    --criteria-policies="projects/my-project/alertPolicies/12345,projects/my-project/alertPolicies/23451" \
    --start-time="2023-03-01T03:00:00.0-0500" \
    --end-time="2023-03-07T23:59:59.5-0500"

上の例では、my-project に次のスヌーズが作成されます。

{
 "name": "projects/my-project/snoozes/98765",
 "displayName": "Maintenance Week",
 "interval": {
   "startTime": "2023-03-01T08:00:00Z",
   "endTime": "2023-03-08T04:59:59Z"
 },
 "criteria": {
   "policies": [
     "projects/my-project/alertPolicies/12345",
     "projects/my-project/alertPolicies/23451",
   ]
 }
}

成功すると、このコマンドに対するレスポンスは次のようになります。

Created snooze [projects/my-project/snoozes/98765]

アラート ポリシーの名前は Google Cloud コンソールに表示されません。アラート ポリシーの名前を確認するには、次のいずれかを行います。

  • gcloud alpha monitoring policies list コマンドを実行します。このコマンドのレスポンス データには、アラート ポリシーの名前が含まれます。
  • アラート ポリシーの JSON 表現を表示します。[ポリシーの詳細] ページのオプションを使用して、JSON 表現をローカル システムにダウンロードできます。

定期的なスヌーズを作成する

一定の間隔で発生するスヌーズを作成するには、アラート ポリシーのスヌーズを作成するスクリプトを作成します。次に、cronCloud Scheduler などのジョブ スケジューラを使用して、必要なスケジュールに対してスクリプトを実行します。

スヌーズの一覧表示

スヌーズを作成すると、プロジェクトのスヌーズの履歴レコードに追加されます。このレコードには、期限切れ、アクティブ、および今後のスヌーズが表示されます。このレコードからエントリを削除することはできません。つまり、スヌーズを削除することはできません。ただし、このビューにより、スヌーズの詳細を表示したり、スヌーズの編集やコピーなどの操作を行ったりできます。

Console

スヌーズのリストを表示するには、次の手順を行います。

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

    [アラート] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. [スヌーズ] ペインで [すべてのスヌーズを表示] をクリックします。

    [スヌーズ] ページには、スヌーズの一覧と、過去、現在、予定されているスヌーズをグラフで表示するタイムラインが表示されます。

    • スヌーズを編集、コピー、キャンセル、終了するには、 その他のオプション メニューを使用します。使用可能なオプションは、スヌーズの状態によって決まります。
    • すべてのスヌーズを一覧表示するには、[過去のスヌーズを表示] を有効にします。デフォルトでは、アクティブなスヌーズと今後のスヌーズのみが表示されます。
    • [タイムライン] テーブルの表示期間を変更するには、[期間] メニューを使用します。デフォルトでは、今後 1 時間のデータが表示されます。ただし、このフィールドを変更して、過去の期間または将来の期間を指定できます。 期限切れのスヌーズは 13 か月間保持されます。
    • 特定のスヌーズの詳細を表示するには、[詳細を表示] をクリックします。
    • アクティブなスヌーズの概要を表示するには、[タイムライン] テーブルの [アクティブ] 行の網掛け部分にポインタを置きます。ツールチップで概要情報が表示されます。
    • アクティブなスヌーズをグラフで表示するには、[タイムライン] テーブルの [アクティブ] 行を開きます。

Cloud Monitoring API

Google Cloud プロジェクトに属するすべてのスヌーズを一覧表示するには、snoozes.list メソッドを呼び出します。

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes

このメソッドは、snooze オブジェクトのリストを返します。たとえば、プロジェクトにスヌーズが 1 つある場合、snoozes.list コマンドに対するレスポンスは次のようになります。

{
  "snoozes": [
    {
      "name": "projects/my-project/snoozes/2986663705844383744",
      "criteria": {
        "policies": [
          "projects/my-project/alertPolicies/787884840895011889"
        ]
      },
      "interval": {
        "startTime": "2022-11-08T19:00:20Z",
        "endTime": "2022-11-08T19:05:20Z"
      },
      "displayName": "Snooze1"
    }
  ]
}

特定のスヌーズに関する情報を取得するには、snoozes.get メソッドを呼び出して、プロジェクト ID とスヌーズ ID を指定します。上記のレスポンスでは、スヌーズ ID は 2986663705844383744 です。

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes/${SNOOZE_ID}

このメソッドは、単一の snooze オブジェクトを返します。

{
  "name": "projects/my-project/snoozes/2986663705844383744",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/787884840895011889"
    ]
  },
  "interval": {
    "startTime": "2022-11-08T19:00:20Z",
    "endTime": "2022-11-08T19:05:20Z"
  },
  "displayName": "Snooze1"
}

gcloud CLI

現在のプロジェクトのスヌーズを一覧表示するには、gcloud monitoring snoozes list コマンドを実行します。

gcloud monitoring snoozes list OPTIONAL_FLAGS

オプション フラグの詳細については、gcloud monitoring snoozes list リファレンス ページをご覧ください。

このコマンドのレスポンスは、プロジェクト内のスヌーズの名前のリストで、YAML 形式で返されます。たとえば、ID が my-project の Google Cloud プロジェクトに対するこのコマンドのレスポンスは、単一のエントリです。

criteria:
  policies:
  - projects/my-project/alertPolicies/12345
  - projects/my-project/alertPolicies/23451
displayName: Maintenance Week
interval:
  endTime: '2023-03-08T04:59:59Z'
  startTime: '2023-03-01T08:00:00Z'
name: projects/my-project/snoozes/98765

特定のスヌーズに関する詳細を一覧表示するには、gcloud monitoring snoozes describe コマンドを実行します。

gcloud monitoring snoozes describe NAME

たとえば、名前が projects/my-project/snoozes/98765 のスヌーズの詳細を表示するには、次のコマンドを実行します。

gcloud monitoring snoozes describe projects/my-project/snoozes/98765

describe コマンドに無効な NAME を指定すると、レスポンスには 500 のエラーコードと次のメッセージが含まれます。

Internal error encountered. Please retry after a few seconds. If internal errors persist, contact support at https://cloud.google.com/support/docs.

スヌーズを編集する

予定されているスヌーズの名前と期間は編集できます。また、アクティブなスヌーズの名前と終了時間も編集できます。たとえば、メンテナンスの時間枠が再スケジュールされる場合は、スヌーズを編集する必要があります。

過去のスヌーズやスヌーズの条件を編集することはできません。ただし、過去のスヌーズを将来の期間に対してスケジュールするには、該当するスヌーズをコピーして、[作成] を選択する前にそのコピーに変更を適用します。

Console

スヌーズを編集するには、次の手順を行います。

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

    [アラート] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. [スヌーズ] ペインで [すべてのスヌーズを表示] をクリックします。
  3. スヌーズのリストで、編集するスヌーズを探し、 その他のオプション メニューで [スヌーズを編集] を選択します。
  4. 変更が完了したら、[保存] をクリックします。

Cloud Monitoring API

既存のスヌーズを変更するには、Snooze エンドポイントに PATCH リクエストを発行して snoozes.patch メソッドを呼び出します。変更後の snooze オブジェクトを指定し、変更されたフィールドを識別するクエリ パラメータを含める必要があります。curl を使用する場合は、クエリ パラメータを URL エンコードする必要があります。

今後のスヌーズで、名前と期間を変更できます。アクティブなスヌーズでは、名前と終了時間を変更できます。過去のスヌーズは変更できません。

スヌーズの displayName を更新するには、スヌーズ オブジェクトを記述し、表示名を更新する JSON ファイル my-updated-snooze.json を作成します。そのうえで、次のコマンドを実行します。

curl -d @my-updated-snooze.json -H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-X PATCH https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes/${SNOOZE_ID}?updateMask=displayName

このメソッドは、ファイル my-updated-snooze.json の内容と同じ snooze オブジェクトを返します。

{
  "name": "projects/my-project/snoozes/2986665388391530496",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/7164333552684403347"
    ]
  },
  "interval": {
    "startTime": "2022-11-08T22:26:05Z",
    "endTime": "2022-11-08T22:31:05Z"
  },
  "displayName": "Updated snooze name"
}

gcloud CLI

スヌーズを編集するには、gcloud monitoring snoozes update コマンドを実行します。表示名、開始時間、終了時間を更新できます。

gcloud monitoring snoozes update NAME OPTIONAL_FLAGS

update コマンドのオプションの一覧については、gcloud monitoring snoozes update リファレンス ページをご覧ください。

たとえば、名前が projects/my-project/snoozes/98765 のスヌーズの表示名を変更するには、次のコマンドを実行します。

gcloud monitoring snoozes update projects/my-project/snoozes/98765  --display-name="March Maintenance"

スヌーズを終了またはキャンセルする

アクティブなスヌーズに指定した条件と一致するリソースに関する通知を受信するには、スヌーズを終了させます。たとえば、計画されたメンテナンスが予想よりも早く完了したときには、スヌーズを終了できます。

予定されたスヌーズが不要になった場合は、そのスヌーズをキャンセルします。 キャンセル操作では、期間が 0 に設定され、その結果、スヌーズが過去の状態に移行します。

Console

アクティブなスヌーズを終了するか、予定されているスヌーズをキャンセルするには、次の操作を行います。

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

    [アラート] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. [スヌーズ] ペインで [すべてのスヌーズを表示] をクリックします。
  3. スヌーズのリストで、終了またはキャンセルするスヌーズを見つけて、次のいずれかを行います。

    • アクティブなスヌーズを終了するには、 [その他のオプション] メニューで [今すぐ終了] を選択します。
    • 予定されているスヌーズをキャンセルするには、 [その他のオプション] メニューで [スヌーズをキャンセル] を選択します。

Cloud Monitoring API

アクティブなスヌーズを終了するには、スヌーズを編集して、終了時刻を現在の時刻に設定します。詳細については、スヌーズを編集するをご覧ください。

予定されているスヌーズをキャンセルするには、スヌーズを編集して、スヌーズの開始時刻に終了時刻を設定します。開始時刻には将来の日付を指定してください。詳細については、スヌーズを編集するをご覧ください。

gcloud CLI

アクティブなスヌーズを終了するか、予定されているスヌーズをキャンセルするには、gcloud monitoring snoozes cancel コマンドを実行します。

gcloud monitoring snoozes cancel NAME

たとえば、名前が projects/my-project/snoozes/98765 のスヌーズをキャンセルするには、次のコマンドを実行します。

gcloud monitoring snoozes cancel projects/my-project/snoozes/98765

スヌーズのコピー

既存のスヌーズを別のスヌーズのテンプレートとして使用する場合は、コピーを作成します。スヌーズをコピーすると、元のスヌーズの値に設定された開始時間を除くすべてのフィールドを含むスヌーズ エディタが開きます。[作成] をクリックする前に、すべてのフィールドを変更できます。

コンソールを使用してスヌーズをコピーする手順は次のとおりです。

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

    [アラート] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. [スヌーズ] ペインで [すべてのスヌーズを表示] をクリックします。
  3. スヌーズのリストで、編集するスヌーズを探し、 その他のオプション メニューで [スヌーズをコピー] を選択します。
  4. 変更をコピーに適用し、[作成] をクリックします。

次のステップ