Créer des règles d'alerte

Cette page explique comment créer des règles d'alerte pour les clusters GKE sur VMware.

Avant de commencer

Vous devez disposer des autorisations suivantes pour créer des règles d'alerte :

  • monitoring.alertPolicies.create
  • monitoring.alertPolicies.delete
  • monitoring.alertPolicies.update

Vous obtiendrez ces autorisations si vous disposez de l'un des rôles suivants :

  • monitoring.alertPolicyEditor
  • monitoring.editor
  • Éditeur de projet
  • Propriétaire du projet

Pour vérifier vos rôles, accédez à la page IAM dans Google Cloud Console.

Créer une règle : serveur d'API du cluster d'administrateur indisponible

Dans cet exercice, vous allez créer une règle d'alerte pour les serveurs d'API Kubernetes des clusters d'administrateur. Une fois cette règle en place, vous pouvez faire en sorte d'être averti dès que le serveur d'API d'un cluster d'administrateur tombe en panne.

  1. Téléchargez le fichier de configuration de la règle : admin-cluster-apiserver-unavailable.json.

  2. Créez la règle :

    gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
    

    Remplacez POLICY_CONFIG par le chemin d'accès du fichier de configuration que vous venez de télécharger.

  3. Affichez vos règles d'alerte :

    Console

    1. Dans Google Cloud Console, accédez à la page Monitoring.

      Accéder à Monitoring

    2. Sur la gauche, sélectionnez Alertes.

    3. Sous Règles, vous pouvez voir la liste de vos règles d'alerte.

      Dans la liste, sélectionnez Serveur d'API du cluster d'administrateur GKE On-Prem indisponible (critique) pour afficher les détails de votre nouvelle règle. Sous Conditions, vous pouvez consulter une description de la règle. Exemple :

      Policy violates when ANY condition is met
      
      GKE on-prem admin cluster API server uptime is absent
      
      GKE on-prem admin cluster API server uptime is less than 99.99% per minute
      

    gcloud

    gcloud alpha monitoring policies list

    La sortie affiche des informations détaillées sur la règle. Exemple :

    combiner: OR
    conditions:
    - conditionAbsent:
        aggregations:
        - alignmentPeriod: 60s
          crossSeriesReducer: REDUCE_MEAN
          groupByFields:
          - resource.label.project_id
          - resource.label.location
          - resource.label.cluster_name
          - resource.label.namespace_name
          - resource.label.container_name
          perSeriesAligner: ALIGN_MAX
        duration: 300s
        filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system"
          AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver")
        trigger:
          count: 1
      displayName: GKE on-prem admin cluster API server uptime is absent
      name: projects/…/alertPolicies/17065318077071152828/conditions/17065318077071154437
    - conditionThreshold:
        aggregations:
        - alignmentPeriod: 120s
          crossSeriesReducer: REDUCE_MEAN
          groupByFields:
          - resource.label.project_id
          - resource.label.location
          - resource.label.cluster_name
          - resource.label.namespace_name
          - resource.label.container_name
          perSeriesAligner: ALIGN_MAX
        comparison: COMPARISON_LT
        duration: 300s
        filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system"
          AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver")
        thresholdValue: 119.0
        trigger:
          count: 1
      displayName: GKE on-prem admin cluster API server uptime is less than 99.99% per
        minute
      name: projects/…/alertPolicies/17065318077071152828/conditions/17065318077071151950
    creationRecord:
      mutateTime: …
      mutatedBy: …
    displayName: GKE on-prem admin cluster API server unavailable (critical)
    enabled: true
    mutationRecord:
      mutateTime: …
      mutatedBy: …
    name: projects/xxxxxx/alertPolicies/17065318077071152828
    

Créer des règles d'alerte supplémentaires

Cette section fournit des descriptions et des fichiers de configuration pour un ensemble de règles d'alerte recommandées.

Pour créer une règle, suivez les étapes que vous avez utilisées dans l'exercice précédent :

  1. Cliquez sur le lien dans la colonne de droite pour télécharger le fichier de configuration.

  2. Exécutez gcloud alpha monitoring policies create pour créer la règle.

Disponibilité des composants du plan de contrôle de cluster d'administrateur

Nom de l'alerte Description Définition de la règle d'alerte dans Cloud Monitoring
Serveur d'API du cluster d'administrateur GKE On-Prem indisponible (critique) Le serveur d'API du cluster d'administrateur n'est pas opérationnel ou la disponibilité est inférieure à 99,99 % par minute. admin-cluster-apiserver-unavailable.json
Programmeur du cluster d'administrateur GKE On-Prem indisponible (critique) Le programmeur du cluster d'administrateur n'est pas opérationnel ou la disponibilité est inférieure à 99,99 % par minute. admin-cluster-scheduler-unavailable.json
Gestionnaire du contrôleur de cluster d'administrateur GKE On-Prem indisponible (critique) Le gestionnaire du contrôleur de cluster d'administrateur n'est pas opérationnel, ou la disponibilité est inférieure à 99,99 % par minute admin-cluster-controller-manager-unavailable.json
Etcd du cluster d'administrateur GKE On-Prem indisponible (critique) L'etcd du cluster d'administrateur n'est pas opérationnel ou le temps d'activité est inférieur à 99,99 % par minute. admin-cluster-etcd-unavailable.json

