Se instala un Alertmanager en el clúster de administrador para recopilar y entregar alertas. Consulta Políticas de alertas predefinidas para reglas de alertas predefinidas.
Configura los canales de notificaciones
Crea un ConfigMap con configuración de alertmanager en el espacio de nombres
kube-system
con la etiquetalogmon: system_metrics
. La configuración de alertmanager tiene la misma sintaxis que las reglas de configuración de alertmanager y se debe agregar aalertmanager.yml
en el campodata
. Consulta los archivos de configuración de muestra.Sigue la configuración de Alertmanager para definir los canales de notificaciones en la configuración de Alertmanager.
Opcional: Si deseas usar los webhooks de Slack, consulta Webhooks de Slack para obtener información sobre cómo habilitarlos.
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
Ejecuta el siguiente comando para abrir tu recurso personalizado de
LogMon
en un editor de línea de comandos:kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
En el recurso personalizado de
LogMon
, agrega el campoalertmanagerConfigurationConfigmaps
debajo del campospec/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>"
Para guardar los cambios en el recurso personalizado de
LogMon
, guarda el editor de línea de comandos y sal de él.
Personaliza las políticas de alertas (opcional)
Crea un ConfigMap con reglas de Prometheus en el espacio de nombres
kube-system
conlogmon: system_metrics label
. La definición de reglas de Prometheus tiene la misma sintaxis que las reglas de alertas y las reglas de grabación de Prometheus. Puedes incluir varios archivos de reglas de Prometheus en el ConfigMap. Consulta los archivos de configuración de muestra.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 …
Ejecuta el siguiente comando para abrir tu recurso personalizado de
LogMon
en un editor de línea de comandos:kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
En el recurso personalizado de
LogMon
, agrega el campoprometheusRulesConfigmaps
debajo del campospec/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>"
Para guardar los cambios en el recurso personalizado de
LogMon
, guarda el editor de línea de comandos y sal de él.
Panel de descripción general de las alertas
Hay un panel de descripción general de alertas disponible en los paneles de Monitoring:
Políticas de alertas predefinidas
Estas son las reglas de alertas preinstaladas en Prometheus.
Nombre | Descripción |
---|---|
KubeAPIDown (crítico) | KubeAPI desapareció del descubrimiento de objetivos de Prometheus durante 15 minutos. |
KubeClientErrors (advertencia) | Proporción de errores del cliente del servidor de la API de Kubernetes > 0.01 durante 15 minutos. |
KubeClientErrors (crítico) | Proporción de errores del cliente del servidor de la API de Kubernetes > 0.1 durante 15 minutos. |
KubePodCrashLooping (advertencia) | El Pod ha estado en el bucle de fallas durante más de 15 minutos. |
KubePodNotReady (advertencia) | El Pod está en estado no listo durante más de 15 minutos. |
KubePersistentVolumeFillingUp (crítico) | Bytes disponibles de un PersistentVolume reclamado < 0.03. |
KubePersistentVolumeFillingUp (advertencia) | Bytes disponibles de un PersistentVolume reclamado < 0.15. |
KubePersistentVolumeErrors (crítico) | El volumen persistente está en una fase con errores o pendiente durante 5 minutos. |
KubeNodeNotReady (advertencia) | El nodo no se ha leído durante más de 15 minutos. |
KubeNodeCPUUsageHigh (crítico) | El uso de CPU del nodo es superior al 80%. |
KubeNodeMemoryUsageHigh (crítico) | El uso de memoria del nodo es superior al 80%. |
NodeFilesystemSpaceFillingUp (advertencia) | El uso del sistema de archivos del nodo es superior al 60%. |
NodeFilesystemSpaceFillingUp (crítico) | El uso del sistema de archivos del nodo es superior al 85%. |
CertManagerAbsent (crítico) | Cert-manager desapareció de Prometheus durante 10 min. Los certificados no se pueden crear ni renovar correctamente. |
CertManagerCertExpirySoon (advertencia) | Un certificado vence en 21 días. |
CertManagerCertNotReady (crítico) | Un certificado no está listo para usarse a fin de entregar tráfico después de 10 min. |
CertManagerHittingRateLimits (crítico) | Se alcanzó un límite de frecuencia de creación/renovación de certificados durante 5 min. |