Memecahkan masalah dasbor pemantauan


Halaman ini menunjukkan cara menyelesaikan masalah terkait dasbor pemantauan untuk Google Kubernetes Engine (GKE).

Jika Anda memerlukan bantuan lainnya, hubungi Cloud Customer Care.

Secara default, Monitoring diaktifkan saat Anda membuat cluster. Jika Anda tidak melihat dasbor GKE saat melihat dasbor Google Cloud yang disediakan di Monitoring, berarti Monitoring tidak diaktifkan untuk cluster dalam project Google Cloud yang dipilih. Aktifkan pemantauan untuk melihat dasbor tersebut.

Tidak ada resource Kubernetes di dasbor saya

Jika Anda tidak melihat resource Kubernetes apa pun di dasbor GKE, periksa hal berikut:

Project Google Cloud yang dipilih

Pastikan Anda telah memilih project Google Cloud yang benar dari menu drop-down di panel menu Konsol Google Cloud untuk memilih project. Anda harus memilih project yang datanya ingin Anda lihat.

Aktivitas cluster

Jika Anda baru saja membuat cluster, tunggu beberapa menit hingga cluster terisi data. Baca bagian Mengonfigurasi logging dan pemantauan untuk GKE guna mengetahui detailnya.

Rentang waktu

Rentang waktu yang dipilih mungkin terlalu sempit. Anda dapat menggunakan menu Waktu di toolbar dasbor untuk memilih rentang waktu lain atau menentukan rentang Kustom.

Izin untuk melihat dasbor

Jika Anda melihat salah satu pesan error yang ditolak dengan izin berikut saat melihat detail deployment layanan atau metrik project Google Cloud, Anda harus memperbarui peran Identity and Access Management untuk menyertakan roles/monitoring.viewer atau roles/viewer:

  • You do not have sufficient permissions to view this page
  • You don't have permissions to perform the action on the selected resources

Untuk mengetahui detail selengkapnya, buka Peran yang telah ditetapkan.

Izin akun layanan cluster dan node untuk menulis data ke Monitoring dan Logging

Jika Anda melihat tingkat error yang tinggi di halaman Enabled APIs and services di Google Cloud Console, akun layanan Anda mungkin tidak memiliki peran berikut:

  • roles/logging.logWriter: Di konsol Google Cloud, peran ini diberi nama Logs Writer. Untuk mengetahui informasi selengkapnya tentang peran Logging, lihat Panduan kontrol akses logging.

  • roles/monitoring.metricWriter: Di konsol Google Cloud, peran ini diberi nama Monitoring Metric Writer. Untuk mengetahui informasi selengkapnya tentang Peran pemantauan, lihat Panduan kontrol akses pemantauan.

  • roles/stackdriver.resourceMetadata.writer: Di konsol Google Cloud, peran ini diberi nama Stackdriver Resource Metadata Writer. Peran ini mengizinkan akses hanya tulis ke metadata resource, dan memberikan izin yang tepat yang diperlukan oleh agen untuk mengirim metadata. Untuk informasi selengkapnya tentang Peran pemantauan, lihat Panduan kontrol akses pemantauan.

Untuk menampilkan daftar akun layanan, di Konsol Google Cloud, buka IAM and Admin, lalu pilih Service Accounts.

Tidak dapat melihat log

Jika Anda tidak melihat log Anda di dasbor, periksa hal-hal berikut:

Agen berjalan dan responsif

GKE versi 1.17 dan yang lebih baru menggunakan Fluent Bit untuk mengambil log. Fluent Bit adalah agen Logging yang berjalan pada node Kubernetes. Untuk memeriksa apakah agen berjalan dengan benar, lakukan langkah-langkah berikut:

  1. Periksa apakah agen dimulai ulang dengan menjalankan perintah berikut:

    kubectl get pods -l k8s-app=fluentbit-gke -n kube-system
    

    Jika tidak ada mulai ulang, outputnya akan mirip dengan berikut ini:

    NAME                  READY   STATUS    RESTARTS   AGE
    fluentbit-gke-6zr6g   2/2     Running   0          44d
    fluentbit-gke-dzh9l   2/2     Running   0          44d
    
  2. Periksa kondisi status Pod dengan menjalankan perintah berikut:

    JSONPATH='{range .items[*]};{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status},{end}{end};'  \
     && kubectl get pods -l k8s-app=fluentbit-gke -n kube-system -o jsonpath="$JSONPATH" | tr ";" "\n"
    

    Jika deployment tersebut responsif, output-nya akan terlihat seperti berikut:

    fluentbit-gke-nj4qs:Initialized=True,Ready=True,ContainersReady=True,PodScheduled=True,
    fluentbit-gke-xtcvt:Initialized=True,Ready=True,ContainersReady=True,PodScheduled=True,
    
  3. Periksa status Pod. Hal ini dapat membantu menentukan apakah deployment responsif atau tidak dengan menjalankan perintah berikut:

    kubectl get daemonset -l k8s-app=fluentbit-gke -n kube-system
    

    Jika deployment tersebut responsif, output-nya akan terlihat seperti berikut:

    NAME            DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
    fluentbit-gke   2         2         2       2            2           kubernetes.io/os=linux   5d19h
    

    Dalam contoh output ini, status yang diinginkan cocok dengan status saat ini.

