Creazione di criteri di avviso

Questa pagina mostra come creare criteri di avviso per i cluster Anthos sui cluster Bare Metal.

Prima di iniziare

Devi disporre delle seguenti autorizzazioni per creare criteri di avviso:

  • monitoring.alertPolicies.create
  • monitoring.alertPolicies.delete
  • monitoring.alertPolicies.update

Disponi delle seguenti autorizzazioni se disponi di uno dei seguenti ruoli:

  • monitoring.alertPolicyEditor
  • monitoring.editor
  • Editor progetto
  • Proprietario progetto

Per controllare i ruoli, vai alla pagina IAM nella console Google Cloud.

Creazione di un criterio: Anthos sul server API del cluster baremetal non disponibile

In questo esercizio creerai un criterio di avviso per i server API Kubernetes dei cluster. Una volta impostato questo criterio, puoi pianificare la notifica quando il server API di un cluster non è disponibile.

  1. Scarica il file di configurazione del criterio: apiserver-unavailable.json

  2. Crea il criterio:

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

    Sostituisci POLICY_CONFIG con il percorso del file di configurazione appena scaricato.

  3. Visualizza i criteri di avviso:

    Console

    1. In Google Cloud Console, vai alla pagina Monitoring.

      Vai a Monitoring

    2. A sinistra, seleziona Avvisi.

    3. Nella sezione Criteri puoi visualizzare un elenco dei tuoi criteri di avviso.

      Nell'elenco, seleziona Anthos on baremetal cluster API server unavailable (critical) per visualizzare i dettagli del nuovo criterio. Nella sezione Condizioni, puoi vedere una descrizione del criterio. Ad esempio:

      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
    

    L'output mostra informazioni dettagliate sul criterio. Ad esempio:

    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
    

Creazione di criteri di avviso aggiuntivi

Questa sezione fornisce descrizioni e file di configurazione per un insieme di criteri di avviso consigliati.

Per creare un criterio, segui gli stessi passaggi utilizzati nell'allenamento precedente:

  1. Per scaricare il file di configurazione, fai clic sul link nella colonna a destra.

  2. Per creare il criterio, esegui gcloud alpha monitoring policies create.

Disponibilità dei componenti del piano di controllo

Nome avviso Descrizione Definizione dei criteri di avviso in Cloud Monitoring
Il server Anthos sull'API del cluster baremetal non è disponibile (Critica) Il server API non è attivo o il tempo di attività è inferiore al 99,99% al minuto apiserver-unavailable.json
Pianificazione del cluster Anthos su Baremetal non disponibile (critical) Lo scheduler non è attivo o il tempo di attività è inferiore al 99,99% al minuto scheduler-unavailable.json
Anthos su gestore di baremetal non disponibile (importante) Il gestore del controller è scomparso dal rilevamento delle metriche target controller-manager-unavailable.json

Sistema Kubernetes

Nome avviso Descrizione Definizione dei criteri di avviso in Cloud Monitoring
Anthos su loop di arresti anomali di pod baremetal (critical) Il pod è in uno stato di loop di arresto anomalo pod-crash-looping.json
Anthos su pod baremetal non pronto per più di un'ora (criterio) Il pod è in uno stato non pronto per più di un'ora pod-non-ready-1h.json
Anthos su volume permanente di alta frequenza di utilizzo permanente (crittografico) Il volume permanente rivendicato dovrebbe essere riempito persistente-volume-uso-alto.json
Il nodo Anthos su Baremetal non è pronto per più di un'ora (criterio) Il nodo è in uno stato non pronto per più di un'ora nodo-non-pronta-1h.json
L'utilizzo della CPU di Anthos su nodo baremetal supera l'80% (crittografico) Utilizzo CPU nodo superiore all'80% node-cpu-usage-high.json
L'utilizzo della memoria del nodo baremetal da parte di Anthos supera l'80% (valore critico) Utilizzo memoria nodo superiore all'80% node-memory-usage-high.json
L'utilizzo di Anthos sul disco del nodo baremetal supera l'80% (crittografico) L'utilizzo del disco del nodo è superiore all'80% node-disk-usage-high.json

Prestazioni di Kubernetes

Nome avviso Descrizione Definizione dei criteri di avviso in Cloud Monitoring
Il rapporto del numero di errori del server dell'API Anthos su Baremetal supera il 10% (Critico) Il server API restituisce errori per oltre il 10% delle richieste api-server-error-ratio-10-percent.json
Il rapporto del numero di errori del server dell'API Anthos su Baremetal supera il 5% (avviso) Il server API restituisce errori per oltre il 5% delle richieste api-server-error-ratio-5-percent.json
Anthos su leader baremetal eccd cambia troppo spesso (frequente) Il leader etcd cambia troppo spesso etcd-leader-change-too-frequent.json
Anthos su proposte bardet e così via non riuscite (frequente) Le proposte di etcd non vanno a buon fine ecc.-proposta-non-corretta-.json
Il server Anthos su baremetal etcd non è in quorum (crittografico) Il server etcd non è in quorum etcd-server-not-in-quorum.json

Ricevere notifiche

Dopo aver creato un criterio di avviso, puoi definire uno o più canali di notifica per il criterio. Esistono diversi tipi di canali di notifica. Ad esempio, puoi ricevere una notifica via email, su un canale Slack o su un'app per dispositivi mobili. Puoi scegliere i canali più adatti alle tue esigenze.

Per istruzioni su come configurare i canali di notifica, consulta la pagina Gestire i canali di notifica.