Halaman ini menunjukkan cara menyelesaikan masalah terkait dasbor pemantauan untuk Google Kubernetes Engine (GKE).
Dasbor GKE tidak tercantum di Cloud Monitoring
Secara default, Pemantauan diaktifkan saat Anda membuat cluster. Jika Anda tidak melihat dasbor GKE saat melihat dasbor yang disediakan Google Cloud di Monitoring, Monitoring tidak diaktifkan untuk cluster di project yang dipilih Google Cloud . Aktifkan pemantauan untuk melihat dasbor ini.
Tidak ada resource Kubernetes di dasbor saya
Jika Anda tidak melihat resource Kubernetes di dasbor GKE, periksa hal-hal berikut:
Project Google Cloud yang dipilih
Pastikan Anda telah memilih Google Cloud project yang benar dari menu drop-down di panel menu Google Cloud konsol 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 dengan data. Lihat Mengonfigurasi logging dan pemantauan untuk GKE untuk 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 penolakan izin berikut saat melihat detail deployment layanan atau metrik project Google Cloud , Anda perlu memperbarui peran Pengelolaan Identitas dan Akses Anda 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 ditentukan sebelumnya.
Izin akun layanan cluster dan node untuk menulis data ke Monitoring dan Logging
Jika Anda melihat rasio error yang tinggi di halaman Enabled APIs and services di konsol Google Cloud , berarti akun layanan Anda mungkin tidak memiliki peran berikut:
roles/logging.logWriter
: Di konsol Google Cloud , peran ini diberi nama Penulis Log. 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 Monitoring, lihat Panduan kontrol akses Monitoring.roles/stackdriver.resourceMetadata.writer
: Di konsol Google Cloud , peran ini bernama Stackdriver Resource Metadata Writer. Peran ini mengizinkan akses tulis saja ke metadata resource, dan memberikan izin yang diperlukan oleh agen untuk mengirimkan metadata. Untuk mengetahui informasi selengkapnya tentang peran Monitoring, lihat Panduan kontrol akses Monitoring.
Untuk mencantumkan akun layanan Anda, di konsol Google Cloud , buka IAM and Admin, lalu pilih Service Accounts.
Tidak dapat melihat log
Jika Anda tidak melihat log di dasbor, periksa hal berikut:
Agen berjalan dan responsif
GKE versi 1.17 dan yang lebih baru menggunakan Fluent Bit untuk merekam log. Fluent Bit adalah agen Logging yang berjalan di node Kubernetes. Untuk memeriksa apakah agen berjalan dengan benar, lakukan langkah-langkah berikut:
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
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 dalam kondisi baik, output-nya akan mirip dengan berikut ini:
fluentbit-gke-nj4qs:Initialized=True,Ready=True,ContainersReady=True,PodScheduled=True, fluentbit-gke-xtcvt:Initialized=True,Ready=True,ContainersReady=True,PodScheduled=True,
Periksa status Pod, yang dapat membantu menentukan apakah deployment dalam kondisi baik dengan menjalankan perintah berikut:
kubectl get daemonset -l k8s-app=fluentbit-gke -n kube-system
Jika deployment dalam kondisi baik, output-nya akan mirip dengan berikut ini:
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 berfungsi dengan baik dalam skenario ini, tetapi Anda masih tidak melihat semua log, agen mungkin kelebihan beban dan menghapus log.
Agen kelebihan beban dan menjatuhkan log
Salah satu alasan yang memungkinkan Anda tidak melihat semua log adalah volume log node membebani agen secara berlebihan. 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 filtercontainer_name=fluentbit-gke
untuk melihat apakah penggunaan CPU agen Logging mendekati atau mencapai 100%.Lihat metrik
logging.googleapis.com/byte_count
yang dikelompokkan menurutmetadata.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.
Untuk mengetahui informasi selengkapnya tentang cara menyelidiki dan menyelesaikan masalah terkait logging GKE, lihat Memecahkan masalah logging di GKE.
Insiden tidak cocok dengan resource GKE?
Jika Anda 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 entitas tertentu.
Misalnya, Anda mungkin memiliki dua cluster GKE, satu untuk produksi dan satu untuk staging, yang masing-masing memiliki salinan layanan lilbuddy-2
sendiri. Jika kondisi kebijakan pemberitahuan menggabungkan metrik di seluruh
penampung di kedua cluster, dasbor
Monitoring GKE 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 Kelompokkan Menurut kebijakan. Di kartu peristiwa untuk pemberitahuan, klik link Perbarui kebijakan pemberitahuan untuk 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 terkait.
Setelah Anda memperbarui kebijakan pemberitahuan, dasbor GKE Monitoring dapat mengaitkan semua insiden mendatang dengan layanan unik dalam 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 Kelompokkan Menurut. Misalnya, jika hanya ingin
menerima pemberitahuan untuk cluster produksi, Anda dapat memfilter cluster_name
.
Langkah berikutnya
Jika Anda tidak dapat menemukan solusi untuk masalah Anda dalam dokumentasi, lihat Mendapatkan dukungan untuk mendapatkan bantuan lebih lanjut, termasuk saran tentang topik berikut:
- Membuka kasus dukungan dengan menghubungi Layanan Pelanggan Cloud.
- Mendapatkan dukungan dari komunitas dengan
mengajukan pertanyaan di StackOverflow
dan menggunakan tag
google-kubernetes-engine
untuk menelusuri masalah serupa. Anda juga dapat bergabung ke#kubernetes-engine
channel Slack untuk mendapatkan dukungan komunitas lainnya. - Membuka bug atau permintaan fitur menggunakan issue tracker publik.