Membuat kebijakan pemberitahuan

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.

  1. Download file konfigurasi kebijakan: apiserver-unavailable.json

  2. Buat kebijakan:

    gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG

    Ganti POLICY_CONFIG dengan jalur file konfigurasi yang baru saja Anda download.

  3. Melihat kebijakan pemberitahuan Anda:

    Konsol

    1. Di konsol Google Cloud, buka halaman Monitoring.

      Buka Monitoring

    2. Di sebelah kiri, pilih Alerting.

    3. 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:

  1. Untuk mendownload file konfigurasi, klik link di kolom sebelah kanan.

  2. 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.