Halaman ini menunjukkan cara membuat kebijakan pemberitahuan berbasis metrik untuk cluster Google Distributed Cloud. Untuk mengetahui informasi selengkapnya tentang kebijakan pemberitahuan berbasis metrik, lihat Membuat kebijakan pemberitahuan batas metrik dalam Google Cloud dokumentasi kemampuan observasi.
Sebelum memulai
Anda harus memiliki izin berikut untuk membuat kebijakan pemberitahuan:
monitoring.alertPolicies.createmonitoring.alertPolicies.deletemonitoring.alertPolicies.update
Anda memiliki izin ini jika memiliki salah satu peran berikut: peran:
monitoring.alertPolicyEditormonitoring.editor- Editor Project
- Pemilik project
Untuk membuat kebijakan pemberitahuan berbasis log menggunakan
Google Cloud CLI, Anda juga harus memiliki serviceusage.serviceUsageConsumer
peran. Untuk mengetahui petunjuk cara menyiapkan kebijakan pemberitahuan berbasis log, lihat
Mengonfigurasi pemberitahuan berbasis log
dalam dokumentasi Google Cloud Observability.
Untuk memeriksa peran Anda, buka halaman IAM di Google Cloud Konsol.
Membuat kebijakan contoh: Server API tidak tersedia
Dalam latihan ini, Anda akan membuat kebijakan pemberitahuan untuk server Kubernetes API. Dengan kebijakan ini, Anda dapat mengatur agar mendapatkan notifikasi setiap kali server API cluster tidak tersedia.
- Download file konfigurasi kebijakan: apiserver-unavailable.json
- Buat kebijakan:
gcloud monitoring policies create --policy-from-file=POLICY_CONFIGGanti POLICY_CONFIG dengan jalur file konfigurasi yang baru saja Anda download.
- Lihat kebijakan pemberitahuan Anda:
Konsol
- Di Google Cloud Konsol, buka halaman Monitoring.
- Di sebelah kiri, pilih Alerting.
- Di bagian Policies, Anda dapat melihat daftar kebijakan pemberitahuan.
Dalam daftar, pilih Anthos cluster API server unavailable (critical) untuk melihat detail tentang kebijakan baru Anda. Di bagian Conditions, Anda dapat melihat deskripsi kebijakan. Contoh:
Policy violates when ANY condition is met Anthos cluster API server uptime is absent for 5m
gcloud
gcloud monitoring policies listOutput ini menampilkan informasi mendetail tentang kebijakan. Contoh:
combiner: OR conditions: - conditionAbsent: aggregations: - alignmentPeriod: 60s crossSeriesReducer: REDUCE_MEAN groupByFields: - resource.label.project_id - resource.label.location - resource.label.cluster_name - resource.label.namespace_name - resource.label.container_name - resource.label.pod_name perSeriesAligner: ALIGN_MAX duration: 300s filter: resource.type = "k8s_container" AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver") trigger: count: 1 displayName: Anthos cluster API server uptime is absent for 5m name: projects/…/alertPolicies/…/conditions/… displayName: Anthos cluster API server unavailable (critical) enabled: true mutationRecord: mutateTime: … mutatedBy: … name: projects/…/alertPolicies/…
Membuat kebijakan pemberitahuan tambahan
Bagian ini memberikan deskripsi dan file konfigurasi untuk kumpulan kebijakan pemberitahuan yang direkomendasikan.
Untuk membuat kebijakan, ikuti langkah-langkah yang sama seperti yang Anda gunakan dalam latihan sebelumnya:
- Untuk mendownload file konfigurasi, klik link di kolom kanan.
- Secara opsional, sesuaikan kondisi agar lebih sesuai dengan kebutuhan spesifik Anda. Misalnya, Anda dapat menambahkan filter tambahan untuk subset cluster, atau menyesuaikan nilai minimum untuk menyeimbangkan antara gangguan dan kekritisan.
- Jalankan
gcloud monitoring policies createuntuk membuat kebijakan.
Ketersediaan komponen bidang kontrol
| Nama notifikasi | Deskripsi | Definisi kebijakan pemberitahuan di Cloud Monitoring |
|---|---|---|
| Server API tidak tersedia (kritis) | Metrik waktu aktif server API tidak tersedia | apiserver-unavailable.json |
| Scheduler tidak tersedia (kritis) | Metrik waktu aktif scheduler tidak tersedia | scheduler-unavailable.json |
| Controller manager tidak tersedia (kritis) | Metrik waktu aktif controller manager tidak tersedia | controller-manager-unavailable.json |
Sistem Kubernetes
| Nama notifikasi | Deskripsi | Definisi kebijakan pemberitahuan di Cloud Monitoring |
|---|---|---|
| Looping error pod (peringatan) | Pod terus dimulai ulang dan mungkin dalam status looping error | pod-crash-looping.json |
| Pod tidak siap selama lebih dari satu jam (kritis) | Pod dalam status tidak siap selama lebih dari satu jam | pod-not-ready-1h.json |
| Penggunaan CPU container melebihi 80 persen (peringatan) | Penggunaan CPU container melebihi 80% batas | container-cpu-usage-high-reaching-limit.json |
| Penggunaan memori container melebihi 85 persen (peringatan) | Penggunaan memori container melebihi 85% batas | container-memory-usage-high-reaching-limit.json |
| Penggunaan volume persisten tinggi (kritis) | Volume persisten yang diklaim memiliki ruang kosong kurang dari 3 persen | persistent-volume-usage-high.json |
| Penggunaan CPU node melebihi 80 persen (peringatan) | Penggunaan CPU node melebihi 80% dari total yang dapat dialokasikan selama 5 menit | node-cpu-usage-high.json |
| Penggunaan disk node melebihi 85 persen (peringatan) | Kurang dari 15 persen ruang kosong per titik pemasangan disk selama 10 menit | node-disk-usage-high.json |
| Penggunaan memori node melebihi 80 persen (peringatan) | Penggunaan memori node melebihi 80% dari total yang dapat dialokasikan selama 5 menit | node-memory-usage-high.json |
| Node tidak siap selama lebih dari satu jam (kritis) | Node dalam status tidak siap selama lebih dari satu jam | node-not-ready-1h.json |
Performa Kubernetes
| Nama notifikasi | Deskripsi | Definisi kebijakan pemberitahuan di Cloud Monitoring |
|---|---|---|
| Rasio error server API melebihi 20 persen (kritis) | Server API memberikan error 5xx atau 429 pada lebih dari 20% dari semua permintaan per kata kerja selama 15 menit | apiserver-error-ratio-high.json |
| Perubahan pemimpin ETCD atau kegagalan proposal terlalu sering (peringatan) | Perubahan pemimpin etcd atau kegagalan proposal terjadi terlalu sering |
etcd-leader-changes-or-proposal-failures-frequent.json |
| Server ETCD tidak dalam kuorum (kritis) | Tidak ada proposal server etcd yang dilakukan selama 5 menit, sehingga mungkin kehilangan kuorum |
etcd-server-not-in-quorum.yaml |
| Penyimpanan ETCD melebihi batas 90 persen (peringatan) | Penggunaan penyimpanan etcd melebihi 90% batas |
etcd-storage-usage-high.json |
Kebijakan Pemberitahuan dengan PromQL
Kueri dalam kebijakan pemberitahuan juga dapat dinyatakan dalam PromQL, bukan MQL.
Misalnya, versi PromQL dari kebijakan API server error ratio exceeds 20
percent (critical) tersedia untuk didownload: apiserver-error-ratio-high-promql.json.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan Managed Service for Prometheus untuk dokumentasi Google Distributed Cloud dan Kebijakan pemberitahuan dengan PromQL untuk dokumentasi Cloud Monitoring.
Mendapatkan notifikasi
Setelah membuat kebijakan pemberitahuan, Anda dapat menentukan satu atau beberapa saluran notifikasi untuk kebijakan tersebut. Ada beberapa jenis saluran notifikasi. Misalnya, Anda dapat menerima notifikasi melalui email, saluran Slack, atau aplikasi seluler. Anda dapat memilih saluran yang sesuai dengan kebutuhan Anda.
Untuk mengetahui petunjuk cara mengonfigurasi saluran notifikasi, lihat Mengelola saluran notifikasi.