Configurazione degli avvisi

Questa pagina è rivolta agli amministratori della piattaforma.

Sul cluster di amministrazione è installato un Alertmanager per la raccolta e la consegna degli avvisi. Per le regole di avviso predefinite, consulta i criteri di avviso predefiniti.

Configura i canali di notifica

  1. Crea una mappa di configurazione con configurazioni di AlertManager nello spazio dei nomi kube-system con l'etichetta logmon: system_metrics. La configurazione di AlertManager ha la stessa sintassi delle regole di configurazione di AlertManager e deve essere aggiunta a alertmanager.yml nel campo data. Consulta i file di configurazione di esempio.

    • Segui la configurazione di AlertManager per definire i canali di notifica nella configurazione di AlertManager.

    • (Facoltativo) Se vuoi utilizzare i webhook Slack, consulta la sezione Webhook Slack per informazioni sull'abilitazione del webhook.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: CUSTOMIZED_ALERTMANAGER_CONFIGMAP_NAME
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_metrics
    data:
      # The file name must be alertmanager.yml
      alertmanager.yml: |
        # Add the customized alertmanager configuration here
    

    Sostituisci CUSTOMIZED_ALERTMANAGER_CONFIGMAP_NAME con il nome del file di configurazione.

  2. Esegui questo comando per aprire la risorsa personalizzata LogMon in un editor della riga di comando:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. Nella risorsa personalizzata LogMon, aggiungi il campo alertmanagerConfigurationConfigmaps all'interno del campo spec/system_metrics/outputs/default_prometheus/deployment/alertmanager.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                alertmanager:
                  alertmanagerConfigurationConfigmaps:
                  # The name should match the configmap name created in step 1.
                  - "CUSTOMIZED_ALERTMANAGER_CONFIGMAP_NAME"
    
  4. Per salvare le modifiche apportate alla risorsa personalizzata LogMon, salva e esci dall'editor della riga di comando.

(Facoltativo) Personalizza i criteri di avviso

  1. Crea una configmap con le regole Prometheus nello spazio dei nomi kube-system con logmon: system_metrics label. La definizione delle regole di Prometheus ha la stessa sintassi delle regole di avviso e delle regole di registrazione di Prometheus. Puoi includere più file di regole Prometheus nella configurazione. Consulta i file di configurazione di esempio.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: <customized-prometheus-rules-configmap-name>
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_metrics
    data:
      # The file name must be unique across all customized prometheus rule files.
      <a-unique-file-name>: |
      # Add customized recording rules here
       
    
      # The file name must be unique across all customized prometheus rule files.
      <a-unique-file-name>: |
      # Add customized alerting rules here
      
    
  2. Esegui questo comando per aprire la risorsa personalizzata LogMon in un editor della riga di comando:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. Nella risorsa personalizzata LogMon, aggiungi il campo prometheusRulesConfigmaps nel campo spec/system_metrics/outputs/default_prometheus/deployment/prometheus.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                prometheus:
                  prometheusRulesConfigmaps:
                  # The name should match the configmap name created in step 1.
                  - "<customized-prometheus-rules-configmap-name>"
    
  4. Per salvare le modifiche apportate alla risorsa personalizzata LogMon, salva e esci dall'editor della riga di comando.

Dashboard della panoramica degli avvisi

In Dashboard Dashboard è disponibile una dashboard della panoramica degli avvisi:

Dashboard avvisi Panoramica

Criteri di avviso predefiniti

Ecco le regole di avviso preinstallate nel prometheus.

Nome Descrizione
KubeAPIDown (importante) KubeAPI è scomparso da Prometheus Target Discovery per 15 minuti.
KubeClientErrors (avviso) Errori del server server dell'API Kubernetes > 0,01 per 15 minuti.
KubeClientErrors (critico) Errori del server server dell'API Kubernetes > 0.1 per 15 minuti.
KubePodCrashLooping (avviso) Il pod è in stato di loop da più di 15 minuti.
KubePodNotReady (avviso) Il pod è in uno stato non pronto da più di 15 minuti.
KubePersistentVolumeFillingUp (importante) Byte gratuiti di un oggetto "PersistentVolume" richiesto; 0,03.
KubePersistentVolumeFillingUp (avviso) Byte gratuiti di un oggetto "PersistentVolume" richiesto; 0,15.
KubePersistentVolumeErrors (critico) Il volume permanente è in fase "Non riuscita" o "In attesa" per 5 minuti.
KubeNodeNotReady (avviso) Il nodo non è pronto per più di 15 minuti.
KubeNodeCPUUsageHigh (critico) L'utilizzo della CPU del nodo è > 80%.
KubeNodeMemoryUsageHigh (critico) Memoria utilizzata dal nodo: > 80%.
NodeFilesystemSpaceFillingUp (avviso) L'utilizzo del file system del nodo è > 60%.
NodeFilesystemSpaceFillingUp (importante) L'utilizzo del file system del nodo è > 85%.
CertManagerCertExpirySoon (avviso) Un certificato scadrà tra 21 giorni.
CertManagerCertNotReady (critico) Un certificato non è pronto per essere utilizzato per gestire il traffico dopo 10 minuti.
CertManagerHitingRateLimits (critico) È stato raggiunto un limite di frequenza di creazione/rinnovo di certificati per 5 minuti.
DeploymentNotReady (importante). Un deployment sul cluster di amministrazione è in uno stato non pronto da più di 15 minuti.