Disponibilité des composants du plan de contrôle de cluster d'utilisateur

Les alertes du plan de contrôle du cluster d'utilisateur sont basées sur des métriques. Pour la plupart des métriques de cluster, le champ cluster_name est le nom du cluster lui-même. Toutefois, pour les métriques du plan de contrôle du cluster d'utilisateur, le champ cluster_name correspond au nom du cluster d'administrateur, et le champ namespace_name au nom du cluster d'utilisateur.

Vous pouvez le constater dans une capture d'écran de la section Créer un tableau de bord de temps d'activité du plan de contrôle.

Nom de l'alerte Description Définition de la règle d'alerte dans Cloud Monitoring
Serveur d'API du cluster d'utilisateur GKE On-Prem indisponible (critique) Le serveur d'API du cluster d'utilisateur n'est pas opérationnel ou la disponibilité est inférieure à 99,99 % par minute. user-cluster-apiserver-unavailable.json
Programmeur du cluster d'utilisateur GKE On-Prem indisponible (critique) Le programmeur du cluster d'utilisateur n'est pas opérationnel ou le temps d'activité est inférieur à 99,99 % par minute. user-cluster-scheduler-unavailable.json
Gestionnaire du contrôleur de cluster d'utilisateur GKE On-Prem indisponible (critique) Le gestionnaire du contrôleur de cluster d'utilisateur n'est pas opérationnel ou la disponibilité est inférieure à 99,99 % par minute. user-cluster-controller-manager-unavailable.json
Etcd du cluster d'utilisateur GKE On-Prem indisponible (critique) L'etcd du cluster d'utilisateur n'est pas opérationnel ou le temps d'activité est inférieur à 99,99 % par minute. user-cluster-etcd-unavailable.json

Système Kubernetes

Nom de l'alerte Description Définition de la règle d'alerte dans Cloud Monitoring
Pod GKE On-Prem en boucle de plantage (critique) Le pod se trouve dans une boucle de plantage. pod-crash-looping.json
Pod GKE On-Prem indisponible pendant plus d'une heure (critique) Le pod est dans un état non prêt pendant plus d'une heure. pod-not-ready-1h.json
Utilisation intensive du volume persistant GKE On-Prem (critique) Le volume persistant déclaré devrait être rempli. persistent-volume-usage-high.json
Nœud GKE On-Prem non prêt pendant plus d'une heure (critique) Le nœud est dans un état non prêt pendant plus d'une heure. node-not-ready-1h.json

Performances de Kubernetes

Nom de l'alerte Description Définition de la règle d'alerte dans Cloud Monitoring
Le taux d'erreur du serveur d'API du cluster d'administrateur GKE On-Prem dépasse 10 % (critique) Le serveur d'API du cluster d'administrateur renvoie des erreurs pour plus de 10 % des requêtes. admin-cluster-apiserver-error-ratio-10-percent.json
Le taux d'erreur du serveur d'API du cluster d'administrateur GKE On-Prem dépasse 5 % (avertissement) Le serveur d'API du cluster d'administrateur renvoie des erreurs pour plus de 5 % des requêtes. admin-cluster-apiserver-error-ratio-5-percent.json
Le taux d'erreur du serveur d'API du cluster d'utilisateur GKE On-Prem dépasse 10 % (critique) Le serveur d'API du cluster d'utilisateur renvoie des erreurs pour plus de 10 % des requêtes. user-cluster-apiserver-error-ratio-10-percent.json
Le taux d'erreur du serveur d'API du cluster d'utilisateur GKE On-Prem dépasse 5 % (avertissement) Le serveur d'API du cluster d'utilisateur renvoie des erreurs pour plus de 5 % des requêtes. user-cluster-apiserver-error-ratio-5-percent.json

Recevoir des notifications

Une fois que vous avez créé une règle d'alerte, vous pouvez définir un ou plusieurs canaux de notification pour cette règle. Il existe plusieurs types de canaux de notification. Par exemple, vous pouvez être averti par e-mail, ou via un canal Slack ou une application mobile. Vous pouvez choisir les canaux qui répondent à vos besoins.

Pour obtenir des instructions sur la configuration des canaux de notification, consultez la page Gérer les canaux de notification.