Mengonfigurasi logging dan pemantauan untuk GKE


Google Kubernetes Engine (GKE) mencakup integrasi dengan Cloud Logging dan Cloud Monitoring, termasuk Google Cloud Managed Service for Prometheus.

Integrasi ini memungkinkan Anda memantau cluster GKE yang sedang dijalankan, mengelola sistem dan log debug, serta menganalisis performa sistem menggunakan kemampuan profiling dan pelacakan lanjutan.

Integrasi ini juga menyediakan dasbor untuk mengamati cluster GKE Anda.

Log keamanan, termasuk log audit dasar, tersedia untuk GKE dan sebagian besar layanan Google Cloud lainnya bahkan saat Cloud Logging tidak diaktifkan untuk cluster GKE. Untuk mengetahui informasi selengkapnya, lihat Cloud Audit Logs.

Halaman ini menjelaskan cara melakukan hal berikut:

  • Buat cluster baru dan konfigurasikan Cloud Logging, Cloud Monitoring, dan Google Cloud Managed Service for Prometheus.

  • Pilih log dan metrik yang akan dikumpulkan.

  • Menonaktifkan Cloud Logging, Cloud Monitoring, dan Google Cloud Managed Service for Prometheus untuk cluster.

Untuk cluster GKE Autopilot, Anda tidak dapat menonaktifkan integrasi Cloud Logging dan Cloud Monitoring.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu initialize gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.
  • Pastikan Anda adalah Pemilik project yang berisi cluster Anda.

  • Pastikan Anda telah mengaktifkan Cloud Logging API. Anda dapat memeriksa status Cloud Logging API dari halaman Ringkasan.

Log dan metrik

Anda dapat memilih untuk mengirim log dan metrik dari cluster GKE ke Cloud Logging dan Cloud Monitoring atau tidak. Bagian berikut menjelaskan log dan metrik yang tersedia, serta log dan metrik yang diaktifkan secara default pada waktu pembuatan cluster.

Log yang tersedia

Jika memilih untuk mengirim log ke Cloud Logging, Anda harus mengirim log sistem, dan Anda dapat mengirim log secara opsional dari sumber tambahan.

Pelajari harga Cloud Logging.

Tabel berikut menunjukkan nilai yang didukung untuk flag --logging untuk perintah create dan update.

Sumber Log Nilai --logging Log yang Dikumpulkan
Tidak ada NONE Tidak ada log yang dikirim ke Cloud Logging; tidak ada agen pengumpulan log yang diinstal di cluster. Nilai ini tidak didukung untuk cluster GKE Autopilot.
Image SYSTEM Mengumpulkan log dari berikut ini:
  • Semua Pod yang berjalan di namespace kube-system, istio-system, knative-serving, gke-system, dan config-management-system.
  • Layanan utama yang tidak berada dalam container, termasuk runtime docker/containerd, kubelet, kubelet-monitor, node-problem-detector, dan kube-container-runtime-monitor.
  • Output port serial node, jika metadata instance VM serial-port-logging-enable ditetapkan ke true.

Selain itu, mengumpulkan peristiwa Kubernetes. Nilai ini diperlukan untuk semua jenis cluster.

Beban kerja WORKLOAD Semua log yang dibuat oleh container non-sistem yang berjalan pada node pengguna. Nilai ini aktif secara default, tetapi bersifat opsional untuk semua jenis cluster.
Server API API_SERVER Semua log yang dibuat oleh kube-apiserver. Nilai ini bersifat opsional untuk semua jenis cluster.
Scheduler SCHEDULER Semua log yang dibuat oleh kube-scheduler. Nilai ini bersifat opsional untuk semua jenis cluster.
Controller Manager CONTROLLER_MANAGER Semua log yang dibuat oleh kube-controller-manager. Nilai ini bersifat opsional untuk semua jenis cluster.

Metrik yang tersedia

Jika memilih untuk mengirim metrik ke Cloud Monitoring, Anda harus mengirim metrik sistem dan dapat mengirim metrik tambahan secara opsional.

Pelajari harga Cloud Monitoring, termasuk metrik yang tidak dikenai biaya.

Tabel berikut menunjukkan nilai yang didukung untuk flag --monitoring untuk perintah create dan update.

