Membuat kueri, mengekspor, dan menyimpan log Service Health

Personalized Service Health mencatat peristiwa kesehatan layanan di Cloud Logging. Layanan ini mencatat semua pembaruan pada deskripsi, relevansi, atau status peristiwa sebagai log terpisah.

Dokumen ini menjelaskan cara melihat, mengekspor, dan menyimpan log Service Health.

Sebelum memulai

Pastikan penagihan diaktifkan untuk Google Cloud project Anda.

  1. Aktifkan Service Health API untuk project yang lognya ingin Anda lihat, ekspor, atau simpan.
  2. Dapatkan akses ke log Service Health.

Skema log

Lihat Referensi skema log untuk mengetahui kolom yang dapat Anda tetapkan dalam kueri.

Melihat log Service Health

Untuk melihat log Service Health:

  1. Di Google Cloud konsol, buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Pilih Google Cloud project di bagian atas halaman.

  3. Di menu drop-down Log name, pilih Service Health.

    Logs Explorer

    Nama log

    Daftar log untuk type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog akan muncul.

  4. Luaskan entri log untuk melihat detail peristiwa. Contoh berikut menunjukkan peristiwa umum.

    "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",
    }
    

Mengkueri log Service Health

Anda dapat menggunakan Logs Explorer untuk mengkueri log Service Health. Anda mungkin memerlukan referensi berikut untuk membuat kueri:

Contoh:

Kondisi Kueri
Mendapatkan log dengan relevansi insiden tertentu jsonPayload.relevance = ("IMPACTED" OR "RELATED")
Menggabungkan beberapa filter jsonPayload.impactedLocations : "us-central1" AND jsonPayload.impactedProducts : "Google Compute Engine" AND jsonPayload.state = "ACTIVE"

Mengekspor log Service Health

Anda dapat mengekspor log Service Health ke tujuan sink Cloud Logging mana pun menggunakan konsol, API, atau gcloud CLI. Google Cloud Untuk menyiapkan sink Cloud Logging, lihat Mengonfigurasi dan mengelola sink.

Anda dapat menyertakan dan mengecualikan log Service Health dengan mengonfigurasi filter penyertaan dan pengecualian untuk sink.

Saat menetapkan produk atau lokasi, gunakan nilai yang ditemukan di Google Cloud produk dan lokasi.

Mengagregasi log Service Health di tingkat folder

Mengirim log terkait Service Health dari semua project di folder ke project yang dibuat untuk log Service Health memungkinkan Anda melakukan kueri yang lebih kompleks.

Anda akan membuat sink di tingkat folder untuk mengirim semua log terkait Service Health ke project baru di folder tersebut. Lakukan tindakan berikut:

  1. Buat project baru di folder. Project ini dialokasikan ke log Service Health.

    gcloud projects create PROJECT_ID --folder FOLDER_ID
    
  2. Buat sink gabungan di tingkat folder untuk project lain di folder.

    gcloud logging sinks create SINK_NAME \
    SINK_DESTINATION  --include-children \
    --folder=FOLDER_ID --log-filter="LOG_FILTER"
    

    Untuk mendapatkan log semua insiden yang relevan, tetapkan nilai LOG_FILTER ke nilai berikut:

    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
    
  3. Tetapkan izin untuk Akun Layanan sink.

    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
    
  4. (Opsional) Jika Anda tidak ingin mengirim log ke sink _Default, buat bucket log untuk log terkait Service Health di project.

    gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --async
    

    Jika Anda membuat bucket log, buat sink untuk mengirim log tersebut ke bucket.

    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"
    

Mengkueri log Service Health dengan BigQuery

Anda dapat mengkueri log yang dikirim ke Cloud Logging menggunakan BigQuery dengan:

  1. Membuat kueri SQL.
  2. Menggunakan BigQuery API untuk memasukkan hasil kueri ke sistem eksternal.

Lakukan tindakan berikut:

  1. Buat bucket log di project yang Anda buat untuk log Service Health.

    gcloud logging buckets create BUCKET_ID  --location=LOCATION  --enable-analytics --async
    
  2. Aktifkan Observability Analytics.

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. Buat set data BigQuery baru yang ditautkan ke bucket dengan log Service Health.

    gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
    
  4. Jika perlu, aktifkan BigQuery API.

    gcloud services enable bigquery.googleapis.com
    

Sekarang Anda dapat menjalankan kueri SQL yang kompleks terhadap BigQuery, seperti:

Kondisi Kueri
Mendapatkan log dengan relevansi insiden tertentu gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
Mendapatkan semua peristiwa log turunan untuk peristiwa induk 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"'

Mempertahankan peristiwa sebelumnya

Personalized Service Health menyediakan retensi peristiwa terbatas.

Jika Anda perlu menyimpan catatan peristiwa kesehatan layanan sebelumnya selama lebih dari beberapa bulan, sebaiknya simpan log Service Health.

  1. Konfigurasi log Service Health.
  2. Simpan log di bucket log.