Halaman ini menunjukkan cara membuat kebijakan pemberitahuan untuk GDCV untuk cluster Bare Metal.
Sebelum memulai
Anda harus memiliki izin berikut untuk membuat kebijakan pemberitahuan:
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.update
Anda memiliki izin ini jika memiliki salah satu peran berikut:
monitoring.alertPolicyEditor
monitoring.editor
- Editor Project
- Pemilik Project
Untuk memeriksa peran Anda, buka halaman IAM di Konsol Google Cloud.
Membuat kebijakan: Anthos di server API cluster baremetal tidak tersedia
Dalam latihan ini, Anda akan membuat kebijakan pemberitahuan untuk server Kubernetes API cluster. Dengan menerapkan kebijakan ini, Anda dapat mengatur agar diberi tahu setiap kali server API cluster tidak tersedia.
Download file konfigurasi kebijakan: apiserver-unavailable.json
Buat kebijakan:
gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
Ganti POLICY_CONFIG dengan jalur file konfigurasi yang baru saja Anda download.
Melihat kebijakan pemberitahuan Anda:
Konsol
Di konsol Google Cloud, buka halaman Monitoring.
Di sebelah kiri, pilih Alerting.
Di bagian Kebijakan, Anda dapat melihat daftar kebijakan pemberitahuan.
Dalam daftar tersebut, pilih Anthos on baremetal cluster API server unavailable (critical) untuk melihat detail tentang kebijakan baru Anda. Di bagian Kondisi, Anda dapat melihat deskripsi kebijakan. Contoh:
Policy violates when ANY condition is met Anthos on baremetal cluster API server uptime is absent Anthos on baremetal cluster API server uptime is less than 99.99% per minute
gcloud
gcloud alpha monitoring policies list
Output menunjukkan 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 resource.labels.namespace_name = "kube-system" AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver") trigger: count: 1 displayName: Anthos on baremetal cluster API server uptime is absent name: projects/…/alertPolicies/12404845535868002666/conditions/12404845535868003603 - conditionThreshold: aggregations: - alignmentPeriod: 120s 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 comparison: COMPARISON_LT duration: 300s filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system" AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver") thresholdValue: 119.0 trigger: count: 1 displayName: Anthos on baremetal cluster API server uptime is less than 99.99% per minute name: projects/…/alertPolicies/12404845535868002666/conditions/12404845535868004540 creationRecord: mutateTime: … mutatedBy: … displayName: Anthos on baremetal cluster API server unavailable (critical) enabled: true mutationRecord: mutateTime: … mutatedBy: … name: projects/…/alertPolicies/12404845535868002666
Membuat kebijakan pemberitahuan tambahan
Bagian ini memberikan deskripsi dan file konfigurasi untuk serangkaian kebijakan pemberitahuan yang direkomendasikan.
Untuk membuat kebijakan, ikuti langkah-langkah yang sama dengan yang Anda gunakan dalam latihan sebelumnya:
Untuk mendownload file konfigurasi, klik link di kolom sebelah kanan.
Untuk membuat kebijakan, jalankan
gcloud alpha monitoring policies create
.
Anda dapat mendownload dan menginstal semua contoh kebijakan pemberitahuan yang dijelaskan dalam dokumen ini dengan skrip berikut:
# 1. Create a directory named alert_samples:
mkdir alert_samples && cd alert_samples
declare -a alerts=("apiserver-unavailable.json" "scheduler-unavailable.json" "controller-manager-unavailable.json" "pod-crash-looping.json" "container-memory-usage-high-reaching-limit.json"
"container-cpu-usage-high-reaching-limit.json" "pod-not-ready-1h.json" "persistent-volume-usage-high.json" "node-not-ready-1h.json" "node-cpu-usage-high.json" "node-memory-usage-high.json"
"node-disk-usage-high.json" "api-server-error-ratio-10-percent.json" "api-server-error-ratio-5-percent.json" "etcd-leader-changes-too-frequent.json" "etcd-proposals-failed-too-frequent.json"
"etcd-server-not-in-quorum.json" "etcd-storage-usage-high.json")
# 2. Download all alert samples into the alert_samples/ directory:
for x in "${alerts[@]}"
do
wget https://cloud.google.com/anthos/clusters/docs/bare-metal/1.15/samples/${x}
done
# 3. (optional) Uncomment and provide your project ID to set the default project
# for gcloud commands:
# gcloud config set project <PROJECT_ID>
# 4. Create alert policies for each of the downloaded samples:
for x in "${alerts[@]}"
do
gcloud alpha monitoring policies create --policy-from-file=${x}
done
Kontrol ketersediaan komponen bidang
Nama notifikasi | Deskripsi | Definisi kebijakan pemberitahuan di Cloud Monitoring |
---|---|---|
Anthos di server API cluster baremetal tidak tersedia (penting) | Server API tidak aktif atau waktu beroperasinya kurang dari 99,99% per menit | apiserver-unavailable.json |
Penjadwal Anthos pada cluster baremetal tidak tersedia (penting) | Scheduler tidak aktif atau waktu beroperasi kurang dari 99,99% per menit | scheduler-unavailable.json |
Anthos di pengelola pengontrol baremetal tidak tersedia (penting) | Pengelola pengontrol menghilang dari penemuan target metrik | controller-manager-unavailable.json |
Sistem Kubernetes
Nama notifikasi | Deskripsi | Definisi kebijakan pemberitahuan di Cloud Monitoring |
---|---|---|
Anthos pada loop error pod baremetal (penting) | Pod dimulai ulang dan mungkin dalam status loop error | pod-crash-looping.json |
Penggunaan memori Anthos on baremetal container melebihi 85 persen (peringatan) | Penggunaan memori container melebihi 85% dari batas | container-memory-usage-high-reaching-limit.json |
Penggunaan Anthos pada container baremetal melebihi 80 persen (peringatan) | Penggunaan CPU container melebihi batas 80% | container-cpu-usage-high-reaching-limit.json |
Anthos di pod baremetal tidak siap selama lebih dari satu jam (penting) | Pod dalam status tidak siap selama lebih dari satu jam | pod-not-ready-1h.json |
Penggunaan Anthos pada volume persisten baremetal yang tinggi (penting) | Volume persisten yang diklaim diperkirakan akan terisi | persistent-volume-usage-high.json |
Anthos pada node baremetal tidak siap selama lebih dari satu jam (penting) | Node dalam status tidak siap selama lebih dari satu jam | node-not-ready-1h.json |
Penggunaan Anthos pada CPU node baremetal melebihi 80 persen (penting) | Penggunaan CPU node lebih dari 80% | node-cpu-usage-high.json |
Penggunaan memori Anthos pada node baremetal melebihi 80 persen (penting) | Penggunaan memori node melebihi 80% | node-memory-usage-high.json |
Penggunaan Anthos pada disk node baremetal melebihi 80 persen (penting) | Penggunaan disk node lebih dari 80% | node-disk-usage-high.json |
Performa Kubernetes
Nama notifikasi | Deskripsi | Definisi kebijakan pemberitahuan di Cloud Monitoring |
---|---|---|
Rasio jumlah error server Anthos on baremetal API melebihi 10 persen (penting) | Server API menampilkan error untuk lebih dari 10% permintaan | api-server-error-ratio-10-percent.json |
Rasio jumlah error server Anthos on baremetal melebihi 5 persen (peringatan) | Server API menampilkan error untuk lebih dari 5% permintaan | api-server-error-ratio-5-percent.json |
Anthos on baremetal etcd leader terlalu sering berubah (penting) | Pemimpin etcd terlalu sering berubah |
etcd-leader-changes-too-frequent.json |
Proposal Anthos on baremetal etcd terlalu sering gagal (penting) | Proposal etcd terlalu sering gagal |
etcd-proposals-failed-too-frequent.json |
Anthos on baremetal etcd server tidak ada dalam kuorum (penting) | Server etcd tidak ada di kuorum |
etcd-server-not-in-quorum.json |
Anthos on baremetal etcd storage melebihi batas 90 persen (penting) | Penggunaan penyimpanan etcd melebihi 90% batas |
etcd-storage-usage-high.json |
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 diberi tahu melalui email, saluran Slack, atau aplikasi seluler. Anda dapat memilih saluran yang sesuai dengan kebutuhan.
Untuk petunjuk mengenai cara mengonfigurasi saluran notifikasi, lihat Mengelola saluran notifikasi.