Sumber Nilai --monitoring Metrik yang Dikumpulkan
Tidak ada NONE Tidak ada metrik yang dikirim ke Cloud Monitoring; tidak ada agen pengumpulan metrik yang diinstal di cluster. Nilai ini tidak didukung untuk cluster GKE Autopilot.
Sistem SYSTEM Metrik dari komponen sistem penting yang diperlukan untuk Kubernetes. Untuk mengetahui daftar lengkap metrik, lihat Metrik Kubernetes.
Server API API_SERVER Metrik dari kube-apiserver. Untuk daftar lengkap metrik, lihat Metrik server API.
Penjadwal SCHEDULER Metrik dari kube-scheduler. Untuk mengetahui daftar lengkap metrik, lihat Metrik penjadwal.
Pengelola Pengontrol CONTROLLER_MANAGER Metrik dari kube-controller-manager. Untuk daftar lengkap metrik, lihat Metrik Pengelola Pengontrol.
Volume persisten (Penyimpanan) STORAGE Metrik penyimpanan dari kube-state-metrics. Mencakup metrik untuk Klaim Volume Persisten dan Volume Persisten. Untuk daftar lengkap metrik, lihat Metrik penyimpanan.
Pod POD Metrik pod dari kube-state-metrics. Untuk daftar lengkap metrik, lihat Metrik pod.
Deployment DEPLOYMENT Metrik deployment dari kube-state-metrics. Untuk daftar lengkap metrik, lihat Metrik deployment.
StatefulSet STATEFULSET Metrik StatefulSet dari kube-state-metrics. Untuk daftar lengkap metrik, lihat Metrik StatefulSet.
DaemonSet DAEMONSET Metrik DaemonSet dari kube-state-metrics. Untuk mengetahui daftar lengkap metrik, lihat Metrik DaemonSet.
HorizonalPodAutoscaler HPA Metrik HPA dari kube-state-metrics. Lihat daftar lengkap metrik HorizonalPodAutoscaler.
cAdvisor CADVISOR Metrik cAdvisor dari paket metrik cAdvisor/Kubelet. Untuk daftar lengkap metrik, lihat metrik cAdvisor.
Kubelet KUBELET Metrik kubelet dari cAdvisor/Kubelet Untuk mengetahui daftar lengkap metrik, lihat paket metrik. Metrik Kubelet.

Selain itu, Anda dapat mengumpulkan metrik bergaya Prometheus yang diekspos oleh workload GKE menggunakan Google Cloud Managed Service for Prometheus. Dengan begitu, Anda dapat memantau dan membuat pemberitahuan terkait workload, menggunakan Prometheus, tanpa harus mengelola dan mengoperasikan Prometheus secara manual dalam skala besar.

Log dan metrik diaktifkan secara default

Saat Anda membuat cluster GKE baru di Google Cloud, beberapa log dan metrik diaktifkan secara default saat pembuatan cluster.

  • Log dan metrik sistem diaktifkan untuk semua jenis cluster, dan tidak dapat dinonaktifkan.
  • Log workload diaktifkan secara default untuk semua cluster Autopilot, tetapi dapat dinonaktifkan. Sebaiknya jangan nonaktifkan log beban kerja karena dampaknya pada dukungan.
  • Untuk project edisi GKE Enterprise, log dan metrik tambahan yang berguna akan diaktifkan secara default jika Anda mendaftar ke fleet saat membuat cluster. Jika ingin mengaktifkan log dan metrik tersebut setelah cluster dibuat, lihat Mengubah cluster Anda.

Dalam tabel berikut, tanda centang () menunjukkan log dan metrik yang diaktifkan secara default saat Anda membuat dan mendaftarkan cluster baru dalam project yang mengaktifkan GKE Enterprise:

Log

Nama log Autopilot Standar
Image
Beban kerja -
Server API
Scheduler
Controller Manager

Log bidang kontrol (server API, Scheduler, dan Controller Manager) dikenai biaya Cloud Logging.

Metrik

Nama metrik Autopilot Standar
Image
Server API
Scheduler
Controller Manager
Volume persisten (Penyimpanan)
Pod
Deployment
StatefulState
DaemonSet
HorizonalPodAutoscaler
cAdvisor
Kubelet

Semua cluster terdaftar dalam project yang mengaktifkan GKE Enterprise dapat menggunakan paket untuk metrik bidang kontrol, metrik status Kube, dan metrik cAdvisor/Kubelet tanpa biaya tambahan. Jika tidak, metrik ini akan dikenai biaya Cloud Monitoring.

Anda dapat memilih untuk menonaktifkan log dan metrik default selama pembuatan cluster atau setelah cluster dibuat.

Mengonfigurasi pemantauan dan logging untuk cluster baru

Petunjuk pembuatan cluster di bagian ini hanya mencakup opsi yang relevan dengan Cloud Logging dan Cloud Monitoring. Untuk mengetahui petunjuk lengkap cara membuat cluster GKE, lihat dokumentasi untuk membuat cluster Standard atau Autopilot.

Untuk mengonfigurasi logging dan pemantauan secara manual saat membuat cluster GKE, selesaikan langkah-langkah berikut:

Konsol

