このドキュメントでは、スヌーズを作成して管理する方法について説明します。スヌーズを使用すると、Cloud Monitoring で特定の期間にインシデントが作成され、通知が発行されないようにすることができます。各スヌーズで適用するリソースを指定します。
コンセプトの概要については、通知とインシデントのスヌーズをご覧ください。
ホワイトリストの作成と管理には、Google Cloud コンソールまたは Cloud Monitoring API を使用します。
始める前に
必要な権限があることを確認してください。
-
Google Cloud コンソールを使用してスヌーズを表示および編集するために必要な権限を取得するには、プロジェクトに対するモニタリング編集者(
roles/monitoring.editor
)の IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
-
Cloud Monitoring API を使用してスヌーズを表示および編集するために必要な権限を取得するには、プロジェクトに対するモニタリング スヌーズ編集者(
roles/monitoring.snoozeEditor
)の IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
Cloud Monitoring のロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。
-
このドキュメントの Cloud Monitoring API の例を使用する場合は、次の操作を行います。
Google Cloud プロジェクト ID を保存する環境変数である
PROJECT_ID
を作成します。PROJECT_ID=PROJECT_ID
Google Cloud CLI に対して認証を行います。
gcloud auth login
デフォルトの Google Cloud プロジェクトを設定します。
gcloud config set project ${PROJECT_ID}
認可トークンを作成します。
ACCESS_TOKEN=`gcloud auth print-access-token`
アクセス トークンは定期的に更新する必要があります。動作していたコマンドが急に未認証と報告された場合は、このコマンドを再発行します。
スヌーズの作成
アラート ポリシーでのインシデントの作成と通知の送信を防ぐには、スヌーズを作成します。
スヌーズは、Google Cloud コンソール、gcloud CLI、または Cloud Monitoring API を使用して作成できます。
Console
-
Google Cloud コンソールで、notifications [アラート] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
- 対応待ちのインシデントからスヌーズを作成するには、次のようにします。
- [アラート] ページの [インシデント] ペインで、インシデントを見つけて [インシデントの概要] をクリックします。
- [インシデントの詳細] ページで [スヌーズ] をクリックし、スヌーズの時間を指定します。他のフィールドは構成できません。
まだ完了していない場合は、次の操作を行います。
- [アラート] ページで、[スヌーズを作成] をクリックします。
- スヌーズ用にわかりやすい名前を入力します。この名前は [アラート] ページに表示されます。
- [Start time] を選択します。特定の時間を入力するか、スヌーズが作成されるときにそのスヌーズを開始できます。
- [期間] を入力します。このフィールドの値によって、スヌーズ時間の長さが決まります。
[スヌーズの条件] セクションに入力します。[アラート ポリシー] メニューを使用して、スヌーズに適用するアラート ポリシーを選択できます。
1 つのスヌーズには最大 16 個のアラート ポリシーを追加できます。
[スヌーズの条件] セクションに入力すると、[スヌーズ条件を作成] ペインに、基準に一致する過去のインシデントが一覧表示されます。
[作成] をクリックします。
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-time
は start-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 表現をローカル システムにダウンロードできます。
定期的なスヌーズを作成する
一定の間隔で発生するスヌーズを作成するには、アラート ポリシーのスヌーズを作成するスクリプトを作成します。次に、cron
や Cloud Scheduler などのジョブ スケジューラを使用して、必要なスケジュールに対してスクリプトを実行します。
スヌーズの一覧表示
スヌーズを作成すると、プロジェクトのスヌーズの履歴レコードに追加されます。このレコードには、期限切れ、アクティブ、および今後のスヌーズが表示されます。このレコードからエントリを削除することはできません。つまり、スヌーズを削除することはできません。ただし、このビューにより、スヌーズの詳細を表示したり、スヌーズの編集やコピーなどの操作を行ったりできます。
Console
スヌーズのリストを表示するには、次の手順を行います。
-
Google Cloud コンソールで、notifications [アラート] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
[スヌーズ] ペインで [すべてのスヌーズを表示] をクリックします。
[スヌーズ] ページには、スヌーズの一覧と、過去、現在、予定されているスヌーズをグラフで表示するタイムラインが表示されます。
- スヌーズを編集、コピー、キャンセル、終了するには、more_vert その他のオプション メニューを使用します。使用可能なオプションは、スヌーズの状態によって決まります。
- すべてのスヌーズを一覧表示するには、[過去のスヌーズを表示] を有効にします。デフォルトでは、アクティブなスヌーズと今後のスヌーズのみが表示されます。
- [タイムライン] テーブルの表示期間を変更するには、[期間] メニューを使用します。デフォルトでは、今後 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
スヌーズを編集するには、次の手順を行います。
-
Google Cloud コンソールで、notifications [アラート] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
- [スヌーズ] ペインで [すべてのスヌーズを表示] をクリックします。
- スヌーズのリストで、編集するスヌーズを探し、more_vert その他のオプション メニューで [スヌーズを編集] を選択します。
- 変更が完了したら、[保存] をクリックします。
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
アクティブなスヌーズを終了するか、予定されているスヌーズをキャンセルするには、次の操作を行います。
-
Google Cloud コンソールで、notifications [アラート] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
- [スヌーズ] ペインで [すべてのスヌーズを表示] をクリックします。
スヌーズのリストで、終了またはキャンセルするスヌーズを見つけて、次のいずれかを行います。
- アクティブなスヌーズを終了するには、more_vert [その他のオプション] メニューで [今すぐ終了] を選択します。
- 予定されているスヌーズをキャンセルするには、more_vert [その他のオプション] メニューで [スヌーズをキャンセル] を選択します。
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
スヌーズのコピー
既存のスヌーズを別のスヌーズのテンプレートとして使用する場合は、コピーを作成します。スヌーズをコピーすると、元のスヌーズの値に設定された開始時間を除くすべてのフィールドを含むスヌーズ エディタが開きます。[作成] をクリックする前に、すべてのフィールドを変更できます。
コンソールを使用してスヌーズをコピーする手順は次のとおりです。
-
Google Cloud コンソールで、notifications [アラート] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
- [スヌーズ] ペインで [すべてのスヌーズを表示] をクリックします。
- スヌーズのリストで、編集するスヌーズを探し、more_vert その他のオプション メニューで [スヌーズをコピー] を選択します。
- 変更をコピーに適用し、[作成] をクリックします。
次のステップ
アラートの概略については、アラートの概要をご覧ください。
通知レイテンシと、アラート ポリシーのパラメータの選択が通知送信のタイミングに及ぼす影響については、指標ベースのアラート ポリシーの動作をご覧ください。
インシデントの詳細については、次のドキュメントをご覧ください。