Jika agen berjalan dan responsif dalam skenario ini, dan Anda masih belum melihat semua log, agen mungkin kelebihan beban dan meninggalkan log.

Agen kelebihan beban dan melepas log

Salah satu kemungkinan alasan Anda tidak melihat semua log adalah karena volume log node membebani agen. Konfigurasi agen Logging default di GKE disesuaikan untuk kecepatan 100 kiB per detik untuk setiap node, dan agen mungkin mulai menghapus log jika volume melebihi batas tersebut.

Untuk mendeteksi apakah Anda mungkin mencapai batas ini, cari salah satu indikator berikut:

  • Lihat metrik kubernetes.io/container/cpu/core_usage_time dengan filter container_name=fluentbit-gke untuk melihat apakah penggunaan CPU agen Logging mendekati atau 100%.

  • Lihat metrik logging.googleapis.com/byte_count yang dikelompokkan menurut metadata.system_labels.node_name untuk melihat apakah ada node yang mencapai 100 kiB per detik.

Jika melihat salah satu kondisi ini, Anda dapat mengurangi volume log node dengan menambahkan lebih banyak node ke cluster. Jika semua volume log berasal dari satu pod, Anda harus mengurangi volume dari pod tersebut.

Jika Anda ingin mengubah parameter penyesuaian agen Logging, lihat tutorial komunitas untuk men-deploy konfigurasi agen Logging kustom.

Untuk mengetahui informasi selengkapnya tentang penyelidikan dan penyelesaian masalah terkait logging GKE, lihat Memecahkan masalah logging di GKE.

Insiden tidak cocok dengan resource GKE?

Jika memiliki kondisi kebijakan pemberitahuan yang menggabungkan metrik di seluruh resource GKE yang berbeda, Anda mungkin perlu mengedit kondisi kebijakan untuk menyertakan lebih banyak label hierarki GKE guna mengaitkan insiden dengan entity tertentu.

Misalnya, Anda mungkin memiliki dua cluster GKE, satu untuk produksi dan satu untuk staging, masing-masing dengan salinan layanan lilbuddy-2-nya sendiri. Saat kondisi kebijakan pemberitahuan menggabungkan metrik di seluruh container di kedua cluster, dasbor GKE Monitoring tidak dapat mengaitkan insiden ini secara unik dengan layanan produksi atau layanan staging.

Untuk mengatasi situasi ini, targetkan kebijakan pemberitahuan ke layanan tertentu dengan menambahkan namespace, cluster, dan location ke kolom Group By kebijakan. Pada kartu peristiwa untuk pemberitahuan, klik link Perbarui kebijakan pemberitahuan guna membuka halaman Edit kebijakan pemberitahuan untuk kebijakan pemberitahuan yang relevan. Dari sini, Anda dapat memperbarui kebijakan pemberitahuan dengan informasi tambahan sehingga dasbor dapat menemukan resource yang terkait.

Setelah Anda memperbarui kebijakan pemberitahuan, dasbor GKE Monitoring dapat mengaitkan semua insiden mendatang dengan layanan unik di cluster tertentu, sehingga memberi Anda informasi tambahan untuk mendiagnosis masalah.

Bergantung pada kasus penggunaan, Anda mungkin ingin memfilter beberapa label ini selain menambahkannya ke kolom Group By. Misalnya, jika hanya menginginkan pemberitahuan untuk cluster produksi, Anda dapat memfilter cluster_name.

Langkah selanjutnya

Jika Anda memerlukan bantuan lainnya, hubungi Cloud Customer Care.