Mengumpulkan dump inti


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.
  • 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:

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. 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

Peran yang diperlukan

Guna memastikan bahwa pengguna atau akun layanan Anda memiliki izin yang diperlukan untuk mengirim sinyal NMI ke VM, minta administrator untuk memberi 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.

Peran yang telah ditentukan ini berisi izin compute.instances.sendDiagnosticInterrupt, yang diperlukan untuk mengirim sinyal NMI ke VM.

Administrator Anda mungkin juga dapat memberi pengguna atau akun layanan izin ini dengan peran khusus atau peran standar lainnya.

Ringkasan

Untuk menggunakan core dump guna membantu men-debug masalah keamanan atau VM yang tidak responsif, Anda harus menyelesaikan langkah-langkah berikut:

  1. Mengonfigurasi VM untuk menghasilkan core dump
  2. Kirim sinyal NMI untuk menghasilkan core dump
  3. Meninjau core dump

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:

  • Registry menetapkan AlwaysKeepMemoryDump ke 1
  • Disk memiliki ruang kosong lebih dari 25 GB

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 dengan 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:

  • VM_NAME: ID instance atau nama VM tempat Anda ingin mengumpulkan core dump
  • ZONE: zona tempat VM Anda berada

Outputnya mirip dengan hal berikut ini:

<Empty Response>

Untuk mengetahui daftar lengkap output, lihat bagian berikutnya dalam dokumen ini tentang "Respons perintah NMI".

REST

  1. Opsional. Jika belum tersedia, buat kunci API. Untuk informasi selengkapnya tentang membuat kunci API, lihat Membuat kunci API.

  2. Untuk mengirim sinyal NMI, buat permintaan POST ke metode sendDiagnosticInterrupt.

    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 dibuat
    • ZONE: zona tempat VM Anda berada
    • VM_NAME: ID instance atau nama VM tempat Anda ingin mengumpulkan core dump
    • API_KEY: Kunci API Anda

    Outputnya mirip dengan hal berikut ini:

    <Empty Response>

    Untuk mengetahui daftar lengkap output, baca bagian selanjutnya dalam dokumen ini tentang "respons perintah NMI".

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:
  • Pastikan bahwa VM dikonfigurasi dengan benar. Lihat Mengonfigurasi VM.
  • Tunggu dan coba lagi permintaan SendDiagnosticInterrupt.
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 izin compute.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/.