Untuk cluster Autopilot:

  1. Di halaman pembuatan cluster Autopilot, dari panel navigasi, klik Advanced settings.

    Membuat cluster Autopilot

  2. Di daftar Operations, pilih log dan metrik yang ingin Anda kumpulkan.

    • Dalam daftar Components untuk Cloud Logging, pilih komponen yang lognya ingin Anda kumpulkan.

    • Dalam daftar Components untuk Cloud Monitoring, pilih komponen yang metriknya ingin Anda kumpulkan.

    Cluster autopilot selalu menggunakan praktik terbaik Google untuk pengumpulan telemetri, yang berarti bahwa logging sistem dan workload selalu diaktifkan dan pemantauan sistem selalu diaktifkan.

  3. Klik Create.

Untuk cluster Standar:

  1. Di halaman pembuatan cluster Standar, dari panel navigasi, pada Cluster, klik Features.

    Membuat cluster Kubernetes

  2. Di daftar Operations, pilih log dan metrik yang ingin Anda kumpulkan.

    • Dalam daftar Components untuk Cloud Logging, pilih komponen yang lognya ingin Anda kumpulkan.

    • Dalam daftar Components untuk Cloud Monitoring, pilih komponen yang metriknya ingin Anda kumpulkan.

    • Untuk menonaktifkan Cloud Logging (kecuali untuk log audit), hapus centang pada kotak Enable Cloud Logging.

    • Untuk menonaktifkan Cloud Monitoring, hapus centang pada kotak Enable Cloud Monitoring.

    • Untuk menonaktifkan Google Cloud Managed Service for Prometheus, hapus centang pada kotak Aktifkan Google Cloud Managed Service for Prometheus.

gcloud

  1. Untuk cluster baru, Cloud Logging dan Cloud Monitoring diaktifkan secara default. Untuk membuat cluster, jalankan perintah berikut:

    gcloud container clusters create CLUSTER_NAME \
        --location=COMPUTE_LOCATION
    

    Ganti kode berikut:

    1. Atau, Anda dapat mengonfigurasi log yang akan dikirim ke Cloud Logging dengan meneruskan daftar nilai yang dipisahkan koma ke flag --logging perintah create. Untuk mengumpulkan tidak ada log, teruskan --logging=NONE. Untuk mengumpulkan log sistem, server API, Scheduler, dan Pengelola Pengontrol, teruskan --logging=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER. Untuk mengumpulkan log sistem dan beban kerja, teruskan --logging=SYSTEM,WORKLOAD. Contoh:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --logging=SYSTEM,WORKLOAD
      
    2. Demikian pula, Anda dapat mengonfigurasi metrik yang dikirim ke Cloud Monitoring dengan meneruskan daftar nilai yang dipisahkan koma ke flag --monitoring. Untuk tidak mengumpulkan metrik, teruskan --monitoring=NONE. Untuk mengumpulkan metrik sistem, teruskan --monitoring=SYSTEM. Untuk mengumpulkan semua metrik, teruskan --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET, DAEMONSET,HPA,CADVISOR,KUBELET. Misalnya:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA,CADVISOR,KUBELET
      
    3. Secara terpisah, Anda dapat mengaktifkan Google Cloud Managed Service for Prometheus menggunakan flag --enable-managed-prometheus. Contoh:

      gcloud container clusters create CLUSTER_NAME \
          --location=COMPUTE_LOCATION \
          --enable-managed-prometheus
      

      Flag --enable-managed-prometheus memungkinkan kolektor terkelola, yang harus dikonfigurasi.

Terraform

  • Untuk mengonfigurasi kumpulan log dan metrik menggunakan Terraform, lihat blok logging_config dan monitoring_config di registry Terraform untuk google_container_cluster. Mengaktifkan kumpulan log dari server API, penjadwal, dan pengelola pengontrol memerlukan penyedia Google Cloud Terraform versi 4.44.0 atau yang lebih baru.

  • Untuk mengetahui informasi umum tentang penggunaan Google Cloud dengan Terraform, baca artikel Terraform dengan Google Cloud.

Mengonfigurasi pemantauan dan logging untuk cluster yang ada

Bagian berikut menjelaskan cara memodifikasi integrasi Cloud Logging dan Cloud Monitoring untuk cluster GKE yang ada.

Mengubah dukungan pemantauan dan logging, serta mengubah versi Kubernetes cluster Anda adalah tindakan yang berbeda. Mengubah versi Kubernetes cluster Anda tidak mengubah dukungan pemantauan dan logging yang dikonfigurasi.

Dukungan pemantauan dan logging mana yang digunakan cluster saya?

Untuk melihat setelan integrasi Cloud Logging dan Cloud Monitoring untuk cluster Anda, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Cluster Kubernetes:

    Buka cluster Kubernetes

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil dengan subjudul Kubernetes Engine.

  2. Di panel Details cluster Anda, lihat status Cloud Logging, Cloud Monitoring, dan Google Cloud Managed Service for Prometheus.

