Memantau dan merencanakan peristiwa pemeliharaan host

Setiap instance virtual machine (VM) atau instance bare metal menggunakan kebijakan pemeliharaan host untuk menentukan perilaku instance selama operasi pemeliharaan. Beberapa instance menawarkan opsi tambahan untuk melihat jadwal pemeliharaan lebih awal.

Halaman ini menjelaskan cara memantau dan merencanakan peristiwa pemeliharaan host pada instance Compute Engine.

Sebelum memulai

  • Siapkan autentikasi jika Anda belum melakukannya. Autentikasi memverifikasi identitas Anda untuk mengakses layanan Google Cloud dan API. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan konsol Google Cloud untuk mengakses layanan dan API Google Cloud , Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda. Setelah login, inisialisasi Google Cloud CLI dengan menjalankan perintah berikut:

      gcloud init
  • Tetapkan region dan zona default.
  • REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu login ke gcloud CLI dengan identitas gabungan Anda.

    Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat instance dan mengelola pemeliharaan instance, minta administrator untuk memberi Anda peran IAM berikut pada project:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Peran bawaan ini berisi izin yang diperlukan untuk membuat instance dan mengelola pemeliharaan instance. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk membuat instance dan mengelola pemeliharaan instance:

  • Untuk mendapatkan informasi tentang instance, termasuk metadata: compute.instances.get

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Batasan

Anda dapat melihat notifikasi untuk peristiwa pemeliharaan mendatang pada instance hanya jika instance tersebut menggunakan jenis mesin dari salah satu kelompok mesin berikut:

Ringkasan notifikasi pemeliharaan

Google mengirimkan notifikasi untuk pemeliharaan host mendatang melalui beberapa metode. Saat masa pemeliharaan dimulai, Google Cloud akan otomatis melakukan pemeliharaan pada instance Anda. Dengan memantau periode pemeliharaan instance yang akan datang, Anda dapat secara proaktif menyiapkan workload untuk menangani pemeliharaan mendatang dengan gangguan minimal.

Instance komputasi yang mendukung notifikasi peristiwa pemeliharaan memiliki karakteristik berikut:

  • Lebih sedikit peristiwa pemeliharaan: Secara umum, instance dengan interval pemeliharaan berulang akan mengalami lebih sedikit peristiwa pemeliharaan.
  • Notifikasi pemeliharaan yang lebih lama: Dapatkan notifikasi peristiwa pemeliharaan jauh sebelumnya untuk tujuan perencanaan.
  • Pemantauan dan perencanaan: Gunakan Cloud Logging untuk melacak jadwal pemeliharaan Anda. Gunakan insiden dan pemberitahuan untuk terus mendapatkan informasi.
  • Kontrol pemeliharaan on-demand: Mulai pemeliharaan selama periode notifikasi untuk mengupdate instance sesuai jadwal Anda.

Informasi tentang peristiwa notifikasi mendatang disajikan dengan cara yang mirip dengan berikut ini:

upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2024-12-01T19:00:01Z"
    "machineType":"x4-960-16t-metal"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2024-12-01T22:00:00Z"
    "windowStartTime": "2024-12-01T19:00:00Z"
}

Jika tidak ada peristiwa pemeliharaan mendatang, Anda akan melihat pesan yang serupa seperti berikut:

{ "error": "no notifications have been received yet, try again later" }

Definisi status pemeliharaan

Definisi status berikut menjelaskan respons terhadap kueri tentang pemeliharaan host untuk sebuah instance. Mereka memberikan informasi terkait peristiwa pemeliharaan. Google Cloud CLI, REST, dan server metadata menggunakan respons yang sama:

  • canReschedule: apakah pemeliharaan dapat dimulai secara manual selama periode notifikasi untuk instance ini.
    • TRUE: pemeliharaan yang dipicu pelanggan dapat dilakukan selama periode notifikasi.
    • FALSE: pemeliharaan yang dipicu pelanggan tidak dapat dilakukan pada instance ini. Hal ini sering terjadi selama periode saat instance sedang menjalani pemeliharaan atau jika jenis instance tidak mendukung pemeliharaan on-demand.
  • latestWindowStartTime: waktu terakhir masa pemeliharaan dapat dipindahkan.
  • machineType: jenis mesin instance, misalnya x4-960-16t-metal atau c4-highmem-192.
  • maintenanceReason: alasan peristiwa pemeliharaan darurat. Contohnya mencakup:
    • FAILURE_GPU_TEMPERATURE: pemeliharaan karena suhu GPU yang tinggi.
    • FAILURE_MEMORY: pemeliharaan karena error memori.
    • FAILURE_NETWORK: pemeliharaan karena error jaringan.
    • FAILURE_DISK: pemeliharaan karena error disk.
  • maintenanceStatus: status peristiwa pemeliharaan saat ini.
    • ONGOING: operasi pemeliharaan sedang berlangsung.
    • PENDING: operasi pemeliharaan dijadwalkan, tetapi belum dimulai.
  • type: jenis pemeliharaan yang akan dilakukan.
    • NONE: Tidak ada pemeliharaan yang dijadwalkan untuk instance ini.
    • SCHEDULED: Untuk pemeliharaan yang mengganggu, Compute Engine memberikan pemberitahuan minimal 7 hari untuk sebagian besar instance; untuk periode pemberitahuan awal tertentu, lihat dokumentasi untuk seri mesin Anda.
    • UNSCHEDULED: Karena pemeliharaan ini merupakan update penting atau mendesak, Compute Engine mencoba memberikan pemberitahuan awal sebanyak mungkin, tetapi biasanya jauh lebih sedikit daripada peristiwa pemeliharaan terjadwal.
  • windowEndTime: akhir periode waktu terjadinya pemeliharaan.
  • windowStartTime: awal periode waktu terjadinya pemeliharaan.

