Configurer des alertes

Cette page s'adresse aux administrateurs de plates-formes.

Un gestionnaire d'alerte est installé sur le cluster d'administrateur pour collecter et transmettre les alertes. Pour en savoir plus sur les règles d'alerte prédéfinies, consultez la page Règles d'alerte prédéfinies.

Configurer les canaux de notification

  1. Créez un ConfigMap avec les configurations alertmanager dans l'espace de noms kube-system avec le libellé logmon: system_metrics. La configuration du gestionnaire d'alerte utilise la même syntaxe que les règles de configuration du gestionnaire d'alertes et doit être ajoutée à alertmanager.yml dans le champ data. Consultez les exemples de fichiers de configuration.

    • Suivez la configuration du gestionnaire d'alertes pour définir les canaux de notification dans la configuration d'Alertmanager.

    • (Facultatif) Si vous souhaitez utiliser des webhooks Slack, consultez la section Webhooks Slack pour en savoir plus sur l'activation du 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
    

    Remplacez CUSTOMIZED_ALERTMANAGER_CONFIGMAP_NAME par le nom de votre fichier de configuration.

  2. Exécutez la commande suivante pour ouvrir la ressource personnalisée LogMon dans un éditeur de ligne de commande :

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. Dans la ressource personnalisée LogMon, ajoutez le champ alertmanagerConfigurationConfigmaps sous le champ 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. Pour enregistrer les modifications apportées à la ressource personnalisée LogMon, enregistrez votre éditeur de ligne de commande et quittez-le.

[Facultatif] Personnaliser les règles d'alerte

  1. Créez un ConfigMap avec des règles Prometheus dans l'espace de noms kube-system à l'aide du logmon: system_metrics label. La définition des règles Prometheus utilise la même syntaxe que les règles d'alerte Prometheus et les règles d'enregistrement Prometheus. Vous pouvez inclure plusieurs fichiers de règles Prometheus dans le fichier ConfigMap. Consultez les exemples de fichiers de configuration.

    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. Exécutez la commande suivante pour ouvrir la ressource personnalisée LogMon dans un éditeur de ligne de commande :

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. Dans la ressource personnalisée LogMon, ajoutez le champ prometheusRulesConfigmaps sous le champ 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. Pour enregistrer les modifications apportées à la ressource personnalisée LogMon, enregistrez votre éditeur de ligne de commande et quittez-le.

Tableau de bord "Vue d'ensemble des alertes"

Un tableau de bord de vue d'ensemble des alertes est disponible dans les tableaux de bord Monitoring :

Tableau de bord "Vue d'ensemble des alertes"

Alertmanager

Alertmanager vous permet de surveiller les notifications d'alerte des applications clientes.

Vous pouvez inspecter et mettre sous silence les alertes à l'aide d'Alertmanager :

Interface utilisateur d'Alertmanager

Pour accéder à l'interface d'Alertmanager, cliquez sur le bouton Alertes de l'onglet Surveillance du centre de gestion.

Règles d'alerte prédéfinies

Voici les règles d'alerte pré-installées dans prometheus.

Nom Description
KubeAPIDown (critique) KubeAPI a disparu de la détection de cible Prometheus pendant 15 minutes.
KubeClientErrors (avertissement) Le taux d'erreurs client sur le serveur d'API Kubernetes est supérieur à 0,01 pendant 15 minutes.
KubeClientErrors (critique) Le taux d'erreurs client sur le serveur d'API Kubernetes est supérieur à 0,1 pendant 15 minutes.
KubePodCrashLooping (avertissement) Le pod plante en boucle depuis plus de 15 minutes.
KubePodNotReady (avertissement) Le pod est en état non opérationnel depuis plus de 15 minutes.
KubePersistentVolumeFillingUp (critique) Espace libre en octets d'un objet PersistentVolume revendiqué inférieur à 0,03.
KubePersistentVolumeFillingUp (avertissement) Espace libre en octets d'un objet PersistentVolume inférieur à 0,15.
KubePersistentVolumeErrors (critique) Le volume persistant demeure en phase d'échec ou d'attente pendant 5 minutes.
KubeNodeNotReady (avertissement) Le nœud n'a pas été opérationnel pendant plus de 15 minutes.
KubeNodeCPUUsageHigh (critique) L'utilisation du processeur du nœud est supérieure à 80 %.
KubeNodeMemoryUsageHigh (critique) L'utilisation de la mémoire du nœud est supérieure à 80 %.
NodeFilesystemSpaceFillingUp (avertissement) L'utilisation du système de fichiers du nœud est supérieure à 60 %.
NodeFilesystemSpaceFillingUp (critique) L'utilisation du système de fichiers du nœud est supérieure à 85 %.
CertManagerCertExpirySoon (avertissement) Un certificat arrive à expiration dans 21 jours.
CertManagerCertNotReady (critique) Un certificat n'est pas utilisable pour diffuser le trafic au bout de 10 minutes.
CertManagerHittingRateLimits (critique) Une limite de débit a été atteinte lors en cours de création/renouvellement des certificats pendant 5 minutes.
DeploymentNotReady (critique) Un déploiement sur un cluster d'administrateur est en état non opérationnel depuis plus de 15 minutes.

Étapes suivantes