このドキュメントでは、スヌーズを作成、管理する方法について説明します。スヌーズを使用すると、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
既存のスヌーズを変更するには、PATCH
リクエストを Snooze
エンドポイントに発行して、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 その他のオプション メニューで [スヌーズをコピー] を選択します。
- コピーに変更を適用し、[作成] をクリックします。
次のステップ
アラートの概略については、アラートの概要をご覧ください。
通知レイテンシと、アラート ポリシーのパラメータの選択が通知送信のタイミングに及ぼす影響については、指標ベースのアラート ポリシーの動作をご覧ください。
インシデントの詳細については、次のドキュメントをご覧ください。