Perilaku status pemeliharaan

Saat mengelola peristiwa pemeliharaan, periksa nilai untuk canReschedule dan maintenanceStatus. Jika digabungkan, kolom ini menunjukkan tindakan yang dapat atau tidak dapat Anda lakukan terkait penjadwalan ulang peristiwa pemeliharaan:

  • canReschedule=True dan maintenanceStatus=Pending— Anda dapat memulai peristiwa pemeliharaan secara manual untuk instance sebelum waktu mulai yang dijadwalkan.
  • canReschedule=False dan maintenanceStatus=Ongoing—pemeliharaan sedang berlangsung dan tidak dapat dijadwalkan ulang.
  • canReschedule=False dan maintenanceStatus=Pending—instance Anda tidak mendukung peristiwa pemeliharaan yang dipicu secara manual.

Melihat notifikasi pemeliharaan

Anda dapat menemukan notifikasi pemeliharaan dengan mengkueri instance komputasi, server metadata, atau menggunakan Cloud Logging.

Anda juga dapat melihat peristiwa pemeliharaan darurat menggunakan metode yang sama. Namun, notifikasi untuk peristiwa pemeliharaan darurat menyertakan kolom type dengan nilai UNSCHEDULED, dan Anda hanya dapat melihat kolom ini dengan Cloud Logging.

Memeriksa notifikasi peristiwa pemeliharaan pada instance

Gunakan Google Cloud CLI, REST, atau buat kueri server metadata untuk melihat apakah ada peristiwa pemeliharaan host mendatang untuk instance Anda.

gcloud

Untuk melihat masa pemeliharaan mendatang untuk instance, gunakan perintah gcloud compute instances describe.

gcloud compute instances describe INSTANCE_NAME \
   --zone=ZONE_NAME --format="yaml(resourceStatus.upcomingMaintenance)"

Ganti kode berikut:

  • INSTANCE_NAME: Nama instance komputasi.
  • ZONE_NAME: Zona tempat instance berada.

Jika ada peristiwa pemeliharaan mendatang, responsnya akan berisi bagian yang mirip dengan berikut ini:

  resourceStatus:
    upcomingMaintenance:
      canReschedule: true
      latestWindowStartTime: '2025-01-15T12:00:01Z'
      machineType: x4-960-16t-metal
      maintenanceStatus: PENDING
      type: SCHEDULED
      windowEndTime: '2025-01-15T16:00:00Z'
      windowStartTime: '2025-01-15T12:00:00Z'

Dalam respons ini:

  • Pemeliharaan dijadwalkan untuk tanggal dan waktu yang ditampilkan di windowStartTime.
  • canReschedule ditetapkan ke true dan maintenanceStatus ditetapkan ke PENDING. Setelan ini menunjukkan bahwa Anda dapat memulai peristiwa pemeliharaan terjadwal secara manual sebelum tanggal yang ditampilkan di latestWindowStartTime.

Jika perintah menampilkan null, ini menunjukkan bahwa peristiwa pemeliharaan tidak dijadwalkan dan Anda harus memeriksa lagi di lain waktu atau tanggal.

REST

Untuk melihat apakah ada pemeliharaan mendatang untuk instance, buat permintaan GET menggunakan metode instances.get:

GET https://compute./compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME

Ganti kode berikut:

  • PROJECT_NAME: Nama project yang berisi instance komputasi.
  • ZONE: Zona tempat instance berada.
  • INSTANCE_NAME: nama instance

