Personalized Service Health 会在 Cloud Logging 中记录服务健康状况事件。它会将事件的说明、相关性或状态的所有更新记录为不同的日志。
本文档介绍了如何查看、导出和存储 Service Health 日志。
准备工作
验证是否已为您的 Google Cloud 项目启用结算功能。
- 为要查看、导出或存储日志的项目 启用 Service Health API。
- 获取对 Service Health 日志的访问权限。
日志架构
如需了解可在查询中设置的字段,请参阅 日志架构参考文档 。
查看 Service Health 日志
如需查看 Service Health 日志,请执行以下操作:
在 Google Cloud 控制台中,前往 Logs Explorer 页面。
在页面顶部选择一个 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 日志
您可以使用 Logs Explorer 查询 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 将 Service Health 日志导出到任何 Cloud Logging 接收器 目标位置。 Google Cloud 如需设置 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 --async-
gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async 创建一个新的 BigQuery 数据集,该数据集与包含 Service Health 日志的存储桶相关联。
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 日志。