Mengubah cluster Anda

Untuk mengubah setelan integrasi Cloud Logging atau Cloud Monitoring untuk cluster yang sudah ada, ikuti langkah-langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman Cluster Kubernetes:

    Buka cluster Kubernetes

    Jika Anda menggunakan kotak penelusuran untuk menemukan halaman ini, pilih hasil dengan subjudul Kubernetes Engine.

  2. Klik nama cluster Anda.

  3. Untuk mengubah log yang dikirim ke Cloud Logging, metrik mana yang dikirim ke Cloud Monitoring, atau apakah Google Cloud Managed Service for Prometheus diaktifkan, klik Edit di samping Cloud Logging, Cloud Monitoring, atau Google Cloud Managed Service for Prometheus.

  4. Klik Simpan.

gcloud

Petunjuk gcloud berikut membahas upgrade dukungan pemantauan dan logging cluster Anda menggunakan perintah gcloud container clusters update. Perhatikan bahwa Anda menggunakan perintah update, bukan perintah upgrade.

  • Konfigurasikan log yang dikirim ke Cloud Logging dengan meneruskan daftar nilai yang dipisahkan koma ke flag --logging perintah gcloud container clusters update. Lihat daftar lengkap sumber log yang tersedia. Misalnya, untuk mengumpulkan log sistem dan beban kerja, teruskan --logging=SYSTEM,WORKLOAD. Untuk mengumpulkan log sistem saja, teruskan --logging=SYSTEM. Atau, untuk mengumpulkan tidak ada log, teruskan --logging=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --logging=NONE
    
  • Konfigurasikan metrik yang dikirim ke Cloud Monitoring dengan meneruskan daftar nilai yang dipisahkan koma ke flag --monitoring perintah gcloud container clusters update. Lihat daftar lengkap sumber metrik yang tersedia. Misalnya, untuk mengumpulkan metrik sistem, teruskan --monitoring=SYSTEM. Atau, untuk tidak mengumpulkan metrik, teruskan --monitoring=NONE:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --monitoring=NONE
    
  • Konfigurasi apakah Google Cloud Managed Service for Prometheus diaktifkan menggunakan flag --enable-managed-prometheus atau --disable-managed-prometheus. Contoh:

    gcloud container clusters update CLUSTER_NAME \
        --location=COMPUTE_LOCATION \
        --enable-managed-prometheus
    

Terraform

  • Untuk mengonfigurasi kumpulan log dan metrik menggunakan Terraform, lihat blok logging_config dan monitoring_config di registry Terraform untuk google_container_cluster. Mengaktifkan pengumpulan log dari server API, penjadwal, dan pengelola pengontrol memerlukan penyedia Google Cloud Terraform versi 4.44.0 atau yang lebih baru.

  • Untuk mengetahui informasi umum tentang penggunaan Google Cloud dengan Terraform, baca artikel Terraform dengan Google Cloud.

Parameter Konfigurasi yang Tidak Digunakan Lagi

Jika sebelumnya Anda telah menggunakan parameter konfigurasi lama untuk mengonfigurasi dukungan logging dan pemantauan untuk cluster GKE, parameter tersebut tidak akan digunakan lagi. Tabel berikut menunjukkan parameter konfigurasi yang setara untuk mengganti flag yang tidak digunakan lagi.

Konfigurasi Lama Argumen create Lama Argumen update Lama Argumen create dan update baru
Nonaktif --no-enable-stackdriver-kubernetes --no-enable-stackdriver-kubernetes --logging=NONE
--monitoring=NONE
Khusus pemantauan sistem (Logging dinonaktifkan) --enable-stackdriver-kubernetes
--no-enable-cloud-logging
--logging-service=none
--monitoring-service=monitoring.googleapis.com/kubernetes
--logging=NONE
--monitoring=SYSTEM
Khusus logging sistem dan beban kerja (Monitoring dinonaktifkan) --enable-stackdriver-kubernetes
--no-enable-cloud-monitoring
--logging-service=logging.googleapis.com/kubernetes
--monitoring-service=none
--logging=SYSTEM,WORKLOAD
--monitoring=NONE
Hanya logging dan pemantauan sistem (beta) --enable-logging-monitoring-system-only --enable-logging-monitoring-system-only --logging=SYSTEM
--monitoring=SYSTEM
Logging dan pemantauan sistem dan beban kerja --enable-stackdriver-kubernetes --enable-stackdriver-kubernetes --logging=SYSTEM,WORKLOAD
--monitoring=SYSTEM

Langkah selanjutnya

  • Pelajari biaya terkait Cloud Logging, Cloud Monitoring, dan Google Cloud Managed Service for Prometheus dengan membaca halaman Harga.