Membuat kueri, mengekspor, dan menyimpan log Service Health

Personalized Service Health mencatat peristiwa kesehatan layanan di Cloud Logging. Fungsi ini mencatat semua pembaruan pada deskripsi, relevansi, atau status acara sebagai log yang berbeda.

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

Sebelum memulai

Verify that billing is enabled for your Google Cloud project.

  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 kolom yang dapat Anda tetapkan dalam kueri.

Melihat log Service Health

Untuk melihat log Service Health:

  1. Buka konsol Google Cloud .
  2. Pilih Operations > Logging > Logs Explorer.
  3. Pilih Google Cloud project di bagian atas halaman.
  4. 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.

  5. Luaskan entri log untuk melihat detail acara. 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",
    }
    

Mengueri log Service Health

Anda dapat menggunakan Logs Explorer untuk membuat kueri 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 Kesehatan Layanan dengan mengonfigurasi filter penyertaan dan pengecualian untuk sink.

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

Menggabungkan log Service Health di tingkat folder

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

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

  1. Buat project baru di bawah 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 dalam 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 berikut ini:

    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 tujuan ekspor.

    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 Log 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 acara sebelumnya

Personalized Service Health memberikan retensi peristiwa yang 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. Menyimpan log di bucket log.