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 sebelumnya.

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

Sebelum memulai

  • Jika Anda belum melakukannya, siapkan autentikasi. Autentikasi adalah proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

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

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

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

Peran yang diperlukan

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

Untuk mengetahui informasi selengkapnya tentang cara memberikan 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, luaskan 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 menggunakan jenis mesin dari salah satu keluarga mesin berikut:

  • Kelompok mesin yang dioptimalkan akselerator:

  • Kelompok mesin tujuan umum:

  • Kelompok mesin yang dioptimalkan untuk memori:

  • Kelompok mesin yang dioptimalkan untuk penyimpanan:

Ringkasan notifikasi pemeliharaan

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

Instance Compute yang mendukung notifikasi peristiwa pemeliharaan memiliki karakteristik berikut:

  • Lebih sedikit peristiwa pemeliharaan: Secara umum, instance dengan interval pemeliharaan berulang akan melihat lebih sedikit peristiwa pemeliharaan.
  • Notifikasi pemeliharaan yang lebih lama: Dapatkan notifikasi tentang peristiwa pemeliharaan jauh-jauh hari 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 saat sesuai dengan jadwal Anda.

Informasi tentang peristiwa notifikasi mendatang ditampilkan dengan cara yang mirip dengan berikut:

upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2024-12-01T19:00:01Z"
    "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 instance. Peristiwa ini memberikan informasi terkait peristiwa pemeliharaan. Google Cloud CLI, REST, dan server metadata menggunakan respons yang sama ini:

  • 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 menjalani pemeliharaan atau jika jenis instance tidak mendukung pemeliharaan on-demand.
  • latestWindowStartTime: waktu terbaru yang dapat digunakan untuk memindahkan masa pemeliharaan.
  • 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 minimum 7 hari untuk sebagian besar instance; instance X4 mendapatkan pemberitahuan awal sekitar 60 hari.
    • UNSCHEDULED: Karena pemeliharaan mewakili update penting, Compute Engine mencoba memberikan pemberitahuan awal sebanyak mungkin, tetapi biasanya jauh lebih sedikit daripada untuk peristiwa pemeliharaan terjadwal.
  • windowEndTime: akhir periode waktu saat pemeliharaan terjadi.
  • windowStartTime: awal periode waktu saat pemeliharaan terjadi.

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 membuat kueri instance komputasi, server metadata, atau menggunakan Cloud Logging.

Memeriksa instance untuk notifikasi peristiwa pemeliharaan

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

gcloud

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

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

Ganti kode berikut:

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

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

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2024-12-01T19:00:01Z"
    "maintenanceStatus":"PENDING"
    "type":"SCHEDULED"
    "windowEndTime": "2024-12-01T22:00:00Z"
    "windowStartTime": "2024-12-01T19:00:00Z"
  }

Dalam respons ini:

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

REST

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

GET https://compute.googleapis.com/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, respons akan berisi bagian yang mirip dengan berikut ini:

  upcomingMaintenance:{
    "canReschedule":True
    "latestWindowStartTime": "2023-12-01T19:00:01Z"
    "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 disetel ke True dan maintenanceStatus disetel ke PENDING. Setelan ini menunjukkan bahwa Anda dapat memulai acara pemeliharaan terjadwal secara manual sebelum tanggal yang ditampilkan di latestWindowStartTime.

Server metadata

Dari OS Tamu, 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"

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 membuat kueri log audit guna mendapatkan notifikasi pemeliharaan untuk instance, selesaikan langkah-langkah berikut:

  1. Buka halaman VM instances.

    Buka instance VM

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

    Halaman Detail instance akan terbuka.

  3. Di bagian Logs, klik link berlabel Logging.

    Halaman Logs Explorer query editor akan terbuka. Di panel Kueri, 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, jenis, dan waktu mulai serta waktu berakhir jendela pemeliharaan terjadwal saat ini.
    2. Luaskan judul status untuk melihat pesan deskriptif untuk notifikasi.

Contoh notifikasi pemeliharaan

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

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "PENDING"
    • windowStartTime: "2024-07-23T20:00:00Z"

Saat peristiwa pemeliharaan dimulai, peristiwa informatif baru akan muncul dalam log dengan nilai yang mirip dengan berikut:

  • methodName: "compute.instances.upcomingMaintenance"
  • metadata:
    • maintenanceStatus: "ONGOING"
    • 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 untuk 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 informatif 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 peristiwa pemeliharaan untuk instance Anda, selesaikan langkah-langkah berikut:

  1. Buka halaman VM instances.

    Buka instance VM

  2. Klik Nama instance yang ingin Anda buat pemberitahuan peristiwa pemeliharaannya.

    Halaman Detail instance akan terbuka.

  3. Di bagian Logs, klik link berlabel Logging.

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

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

    operation.producer="compute.instances.upcomingMaintenance"
    
  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 Waktu relatif, masukkan 1d 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 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 keparahan.

    3. Di kolom Dokumentasi, Anda dapat memasukkan deskripsi untuk kebijakan pemberitahuan. Anda juga dapat menyertakan informasi yang mungkin membantu penerima notifikasi mendiagnosis masalah. String berikut merangkum alasan 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 Berikutnya.

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

    Kueri yang Anda buat di panel Kueri 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 Pratinjau log.

  10. Klik Berikutnya.

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

    1. Pilih waktu minimum antarnotifikasi. Nilai ini memungkinkan Anda mengontrol jumlah notifikasi yang Anda dapatkan dari Pemantauan jika kondisi ini terpenuhi beberapa kali. Untuk contoh ini, pilih 1 hari 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 belum, klik Kelola saluran notifikasi dan tambahkan saluran email. Untuk 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 artikel Mengonfigurasi pemberitahuan berbasis log dan Membuat dan mengelola saluran notifikasi.

Langkah selanjutnya