Jika ada peristiwa pemeliharaan mendatang, responsnya akan berisi bagian yang mirip dengan berikut ini:

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "machineType": "x4-960-16t-metal"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2023-12-01T22:00:00Z"
    "windowStartTime": "2023-12-01T19:00:00Z"
  }

Dalam respons ini:

  • Pemeliharaan dijadwalkan untuk tanggal dan waktu yang ditampilkan di windowStartTime.
  • canReschedule ditetapkan ke True dan maintenanceStatus ditetapkan ke PENDING. Setelan ini menunjukkan bahwa Anda dapat memulai peristiwa pemeliharaan terjadwal secara manual sebelum tanggal yang ditampilkan di latestWindowStartTime.

Jika kueri menampilkan NONE dengan kode HTTP 200, ini menunjukkan bahwa peristiwa pemeliharaan tidak dijadwalkan dan Anda harus memeriksa lagi di lain hari atau waktu.

Server metadata

Dari Guest OS, buat kueri server metadata untuk melihat peristiwa pemeliharaan berikutnya.

$ curl http://metadata.google.internal/computeMetadata/v1/instance/upcoming-maintenance?alt=json -H "Metadata-Flavor: Google"

Jika kueri menampilkan NONE dengan kode HTTP 200, ini menunjukkan bahwa peristiwa pemeliharaan tidak dijadwalkan dan Anda harus memeriksa lagi di lain hari atau waktu.

Memeriksa Cloud Logging untuk notifikasi peristiwa pemeliharaan

Compute Engine membuat peristiwa sistem di Cloud Audit Logs untuk instance untuk peristiwa pemeliharaan. Anda dapat melihat peristiwa ini sebelum, selama, dan setelah peristiwa pemeliharaan menggunakan Cloud Logging dan Logs Explorer.

Konsol

Untuk mengkueri log audit terkait notifikasi pemeliharaan untuk sebuah instance, selesaikan langkah-langkah berikut:

  1. Buka halaman VM instances.

    Buka instance VM

  2. Klik Name instance yang ingin Anda lihat notifikasi pemeliharaannya.

    Halaman Instance details akan terbuka.

  3. Di bagian Logs, klik link berlabel Logging.

    Halaman Logs Explorer query editor akan terbuka. Di panel Query, resource.type dan ID instance sudah diisi untuk instance Anda.

  4. Di panel Query, tambahkan baris berikut ke kueri:

    operation.producer="compute.instances.upcomingMaintenance" OR
    "compute.instances.terminateOnHostMaintenance" OR
    "compute.instances.migrateOnHostMaintenance"
    
  5. Klik Run query. Peristiwa notifikasi pemeliharaan yang cocok akan muncul di panel hasil kueri.

    Di panel hasil kueri, Anda dapat mengklik Edit time untuk memperluas jangka waktu penelusuran, atau untuk mempersempit hasil ke tanggal atau waktu tertentu.

  6. Klik entri log untuk melihat detail notifikasi pemeliharaan.

    1. Untuk notifikasi pemeliharaan mendatang, luaskan judul metadata untuk melihat informasi seperti status saat ini, jenis, dan waktu mulai serta berakhirnya masa pemeliharaan terjadwal.
    2. Luaskan judul status untuk melihat pesan deskriptif notifikasi.

Contoh notifikasi pemeliharaan

Notifikasi peristiwa pemeliharaan untuk instance akan muncul di Logs Explorer dengan nilai yang mirip dengan berikut ini:

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "PENDING"
    • machineType: "x4-960-16t-metal"
    • windowStartTime: "2024-07-23T20:00:00Z"

Saat peristiwa pemeliharaan dimulai, peristiwa informasi baru akan muncul di log dengan nilai yang mirip dengan berikut ini:

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "ONGOING"
    • machineType: "x4-960-16t-metal"
    • windowStartTime: "2024-07-23T20:00:00Z"

Selama peristiwa pemeliharaan, bergantung pada konfigurasi kebijakan pemeliharaan host untuk instance, salah satu peristiwa sistem berikut akan dicatat ke log audit:

  • Untuk instance yang dikonfigurasi agar menggunakan migrasi langsung selama peristiwa pemeliharaan, peristiwa sistem dengan methodName: "compute.instances.migrateOnHostMaintenance".
  • Untuk instance yang dikonfigurasi untuk dihentikan selama peristiwa pemeliharaan, peristiwa sistem dengan methodName: "compute.instances.terminateOnHostMaintenance".

Saat peristiwa pemeliharaan berakhir, peristiwa informasi baru akan muncul di log audit dengan nilai yang mirip dengan berikut ini:

  • methodName: "compute.instances.upcomingMaintenance"
  • status: { message: "Maintenance window has completed for this instance. All maintenance notifications on the instance have been removed." }

