Melakukan analisis historis dengan Cloud Logging


Jika Pod gagal atau layanan tidak berfungsi seperti yang diharapkan di Google Kubernetes Engine (GKE), memahami urutan peristiwa yang menyebabkan masalah tersebut sangat penting. Memeriksa status saat ini saja tidak selalu cukup untuk menemukan akar masalah, sehingga data log historis menjadi sangat berharga.

Gunakan halaman ini untuk mempelajari cara menggunakan Cloud Logging guna menyelidiki kegagalan di masa lalu (seperti alasan Pod gagal dimulai atau siapa yang menghapus Deployment penting) dengan membuat kueri dan menganalisis log GKE.

Informasi ini penting bagi admin dan operator Platform yang perlu melakukan analisis penyebab masalah di seluruh cluster, mengaudit perubahan, dan memahami tren perilaku sistem. Hal ini juga penting bagi developer Aplikasi untuk men-debug error khusus aplikasi, melacak jalur permintaan, dan memahami perilaku kode mereka di lingkungan GKE dari waktu ke waktu. Untuk mengetahui informasi selengkapnya tentang peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud , lihat Peran dan tugas pengguna GKE umum.

Memahami jenis log utama untuk pemecahan masalah

Untuk membantu Anda memecahkan masalah, Cloud Logging secara otomatis mengumpulkan dan mengagregasi beberapa jenis log utama dari cluster GKE, aplikasi dalam container, dan layanan Google Cloud lainnya:

  • Log node dan runtime (kubelet, containerd): log dari layanan node yang mendasarinya. Karena kubelet mengelola siklus proses semua Pod di node, lognya sangat penting untuk memecahkan masalah seperti peluncuran container, peristiwa Kehabisan Memori (OOM), kegagalan probe, dan error pemasangan volume. Log ini juga penting untuk mendiagnosis masalah tingkat node, seperti node yang memiliki status NotReady.

    Karena containerd mengelola siklus proses container Anda, termasuk menarik image, lognya sangat penting untuk memecahkan masalah yang terjadi sebelum kubelet dapat memulai container. Log containerd membantu Anda mendiagnosis masalah tingkat node di GKE, karena log ini mendokumentasikan aktivitas spesifik dan potensi error runtime container.

  • Log aplikasi (stdout, stderr): aliran output dan error standar dari proses dalam container Anda. Log ini penting untuk men-debug masalah khusus aplikasi seperti error, error, atau perilaku yang tidak terduga.

  • Log audit: log ini menjawab "siapa yang melakukan apa, di mana, dan kapan?" untuk cluster Anda. Log ini melacak tindakan administratif dan panggilan API yang dilakukan ke server Kubernetes API, yang berguna untuk mendiagnosis masalah yang disebabkan oleh perubahan konfigurasi atau akses yang tidak sah.

Skenario pemecahan masalah umum

Setelah mengidentifikasi masalah, Anda dapat membuat kueri log ini untuk mengetahui apa yang terjadi. Untuk membantu Anda memulai, meninjau log dapat membantu Anda mengatasi masalah berikut:

  • Jika node memiliki status NotReady, tinjau log node-nya. Log kubelet dan containerd sering kali mengungkapkan penyebab yang mendasarinya, seperti masalah jaringan atau batasan resource.
  • Jika node baru gagal disediakan dan bergabung dengan cluster, tinjau log port serial node. Log ini merekam aktivitas booting awal dan startup kubelet sebelum agen logging node aktif sepenuhnya.
  • Jika Pod gagal dimulai pada masa lalu, tinjau log aplikasi untuk Pod tersebut guna memeriksa apakah ada error. Jika log kosong atau Pod tidak dapat dijadwalkan, periksa log audit untuk mengetahui peristiwa yang relevan atau log node pada node target untuk mendapatkan petunjuk tentang tekanan resource atau error penarikan image.
  • Jika Deployment penting dihapus dan tidak ada yang tahu alasannya, kueri log audit Aktivitas Admin. Log ini dapat membantu Anda mengidentifikasi akun pengguna atau layanan mana yang mengeluarkan panggilan API penghapusan, sehingga memberikan titik awal yang jelas untuk penyelidikan Anda.

Cara mengakses log

Gunakan Logs Explorer untuk membuat kueri, melihat, dan menganalisis log GKE di konsol Google Cloud . Logs Explorer menyediakan opsi pemfilteran canggih yang membantu Anda mengisolasi masalah.

Untuk mengakses dan menggunakan Logs Explorer, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Logs Explorer.

    Buka Logs Explorer

  2. Di panel kueri, masukkan kueri. Gunakan bahasa kueri Logging untuk menulis kueri bertarget. Berikut beberapa filter umum untuk membantu Anda memulai:

    Jenis filter Deskripsi Nilai contoh
    resource.type Jenis resource Kubernetes. k8s_cluster, k8s_node, k8s_pod, k8s_container
    log_id Aliran log dari resource. stdout, stderr
    resource.labels.RESOURCE_TYPE.name Memfilter resource dengan nama tertentu.
    Ganti RESOURCE_TYPE dengan nama resource yang ingin Anda kueri. Misalnya, namespace atau pod.
    example-namespace-name, example-pod-name
    severity Tingkat keparahan log. DEFAULT, INFO, WARNING, ERROR, CRITICAL
    jsonPayload.message=~ Penelusuran ekspresi reguler untuk teks dalam pesan log. scale.down.error.failed.to.delete.node.min.size.reached

    Misalnya, untuk memecahkan masalah Pod tertentu, Anda mungkin ingin mengisolasi log error-nya. Untuk melihat hanya log dengan tingkat keparahan ERROR untuk Pod tersebut, gunakan kueri berikut:

    resource.type="k8s_container"
    resource.labels.pod_name="POD_NAME"
    resource.labels.namespace_name="NAMESPACE_NAME"
    severity=ERROR
    

    Ganti kode berikut:

    • POD_NAME: nama Pod yang mengalami masalah.
    • NAMESPACE_NAME: namespace tempat Pod berada. Jika Anda tidak yakin apa namespace-nya, tinjau kolom Namespace dari output perintah kubectl get pods.

    Untuk contoh lainnya, lihat Kueri terkait Kubernetes dalam dokumentasi Google Cloud Observability.

  3. Klik Run query.

  4. Untuk melihat pesan log lengkap, termasuk payload JSON, metadata, dan stempel waktu, klik entri log.

Untuk mengetahui informasi selengkapnya tentang log GKE, lihat Tentang log GKE.

Langkah berikutnya