Auf dem Administratorcluster wird ein Benachrichtigungsmanager installiert, um Benachrichtigungen zu erfassen und zuzustellen. Weitere Informationen finden Sie unter Vordefinierte Benachrichtigungsrichtlinien.
Benachrichtigungskanäle konfigurieren
Erstellen Sie eine ConfigMap mit Alertmanager-Konfigurationen im Namespace
kube-system
mit dem Labellogmon: system_metrics
. Für die Alertmanager-Konfiguration gilt die Syntax der Alertmanager-Konfigurationsregeln und sie sollte unter dem Felddata
zualertmanager.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
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
Fügen Sie in der benutzerdefinierten
LogMon
-Ressource das FeldalertmanagerConfigurationConfigmaps
unter dem Feldspec/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>"
Um die Änderungen an der benutzerdefinierten
LogMon
-Ressource zu speichern, speichern Sie im Befehlszeileneditor und beenden Sie ihn.
[Optional] Benachrichtigungsrichtlinien anpassen
Erstellen Sie eine ConfigMap mit Prometheus-Regeln im Namespace
kube-system
mitlogmon: 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 …
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
Fügen Sie in der benutzerdefinierten
LogMon
-Ressource das FeldprometheusRulesConfigmaps
unter dem Feldspec/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>"
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:
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 %. |
CertManagerAbsent (kritisch) | Cert-Manager ist seit 10 Minuten nicht mehr in Prometheus vorhanden. Zertifikate werden möglicherweise nicht ordnungsgemäß erstellt / erneuert. |
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. |