Personalized Service Health は、Cloud Logging にサービス ヘルスイベントを記録します。イベントの説明、関連性、状態に対するすべての更新が個別のログとして記録されます。
このドキュメントでは、Service Health ログを表示、エクスポート、保存する方法について説明します。
始める前に
プロジェクトで課金が有効になっていることを確認します Google Cloud 。
- Service Health API を有効にします ログを表示、エクスポート、保存するプロジェクトで。
- Service Health ログにアクセスします。
ログスキーマ
クエリで設定できるフィールドについては、 ログスキーマのリファレンス をご覧ください。
Service Health ログを表示する
Service Health ログを表示するには:
コンソール Google Cloud で、[ログ エクスプローラ] ページに移動します。
ページの上部にある Google Cloud プロジェクトを選択します。
[ログ名] プルダウン メニューで [Service Health] を選択します。


type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLogのログのリストが表示されます。ログエントリを展開して、イベントの詳細を表示します。次の例は、一般的なイベントを示しています。
"insertId":"1pw1msgf6a3zc6", "timestamp":"2022-06-14T17:17:55.722035096Z", "receiveTimestamp":"2022-06-14T17:17:55.722035096Z", "logName":"projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity", "resource":{ "type":"servicehealth.googleapis.com/Event", "labels":{ "resource_container":"797731824162", "location":"global", "event_id":"U4AqrjwFQYi5fFBmyAX-Gg" } } "labels":{ "new_event":"true" "updated_fields": "[]" }, "jsonPayload":{ "@type":"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog", "category":"INCIDENT", "title":"We are experiencing a connectivity issue affecting Cloud SQL in us-east1, australia-southeast2.", "description":"We are experiencing an issue with Google Cloud infrastructure components at us-east1, australia-southeast2. Our engineering team continues to investigate the issue. We apologize to all who are affected by the disruption.", "updateTime":"2023-11-14T22:26:40Z", "endTime":"2023-11-14T22:13:20Z", "impactedLocations":"['us-east1','australia-southeast2']", "impactedProducts":"['Google Cloud SQL']", "impactedProductIds":"['hV87iK5DcEXKgWU2kDri']", "nextUpdateTime":"2023-11-14T22:40:00Z", "startTime":"2020-09-13T12:26:40Z", "state":"ACTIVE", "detailedState":"CONFIRMED", "relevance":"RELATED", }
Service Health ログをクエリする
ログ エクスプローラを使用して、Service Health ログをクエリできます。クエリを作成するには、次のリファレンスが必要になる場合があります。
例:
| 条件 | クエリ |
| 特定のインシデントの関連性を持つログを取得する | jsonPayload.relevance = ("IMPACTED" OR "RELATED")
|
| 複数のフィルタを組み合わせる | jsonPayload.impactedLocations : "us-central1" AND jsonPayload.impactedProducts : "Google Compute Engine" AND jsonPayload.state = "ACTIVE"
|
Service Health ログをエクスポートする
コンソール、API、gcloud CLI Google Cloud を使用して、Service Health ログを任意の Cloud Logging シンク の宛先にエクスポートできます。 Cloud Logging シンクを設定するには、 シンクを構成して管理するをご覧ください。
シンクの 一致フィルタと除外フィルタ を構成することで、Service Health ログを含めるか除外するかを指定できます。
プロダクトまたはロケーションを設定する場合は、 Google Cloud プロダクトと ロケーションにある値を使用します。
フォルダレベルで Service Health ログを集約する
フォルダ内のすべてのプロジェクトから Service Health 関連のログを Service Health ログ用に作成されたプロジェクトに送信すると、より複雑なクエリを実行できます。
フォルダレベルでシンクを作成して、Service Health 関連のすべてのログをその フォルダ内の新しいプロジェクトに送信します。手順は次のとおりです。
フォルダの下に新しいプロジェクトを作成します。このプロジェクトは Service Health ログに割り当てられます。
gcloud projects create PROJECT_ID --folder FOLDER_IDフォルダ内の他のプロジェクトに対して、フォルダレベルで集約シンクを作成します。
gcloud logging sinks create SINK_NAME \ SINK_DESTINATION --include-children \ --folder=FOLDER_ID --log-filter="LOG_FILTER"関連するすべてのインシデントのログを取得するには、LOG_FILTER の値を次のように設定します。
resource.type=servicehealth.googleapis.com/Event AND jsonPayload.category=INCIDENT AND jsonPayload.relevance!=NOT_IMPACTED AND jsonPayload.@type=type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog-
gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.bucketWriter gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.logWriter (省略可)ログを
_Defaultシンクに送信しない場合は、 プロジェクトに Service Health 関連のログのログバケットを作成します。gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --asyncログバケットを作成した場合は、それらのログをバケットに送信するシンクを作成します。
gcloud logging sinks create SINK_NAME_BUCKET \ logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID \ --project=PROJECT_ID --log-filter="LOG_FILTER"
BigQuery で Service Health ログをクエリする
BigQuery を使用して Cloud Logging に送信されたログをクエリするには、次の操作を行います。
- SQL クエリを作成する。
- BigQuery API を使用して、クエリの結果を外部システムにフィードする。
手順は次のとおりです。
Service Health ログ用に 作成したプロジェクトにログバケットを作成します。
gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --asyncObservability Analytics を有効にします。
gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --asyncService Health ログを含むバケットにリンクする新しい BigQuery データセットを作成します。
gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION必要に応じて、BigQuery API を有効にします。
gcloud services enable bigquery.googleapis.com
これで、BigQuery に対して次のような複雑な SQL クエリを実行できます。
| 条件 | クエリ |
| 特定のインシデントの関連性を持つログを取得する | gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
|
| 親イベントのすべての子ログイベントを取得する | gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["parentEvent"]) = "projects/PROJECT_ID/locations/global/events/EVENT_ID"'
|
過去のイベントを保持する
Personalized Service Health では、イベントの保持期間が限られています。
過去のサービス ヘルスイベントのレコードを数か月以上保持する必要がある場合は、Service Health ログを保存することをおすすめします。