Alertas

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

  1. Crea un ConfigMap con configuración de alertmanager en el espacio de nombres kube-system con la etiqueta logmon: system_metrics. La configuración de alertmanager tiene la misma sintaxis que las reglas de configuración de alertmanager y se debe agregar a alertmanager.yml en el campo data. 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
    
  2. 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
    
  3. En el recurso personalizado de LogMon, agrega el campo alertmanagerConfigurationConfigmaps debajo 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. 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)

  1. Crea un ConfigMap con reglas de Prometheus en el espacio de nombres kube-system con logmon: 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
      
    
  2. 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
    
  3. En el recurso personalizado de LogMon, agrega el campo prometheusRulesConfigmaps debajo del 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. 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:

Panel de descripción general de las alertas

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.