Mengonfigurasi pemberitahuan untuk notifikasi pemeliharaan host

Anda dapat menyiapkan kebijakan pemberitahuan berbasis log untuk menelusuri peristiwa notifikasi pemeliharaan tertentu dan mengirim pemberitahuan menggunakan saluran notifikasi.

Konsol

Untuk membuat pemberitahuan untuk peristiwa pemeliharaan untuk instance Anda, selesaikan langkah-langkah berikut:

  1. Buka halaman VM instances.

    Buka instance VM

  2. Klik Name instance yang ingin Anda buatkan pemberitahuan peristiwa pemeliharaan.

    Halaman Instance details akan terbuka.

  3. Di bagian Logs, klik link berlabel Logging.

    Halaman Logs Explorer query editor akan terbuka. Di panel Query, resource.type dan ID instance sudah diisi untuk instance Anda.

  4. Di panel Query, tambahkan baris berikut ke kueri:

    operation.producer="compute.instances.upcomingMaintenance"
    

    Untuk memfilter peristiwa pemeliharaan host untuk jenis mesin, bukan instance tertentu, edit kueri sebagai berikut:

    1. Hapus baris yang menentukan ID instance.
    2. Tambahkan baris berikut ke kueri:

      protoPayload.metadata.machineType:"MACHINE_TYPE"

      Ganti MACHINE_TYPE dengan jenis mesin yang ingin Anda filter untuk peristiwa pemeliharaan host.

  5. Klik Run query. Peristiwa notifikasi pemeliharaan yang cocok akan muncul di panel hasil kueri.

  6. Di panel hasil kueri, klik Edit time.

    1. Di sisi kiri jendela edit, di kolom Relative time, masukkan 7d untuk melihat entri log selama seminggu terakhir.
    2. Klik Terapkan.
  7. Di header panel Query results, klik  Create alert. Jika jendela tampilan Anda sempit, opsi Create alert mungkin akan muncul di menu Actions.

  8. Di panel Create logs-based alert policy, di bagian Alert details, lakukan hal berikut:

    1. Masukkan nama untuk kebijakan pemberitahuan, misalnya Upcoming maintenance for my-c3d-vm@us-central1-b.
    2. Dari menu Tingkat keparahan kebijakan, pilih Tidak ada tingkat keparahan.

    3. Di kolom Documentation, Anda dapat memasukkan deskripsi untuk kebijakan pemberitahuan. Anda juga dapat menyertakan informasi yang dapat membantu penerima notifikasi mendiagnosis masalah. String berikut merangkum alasan pengiriman notifikasi:

      Log-based alerting policy in project ${project} to monitor upcoming
      maintenance notifications. See also "Host maintenance alerts" and
      "onHostMaintenance actions" alerting policies.
      

      Untuk mengetahui informasi tentang cara memformat dan menyesuaikan konten kolom ini, lihat Menggunakan Markdown dan variabel dalam template dokumentasi.

    4. Untuk melanjutkan ke langkah berikutnya, klik Next.

  9. Di bagian Choose logs to include in the alert, periksa kueri dan hasil dengan mengklik Preview logs.

    Kueri yang Anda buat di panel Query juga ditampilkan di panel ini. Sebaiknya buat kueri di panel Query Logs Explorer terlebih dahulu.

    Anda dapat mengedit kueri di panel ini, jika perlu. Jika Anda mengedit kueri, periksa hasilnya dengan mengklik Preview logs.

  10. Klik Berikutnya.

  11. Di panel Set notification frequency and autoclose duration, lakukan hal berikut:

    1. Pilih waktu minimum antar-notifikasi. Nilai ini memungkinkan Anda mengontrol jumlah notifikasi yang Anda dapatkan dari Monitoring jika kondisi ini terpenuhi beberapa kali. Untuk contoh ini, pilih 1 day dari opsi.

    2. Untuk Incident autoclose duration, gunakan nilai maksimum 7 hari.

    3. Klik Berikutnya.

  12. Jika sudah mengonfigurasi saluran notifikasi email, Anda dapat memilihnya dari daftar. Jika tidak, klik Manage notification channels dan tambahkan saluran email. Untuk mengetahui informasi tentang cara membuat saluran notifikasi, lihat Membuat dan mengelola saluran notifikasi.

  13. Klik Simpan.

    Kebijakan pemberitahuan berbasis log Anda kini siap diuji seperti yang dijelaskan dalam Menguji contoh kebijakan pemberitahuan berbasis log

Untuk mempelajari lebih lanjut, baca Mengonfigurasi pemberitahuan berbasis log dan Membuat dan mengelola saluran notifikasi.

Langkah berikutnya