Warnungen einrichten

Diese Seite richtet sich an Plattformadministratoren.

Auf dem Administratorcluster wird ein Alertmanager installiert, um Benachrichtigungen zu erfassen und zuzustellen. Weitere Informationen finden Sie unter Vordefinierte Benachrichtigungsrichtlinien.

Benachrichtigungskanäle konfigurieren

  1. Erstellen Sie eine ConfigMap mit Alertmanager-Konfigurationen im Namespace kube-system mit dem Label logmon: system_metrics. Für die Alertmanager-Konfiguration gilt die Syntax der Alertmanager-Konfigurationsregeln und sie sollte unter dem Feld data zu alertmanager.yml hinzugefügt werden. Weitere Informationen finden Sie in den Beispielkonfigurationsdateien.

    • Legen Sie die Benachrichtigungsmanager-Konfiguration fest, um die Benachrichtigungskanäle in der Benachrichtigungsmanager-Konfiguration zu definieren.

    • (Optional) Wenn Sie Slack-Webhooks verwenden möchten, finden Sie unter Slack-Webhooks Informationen zum Aktivieren eines Webhooks.

    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
    

    Ersetzen Sie CUSTOMIZED_ALERTMANAGER_CONFIGMAP_NAME durch den Namen Ihrer Konfigurationsdatei.

  2. Führen Sie den folgenden Befehl aus, um Ihre benutzerdefinierte LogMon-Ressource in einem Befehlszeileneditor zu öffnen:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. Fügen Sie in der benutzerdefinierten LogMon-Ressource das Feld alertmanagerConfigurationConfigmaps unter dem Feld spec/system_metrics/outputs/default_prometheus/deployment/alertmanager hinzu.

    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. Um die Änderungen an der benutzerdefinierten LogMon-Ressource zu speichern, speichern Sie im Befehlszeileneditor und beenden Sie ihn.

[Optional] Benachrichtigungsrichtlinien anpassen

  1. Erstellen Sie eine ConfigMap mit Prometheus-Regeln im Namespace kube-system mit logmon: system_metrics label. Für die Definition der Prometheus-Regeln gilt die Syntax der Prometheus-Benachrichtigungsregeln und der Prometheus-Aufzeichnungsregeln. Sie können in die ConfigMap mehrere Prometheus-Regeldateien aufnehmen. Weitere Informationen finden Sie in den Beispielkonfigurationsdateien.

    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. Führen Sie den folgenden Befehl aus, um Ihre benutzerdefinierte LogMon-Ressource in einem Befehlszeileneditor zu öffnen:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. Fügen Sie in der benutzerdefinierten LogMon-Ressource das Feld prometheusRulesConfigmaps unter dem Feld spec/system_metrics/outputs/default_prometheus/deployment/prometheus hinzu.

    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. Um die Änderungen an der benutzerdefinierten LogMon-Ressource zu speichern, speichern Sie im Befehlszeileneditor und beenden Sie ihn.

Benachrichtigungs-Dashboard

In Monitoring-Dashboards ist ein Dashboard für Benachrichtigungen verfügbar:

Benachrichtigungs-Dashboard

Alertmanager

Mit Alertmanager können Sie Benachrichtigungen von Clientanwendungen überwachen.

Sie können Benachrichtigungen mit Alertmanager prüfen und stummschalten:

Alertmanager-Benutzeroberfläche

Klicken Sie zum Aufrufen der Alertmanager-Oberfläche in Management Center auf dem Tab Monitoring auf die Schaltfläche Benachrichtigungen.

Vordefinierte Benachrichtigungsrichtlinien

Hier sind die vorinstallierten Benachrichtigungsregeln in prometheus aufgeführt:

Name Beschreibung
KubeAPIDown (kritisch) KubeAPI ist seit 15 Minuten nicht mehr in der Prometheus-Zielerkennung enthalten.
KubeClientErrors (Warnung) Fehlerrate der Kubernetes API-Serverfehler > 0,01 für 15 Minuten
KubeClientErrors (kritisch) Fehlerrate der Kubernetes API-Serverfehler > 0,1 für 15 Minuten
KubePodCrashLooping (Warnung) Der Pod befindet sich seit mehr als 15 Minuten im Absturzstatus.
KubePodNotReady (Warnung) Der Pod ist länger als 15 Minuten nicht im Status "Nicht bereit".
KubePersistentVolumeFillingUp (kritisch) Kostenlose Byte eines beanspruchten PersistentVolumes < 0,03.
Kube PersistentVolumeFillingUp (Warnung) Kostenlose Byte eines beanspruchten PersistentVolumes = 0,15
KubePersistentVolumeErrors (kritisch) Das nichtflüchtige Volume ist fünf Minuten lang in der Phase "Fehlgeschlagen" oder "Ausstehend".
KubeNodeNotReady (Warnung) Knoten ist seit mehr als 15 Minuten nicht mehr ungelesen.
KubeNodeCPUUsageHigh (kritisch) Die CPU-Auslastung beträgt > 80 %.
KubeNodeMemoryUsageHigh (kritisch) Die Speichernutzung des Knotens beträgt > 80 %.
NodeFilesystemSpaceFillingUp (Warnung) Die Nutzung des Knotendateisystems beträgt über 60 %.
NodeFilesystemSpaceFillingUp (kritisch) Die Nutzung des Dateisystem-Dateisystems beträgt mehr als 85 %.
CertManagerCertExpirySoon (Warnung) Ein Zertifikat läuft in 21 Tagen ab.
CertManagerCertNotReady (kritisch) Ein Zertifikat kann noch nicht für die Bereitstellung von Traffic nach 10 Minuten verwendet werden.
CertManagerHittingRateLimits (kritisch) Eine Ratenbegrenzung wurde erreicht, nachdem fünf Minuten lang Zertifikate erstellt/verlängert wurden.
DeploymentNotReady (kritisch). Ein Deployment im Administratorcluster ist seit mehr als 15 Minuten nicht bereit.

Weitere Informationen