Gunakan core dump untuk menganalisis penyebab instance mesin virtual (VM) yang tidak responsif.
Untuk mengumpulkan dump core di Compute Engine, Anda harus mengonfigurasi VM untuk menerima sinyal Non-Maskable Interrupt (NMI), lalu menjalankan perintah SendDiagnosticInterrupt
untuk meminta kernel panic atau layar biru di sistem operasi Anda. Kernel panik atau layar biru memulai pengumpulan dump
inti oleh sistem operasi tamu. Selanjutnya, dump inti ini dapat digunakan untuk
tujuan proses debug, terutama dalam skenario yang sulit direproduksi, seperti
pembekuan kernel.
Sebelum memulai
- Pengiriman sinyal NMI dihitung dalam kuota API Kueri default. Untuk informasi selengkapnya, lihat Batas kapasitas API.
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses yang digunakan untuk memverifikasi identitas Anda agar dapat mengakses Google Cloud layanan dan API.
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:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Mengonfigurasi VM untuk menghasilkan core dump
- Kirim sinyal NMI untuk menghasilkan core dump
- Meninjau core dump
- Registry menetapkan
AlwaysKeepMemoryDump
ke1
- Disk memiliki ruang kosong lebih dari 25 GB
VM_NAME
: ID instance atau nama VM tempat Anda ingin mengumpulkan core dumpZONE
: zona tempat VM Anda beradaOpsional. Jika belum tersedia, buat kunci API. Untuk informasi selengkapnya tentang membuat kunci API, lihat Membuat kunci API.
Untuk mengirim sinyal NMI, buat permintaan
POST
ke metodesendDiagnosticInterrupt
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/sendDiagnosticInterrupt?key=API_KEY
Misalnya, Anda dapat menggunakan perintah
curl
untuk membuat permintaan sebagai berikut:curl --request POST 'https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/sendDiagnosticInterrupt?key=API_KEY' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' \ --header 'Accept: application/json' \ --compressed
Ganti kode berikut:
PROJECT_ID
: ID project tempat VM akan dibuatZONE
: zona tempat VM Anda beradaVM_NAME
: ID instance atau nama VM tempat Anda ingin mengumpulkan core dumpAPI_KEY
: Kunci API Anda
Outputnya mirip dengan berikut ini:
<Empty Response>
Untuk mengetahui daftar lengkap output, baca bagian selanjutnya dalam dokumen ini tentang "respons perintah NMI".
- Pastikan bahwa VM dikonfigurasi dengan benar. Lihat Mengonfigurasi VM.
- Tunggu dan coba lagi permintaan
SendDiagnosticInterrupt
.
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 Mengautentikasi untuk menggunakan REST dalam Google Cloud dokumentasi autentikasi.
Peran yang diperlukan
Untuk memastikan bahwa akun pengguna atau akun layanan Anda memiliki izin yang diperlukan untuk mengirim sinyal NMI ke VM, minta administrator untuk memberi akun pengguna atau akun layanan Anda peran IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.Peran yang telah ditentukan ini berisi izin
compute.instances.sendDiagnosticInterrupt
, yang diperlukan untuk mengirim sinyal NMI ke VM.Administrator Anda mungkin juga dapat memberikan izin ini kepada akun pengguna atau layanan Anda dengan peran khusus atau peran bawaan lainnya.
Ringkasan
Untuk menggunakan core dump guna membantu men-debug masalah keamanan atau VM yang tidak responsif, Anda harus menyelesaikan langkah-langkah berikut:
Batasan
Untuk VM yang mengaktifkan Booting Aman, Anda harus menonaktifkan Booting Aman sebelum mengirim sinyal gangguan NMI. Untuk mengetahui petunjuknya, baca Mengubah opsi Shielded VM pada instance VM.
Mengonfigurasi VM
Respons VM saat menerima sinyal gangguan NMI bergantung pada konfigurasi sistem operasi VM.
Setiap sistem operasi menulis log dump intinya di lokasi yang berbeda. Misalnya, dalam sistem operasi Ubuntu, file error dump disimpan ke
/var/crash/
secara default.Untuk mengonfigurasi OS tamu agar menghasilkan error dump saat sinyal NMI diterima, tinjau dokumentasi untuk sistem operasi yang didukung.
Sistem operasi Link ke petunjuk Catatan tambahan Ubuntu Ubuntu: File dump error kernel Untuk VM Linux, Anda harus mengonfigurasi kernel agar mengalami error saat menerima sinyal interupsi NMI.
Untuk mengonfigurasi kernel agar tidak bekerja, tambahkan baris berikut ke file konfigurasi Anda:
kernel.unknown_nmi_panic=1
SUSE Linux Enterprise Server (SLES) Mengonfigurasi memori errorkernel untuk analisis dump inti kernel Red Hat Enterprise Linux (RHEL) Gunakan kedua dokumen berikut:
Container-Optimized OS (COS) Mengaktifkan Kernel Crash Dump pada Instance COS GCE Hanya COS 93 dan yang lebih baru yang mendukung pembuatan kdump menggunakan sinyal NMI. Windows Menghasilkan kernel atau seluruh error dump VM klien Windows tidak menyimpan file memory dump kecuali jika file tersebut merupakan anggotadomain AD atau hal berikut berlaku:
Untuk informasi selengkapnya, lihat Penyimpanan dump Kernel dan perilaku pembersihan di Windows 7
Mengirim NMI untuk menghasilkan core dump
Setelah mengonfigurasi VM, Anda dapat mengirim sinyal NMI ke VM menggunakan Google Cloud CLI atau REST.
gcloud
Untuk mengirim sinyal NMI, gunakan perintah
instances send-diagnostic-interrupt
.gcloud compute instances send-diagnostic-interrupt VM_NAME \ --zone=ZONE
Ganti kode berikut:
Outputnya mirip dengan berikut ini:
<Empty Response>
Untuk mengetahui daftar lengkap output, lihat bagian berikutnya dalam dokumen ini tentang "Respons perintah NMI".
REST
Respons perintah NMI
Salah satu respons berikut ditampilkan saat Anda mencoba mengirim sinyal NMI.
Status Isi Catatan BERHASIL <Empty Response>
SUCCESS
menunjukkan bahwa sinyal NMI dikirim ke sistem operasi. Tindakan ini tidak menjamin bahwa core dump dikumpulkan, atau bahwa VM dinonaktifkan atau dimulai ulang. Perilaku ini ditentukan oleh konfigurasi sistem operasi.GAGAL UNSUPPORTED_OPERATION
Ini terjadi ketika sistem operasi gagal menerima sinyal NMI. Ada beberapa alasan untuk hal ini. Skenario umumnya adalah VM sedang dimigrasikan langsung atau VM tidak dikonfigurasi dengan benar untuk menerima sinyal NMI.
Untuk mengatasi hal ini, Anda dapat mencoba langkah berikut:GAGAL Required 'compute.instances.sendDiagnosticInterrupt' permission for [..]
Perintah gagal karena pengguna yang mengajukan permintaan tidak memiliki izin yang memadai.
Untuk mengatasi hal ini, Anda dapat menetapkan peran kepada pengguna yang berisi izincompute.instances.sendDiagnosticInterrupt
.Meninjau dump inti
Tinjau file dump error di lokasi yang dikonfigurasi atau default untuk sistem operasi Anda.
Misalnya, dalam sistem operasi Ubuntu, secara default, file dump error disimpan ke
/var/crash/
.Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-02-06 UTC.
-