Dokumen ini menjelaskan cara melihat dan membaca entri log perubahan status respons VM dalam grup instance terkelola (MIG), dan memberikan kasus penggunaan khusus untuk membantu Anda memantau VM di grup.
Jika Anda telah mengonfigurasi health check berbasis aplikasi untuk MIG, Compute Engine akan menulis entri log setiap kali status respons instance terkelola berubah. Misalnya, saat status instance berubah dari HEALTHY
menjadi UNHEALTHY
. Entri log ini membantu Anda
memantau dan men-debug status respons setiap instance terkelola serta
keseluruhan kondisi MIG.
Sebelum memulai
- Tinjau Menyiapkan health check dan autohealing.
-
Siapkan autentikasi, jika Anda belum melakukannya.
Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
-
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
- Menetapkan 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 initialize dengan menjalankan perintah berikut:
gcloud init
-
Harga
Compute Engine menggunakan Cloud Logging guna menghasilkan entri log untuk perubahan status respons instance terkelola. Cloud Logging memberi Anda alokasi gratis per bulan. Setelah jumlahnya terlampaui, entri log akan ditagih berdasarkan volume data. Untuk mengetahui informasi lebih lanjut, lihat ringkasan harga Cloud Logging.
Untuk menghindari biaya logging, Anda dapat menonaktifkan log perubahan status respons.
Melihat log perubahan status respons
Asalkan log perubahan status respons tetap diaktifkan, Compute Engine akan menulis entri log ke log platform setiap kali status respons instance terkelola berubah. Anda dapat melihat log ini untuk suatu project, untuk MIG tertentu, atau untuk instance terkelola tertentu.
Melihat log untuk project atau MIG
Untuk melihat entri log project atau MIG tertentu, gunakan Google Cloud Console, gcloud CLI, atau REST.
Konsol
Buka Logs Explorer di Konsol Google Cloud.
Tetapkan parameter kueri berikut:
- Resource - Pengelola Grup Instance GCE
- Nama log -
instance_group_manager_events
Atau, Anda dapat menyalin kueri berikut di builder Kueri.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:*
Anda dapat mempersempit penelusuran ke grup instance terkelola tertentu menggunakan kueri berikut.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME"
Klik Jalankan kueri. Hasil kueri akan menampilkan log.
gcloud
Gunakan perintah gcloud logging read
untuk melihat dan membaca entri log.
Untuk melihat semua log perubahan status respons di project Anda, gunakan perintah berikut:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:*'\ --limit 10
Untuk melihat semua log perubahan status respons untuk grup instance terkelola tertentu, gunakan perintah berikut:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME"' \ --limit 10
Ganti kode berikut:
PROJECT_ID
: project id Anda.MIG_NAME
: MIG yang ingin Anda lihat log perubahan status respons-nya.
REST
Untuk melihat log perubahan status respons, buat permintaan POST
ke metode entries.list
.
Untuk melihat semua log perubahan status respons di project Anda, gunakan perintah berikut:
curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:*", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID"] }' https://logging.googleapis.com/v2/entries:list?alt=json
Untuk melihat log perubahan status respons untuk grup instance terkelola tertentu, gunakan perintah berikut:
curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name=MIG_NAME", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID"] }' https://logging.googleapis.com/v2/entries:list?alt=json
Ganti kode berikut:
OAUTH2_TOKEN
: token akses aplikasi Anda. Untuk pengujian lokal, Anda dapat menggunakan perintahgcloud auth print-access-token
untuk membuat token.PROJECT_ID
: project id Anda.MIG_NAME
: MIG yang ingin Anda lihat log perubahan status respons-nya.
Untuk mengetahui informasi selengkapnya tentang setiap entri log, lihat Format entri log.
Bergantung pada apakah Anda ingin mengarsipkan log, menggunakan log untuk analisis, mengirimkan log ke aplikasi lain, atau memicu Cloud Function, Anda dapat mengekspor log ke tujuan seperti Cloud Storage, BigQuery, atau Pub/Sub. Untuk mengetahui informasi selengkapnya tentang cara mengekspor log, lihat Ringkasan ekspor log.
Melihat log perubahan status respons untuk VM tertentu
Untuk melihat entri log instance terkelola tertentu, gunakan Google Cloud Console, gcloud CLI, atau REST.
Konsol
Buka Logs Explorer di Konsol Google Cloud.
Salin kueri berikut di builder Kueri.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"
Klik Jalankan kueri.
gcloud
Gunakan perintah gcloud logging read
untuk melihat dan membaca entri log.
Untuk melihat log perubahan status respons instance terkelola, gunakan perintah berikut:
gcloud logging read 'resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"' \ --limit 10
Ganti kode berikut:
PROJECT_ID
: project id Anda.INSTANCE_NAME
: instance terkelola yang ingin Anda lihat log perubahan status respons-nya.
REST
Untuk melihat log perubahan status respons instance terkelola, buat permintaan POST
ke metode entries.list
.
curl -H "Content-Type: application/json" -H "Authorization: Bearer OAUTH2_TOKEN" -X POST -d \ '{"filter": "resource.type=gce_instance_group_manager AND logName=projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events AND jsonPayload.instanceHealthStateChange:* AND labels.\"compute.googleapis.com/instance_name\"=\"INSTANCE_NAME\"", "orderBy": "timestamp desc", "pageSize": 10, "resourceNames": ["projects/PROJECT_ID"] }' https://logging.googleapis.com/v2/entries:list?alt=json
Ganti kode berikut:
OAUTH2_TOKEN
: token akses aplikasi Anda. Untuk pengujian lokal, Anda dapat menggunakan perintahgcloud auth print-access-token
untuk membuat token.PROJECT_ID
: project id Anda.INSTANCE_NAME
: instance terkelola yang ingin Anda lihat log perubahan status respons-nya.
Format entri log
Entri log perubahan status respons instance berisi informasi yang berguna untuk memantau dan men-debug status instance terkelola Anda.
Log ditulis ke log platform
dengan nama log instance_group_manager_events
. Log platform membantu Anda melakukan debug dan memecahkan masalah.
logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events"
Entri log perubahan status respons berisi jenis informasi berikut:
- Informasi umum yang ditampilkan di sebagian besar log, seperti tingkat keparahan, project ID, nama dan ID MIG, nomor project, stempel waktu, dan sebagainya.
- Kolom khusus untuk status respons instance.
Dalam setiap entri log perubahan status respons, kolom
jsonPayload.instanceHealthStateChange
berisi informasi
berikut:
Kolom | Deskripsi |
---|---|
instance |
URL untuk instance, berdasarkan project ID string dan nama instance. |
instanceWithId |
URL untuk instance, berdasarkan project ID numerik dan ID instance-nya. |
ipAddress |
Alamat IP instance, seperti yang diperiksa oleh health check. |
network |
URL resource jaringan untuk instance ini, berdasarkan project ID string dan nama jaringan. |
networkWithId |
URL resource jaringan untuk instance ini, berdasarkan project ID numerik dan ID jaringannya. |
healthCheck |
URL untuk health check yang dikonfigurasi bagi grup instance terkelola. |
previousDetailedHealthState |
Status respons instance sebelumnya. Untuk mengetahui daftar status yang memungkinkan, lihat status respons. |
detailedHealthState |
Status respons instance saat ini. Untuk mengetahui daftar status yang memungkinkan, lihat status respons. |
notificationTime |
Stempel waktu saat perubahan status respons terjadi. |
Kolom log berjenis boolean biasanya hanya muncul jika memiliki nilai true
.
Jika kolom boolean memiliki nilai false
, kolom tersebut akan dihilangkan dari log.
Encoding UTF-8 diterapkan untuk kolom log. Karakter yang bukan karakter UTF-8 akan diganti dengan tanda tanya.
Contoh entri log
Contoh berikut menunjukkan perubahan status respons instance VM dari HEALTHY
menjadi UNHEALTHY
:
{ "logName": "projects/my-project/logs/compute.googleapis.com%2Finstance_group_manager_events", "resource": { "type": "gce_instance_group_manager", "labels": { "instance_group_manager_id": "3138236342290985981", "instance_group_manager_name": "my-mig", "project_id": "my-project", "location": "europe-west3" } }, "labels": { "compute.googleapis.com/instance_id": "6498902454451155884", "compute.googleapis.com/instance_location": "europe-west3-a", "compute.googleapis.com/instance_name": "my-mig-a" }, "timestamp": "2019-11-19T15:47:57.127Z", "severity": "INFO", "jsonPayload": { "@type": "type.googleapis.com/compute.InstanceGroupManagerEvent", "instanceHealthStateChange": { "instance": "projects/my-project/zones/europe-west3-a/instances/my-mig-a", "instanceWithId": "projects/123456/zones/europe-west3-a/instances/6498902454451155884", "ipAddress": "10.0.0.4", "network": "projects/my-project/global/networks/net-1", "networkWithId": "projects/123456/global/networks/456", "healthCheck": "projects/my-project/global/healthChecks/my-mig-health-check", "previousDetailedHealthState": "HEALTHY", "detailedHealthState": "UNHEALTHY", "notificationTime": "2019-11-19T15:47:56.444Z" } }, "receiveTimestamp": "2019-11-19T15:47:57.296439184Z" }
Kasus penggunaan
Anda dapat menggunakan log perubahan status respons dalam skenario pemantauan atau proses debug berikut:
- Mencari tahu seberapa sering instance VM tertentu mengubah status respons dari waktu ke waktu.
- Evaluasi seberapa sering MIG mengalami perubahan status response pada instance-nya.
- Identifikasi instance VM bermasalah yang sering mengalami
UNHEALTHY
. - Cari tahu penyebab upaya autohealing.
- Cari tahu apakah upaya autohealing berhasil untuk instance VM tertentu.
- Sempurnakan konfigurasi health check untuk aplikasi dengan menentukan penundaan awal yang sesuai untuk autohealing.
Memantau perubahan status respons VM
Anda dapat memantau seberapa sering status respons instance VM berubah dengan membuat metrik yang melacak perubahan status respons VM tertentu tersebut.
Untuk membuat metrik dan memantau perubahan, lakukan tindakan berikut:
Buka Logs Explorer di Konsol Google Cloud.
Masukkan kueri berikut di builder Kueri menggunakan project ID dan nama instance Anda.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME"
Di bagian hasil kueri, klik Tindakan, lalu klik Buat metrik.
Di halaman Buat metrik log, lakukan tindakan berikut:
- Tetapkan Jenis Metrik sebagai Penghitung.
Masukkan Nama metrik log, misalnya
health-mig-xyzq
.Bagian Filter build menampilkan kueri log dari Logs Explorer. Anda juga dapat mengonfigurasi filter metrik agar hanya memperhitungkan status yang mengganggu, seperti
UNHEALTHY
danTIMEOUT
, dengan menambahkanseverity>=WARNING
ke filter.Pada Label, klik Tambahkan label.
Masukkan Nama label, misalnya
health_state
.Tetapkan Jenis label sebagai
STRING
.Tetapkan Nama kolom menjadi
jsonPayload.instanceHealthStateChange.detailedHealthState
. Ini akan memungkinkan Anda membedakan perubahan status respons yang berbeda.Klik Selesai untuk menambahkan label.
Klik Buat Metrik.
Buka halaman Metrik berbasis Log dan cari metrik yang baru dibuat.
Klik menu more_vert pada baris metrik dan pilih Lihat di Metrics Explorer. Metrics Explorer terbuka dan menampilkan grafik yang menampilkan perubahan status respons instance VM yang Anda tentukan dalam kueri.
Memantau perubahan status respons semua VM di MIG
Anda dapat memantau perubahan status respons semua instance terkelola dengan membuat metrik yang melacak perubahan status respons instance terkelola.
Untuk membuat metrik dan memantau perubahan, lakukan tindakan berikut:
Buka Logs Explorer di Konsol Google Cloud.
Masukkan kueri berikut di builder Kueri menggunakan project ID dan nama grup instance terkelola Anda.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME"
Di bagian hasil kueri, klik Tindakan, lalu klik Buat metrik.
Di halaman Buat metrik log, lakukan tindakan berikut:
- Tetapkan Jenis Metrik sebagai Penghitung.
- Masukkan Nama metrik log, misalnya
health-mig-xyzq
. - Pada Label, klik Tambahkan label.
- Masukkan Nama label, misalnya
health_state
. - Tetapkan Jenis label sebagai
STRING
. - Tetapkan Nama kolom menjadi
jsonPayload.instanceHealthStateChange.detailedHealthState
. Ini akan memungkinkan Anda membedakan perubahan status respons yang berbeda. - Klik Selesai untuk menambahkan label.
- Klik Buat Metrik.
Buka halaman Metrik berbasis Log dan cari metrik yang baru dibuat.
Klik menu more_vert pada baris metrik dan pilih Lihat di Metrics Explorer. Metrics Explorer terbuka dan menampilkan grafik yang menampilkan perubahan status respons semua instance VM dalam grup instance terkelola yang Anda tentukan dalam kueri.
Mengidentifikasi VM yang sering tidak responsif
Anda dapat mengidentifikasi VM bermasalah yang sering mengalami UNHEALTHY
dengan membuat metrik yang melacak perubahan status respons semua instance VM di MIG Anda dan mengelompokkan metrik berdasarkan instance.
Untuk membuat metrik dan mengelompokkan berdasarkan instance, lakukan tindakan berikut:
Buka Logs Explorer di Konsol Google Cloud.
Masukkan kueri berikut di builder Kueri menggunakan project ID dan nama grup instance terkelola Anda.
resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND resource.labels.instance_group_manager_name="MIG_NAME"
Di bagian hasil kueri, klik Tindakan, lalu klik Buat metrik.
Di halaman Buat metrik log, lakukan tindakan berikut:
- Tetapkan Jenis Metrik sebagai Penghitung.
- Masukkan Nama metrik log, misalnya
health-mig-xyzq
. - Pada Label, klik Tambahkan label.
- Masukkan Nama label, misalnya
health_state
. - Tetapkan Jenis label sebagai
STRING
. - Tetapkan Nama kolom menjadi
jsonPayload.instanceHealthStateChange.detailedHealthState
. Ini akan memungkinkan Anda membedakan perubahan status respons yang berbeda. - Klik Selesai untuk menambahkan label.
- Demikian pula, tambahkan label kedua, misalnya
instance
, dengan Nama kolom ditetapkan kejsonPayload.instanceHealthStateChange.instance
. - Klik Buat Metrik.
Buka halaman Metrik berbasis Log dan cari metrik yang baru dibuat.
Klik menu more_vert pada baris metrik dan pilih Lihat di Metrics Explorer. Metrics Explorer terbuka dan menampilkan grafik yang menampilkan perubahan status respons semua instance VM dalam grup instance terkelola yang Anda tentukan dalam kueri.
Tetapkan Kelompokkan Menurut ke
instance
untuk melihat jumlah gabungan perubahan status respons untuk setiap instance.
Instance dengan perubahan status respons terbanyak secara agregat adalah instance yang paling sering tidak responsif.
Memeriksa penyebab upaya autohealing
Anda dapat mengetahui penyebab upaya autohealing dengan memfilter log untuk operasi repair
bagi instance VM tertentu.
Untuk memfilter operasi perbaikan, lakukan hal berikut:
Buka Logs Explorer di Konsol Google Cloud.
Masukkan kueri berikut di builder Kueri menggunakan project ID Anda dan nama instance.
resource.type="gce_instance" AND logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" AND protoPayload.methodName="compute.instances.repair.recreateInstance" AND protoPayload.resourceName=~"/INSTANCE_NAME$"
Klik Jalankan kueri. Hasil kueri akan menampilkan semua upaya autohealing di VM dengan alasan autohealing di
protoPayload.status.message
.
Memeriksa apakah autohealing berhasil untuk VM atau tidak
Anda dapat mengetahui apakah upaya autohealing berhasil untuk sebuah instance VM dengan memfilter log untuk operasi repair
dan perubahan respons berdasarkan nama instance VM.
Jika status respons instance berubah menjadi HEALTHY
setelah operasi perbaikan,
Anda akan melihat log perubahan status respons yang sesuai. Ikuti langkah-langkahnya:
Buka Logs Explorer di Konsol Google Cloud.
Masukkan kueri berikut di builder Kueri menggunakan project ID Anda dan nama instance.
(resource.type="gce_instance" AND logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event" AND protoPayload.methodName="compute.instances.repair.recreateInstance" AND protoPayload.resourceName=~"/INSTANCE_NAME$") OR (resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME")
Bagian pertama kueri menampilkan operasi perbaikan instance, yang menunjukkan bahwa pembuatan ulang dipicu oleh autohealing MIG untuk membuat instance kembali responsif. Bagian kedua kueri menampilkan semua perubahan status respons instance VM.
Di Hasil kueri, peristiwa perubahan status respons dengan
detailedHealthState
yang ditetapkan keHEALTHY
segera setelah operasi perbaikan menunjukkan bahwa upaya autohealing berhasil.
Menentukan nilai penundaan awal MIG
Menentukan nilai penundaan awal yang sesuai untuk autohealing MIG lebih mudah dengan logging status respons instance VM. Anda dapat menggunakan log untuk mengamati waktu antara saat operasi instances.insert
selesai dan saat sinyal responsif pertama diterima untuk sekumpulan instance dalam sebuah grup. Interval waktu ini menampilkan waktu yang diperlukan instance untuk melakukan booting sepenuhnya.
Karena beberapa VM mungkin melakukan booting lebih lambat dari yang lain, Google merekomendasikan penambahan sejumlah margin ke waktu inisialisasi yang diamati (dari operasi penyisipan hingga status responsif) saat menentukan penundaan awal dalam kebijakan autohealing.
Untuk mengukur waktu antara operasi penyisipan instance dan instance
menjadi responsif, jalankan kueri untuk operasi insert
dan log perubahan respons berdasarkan
nama instance VM. Gunakan stempel waktu dari kedua operasi untuk menghitung waktu inisialisasi instance. Ikuti langkah-langkahnya:
Buka Logs Explorer di Konsol Google Cloud.
Masukkan kueri berikut di builder Kueri menggunakan project ID Anda dan nama instance.
(resource.type="gce_instance" AND logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.request.@type="type.googleapis.com/compute.instances.insert" AND operation.last="true" AND protoPayload.resourceName=~"/INSTANCE_NAME$") OR (resource.type="gce_instance_group_manager" AND logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Finstance_group_manager_events" AND jsonPayload.instanceHealthStateChange:* AND labels."compute.googleapis.com/instance_name"="INSTANCE_NAME")
Bagian pertama kueri menunjukkan penyelesaian operasi penyisipan VM. Bagian kedua menampilkan semua perubahan status respons untuk VM.
Dalam Hasil kueri, stempel waktu peristiwa perubahan status respons dengan
detailedHealthState
yang ditetapkan keHEALTHY
segera setelah operasi penyisipan menunjukkan waktu yang diperlukan VM ini untuk melakukan booting.Ulangi langkah-langkah tersebut untuk beberapa VM lainnya guna mendapatkan perkiraan nilai parameter penundaan awal yang lebih baik.