Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Surveiller les événements de cluster Kubernetes

Dernière mise à jour :Sep 21, 2026

La surveillance des événements complète la surveillance des ressources en offrant une meilleure réactivité en temps réel, une plus grande précision et une couverture étendue des scénarios. Par exemple, lorsqu'un pod est expulsé, qu'une extraction d'image échoue ou qu'un nœud signale une exception matérielle. Kubernetes ne conserve ces événements que pendant une heure par défaut. Pour détecter les anomalies avant l'expiration des données, ACK propose une surveillance des événements de bout en bout qui collecte, stocke, génère des alertes et archive les événements du cluster.

ACK redirige par défaut les événements du cluster vers Simple Log Service et les stocke gratuitement pendant 90 jours. Consultez Créer et utiliser un centre d'événements.

Fonctionnement

ACK s'appuie sur deux outils open source :

  • node-problem-detector (NPD) — Diagnostique les nœuds Kubernetes. NPD détecte les exceptions de nœud telles que les blocages du moteur Docker, les blocages du noyau Linux, les anomalies du trafic sortant et les exceptions liées aux descripteurs de fichiers. Il génère des événements de nœud et fonctionne conjointement avec kube-eventer pour boucler la gestion des alertes. Consultez NPD.

  • kube-eventer — Émetteur d'événements open source maintenu par ACK. kube-eventer transfère les événements Kubernetes vers des destinations telles que DingTalk, Simple Log Service et EventBridge. Il filtre les événements par niveau de gravité et permet la collecte en temps réel, la génération d'alertes et l'archivage asynchrone. Consultez kube-eventer.

image

Kubernetes émet deux types d'événements :

Type

Moment de la génération

Exemples

Normal

Transition de la machine d'états vers un état attendu

Pod planifié, conteneur démarré

Warning

Transition de la machine d'états vers un état inattendu

Pod expulsé, échec de l'extraction d'image, CrashLoopBackOff

Cas d'utilisation

Sélectionnez un scénario en fonction de vos besoins de surveillance :

Scénario

Quand l'utiliser

Scénario 1 : Utiliser NPD avec le centre d'événements Simple Log Service

Démarrage rapide. Redirigez tous les événements du cluster vers Simple Log Service pour la visualisation, l'interrogation et la génération d'alertes au même endroit.

Scénario 2 : Exécuter le diagnostic de nœud NPD

Détectez les exceptions au niveau des nœuds, telles que la pression sur le disque, les problèmes réseau et les défaillances du démon Docker, et déclenchez une gestion des alertes en boucle fermée.

Scénario 3 : Envoyer des alertes à DingTalk

Acheminez les événements Warning vers un groupe DingTalk pour des notifications ChatOps en temps réel.

Scénario 4 : Archiver les événements dans Simple Log Service

Persistez les événements Kubernetes dans un Logstore dédié pour le stockage à long terme, l'indexation et l'analyse hors ligne.

Scénario 5 : Acheminer les événements vers EventBridge

Construisez une architecture pilotée par les événements pour déclencher des corrections automatisées ou des workflows en aval à partir des événements du cluster.

Scénario 1 : Utiliser NPD avec le centre d'événements Simple Log Service

NPD fonctionne avec des plug-ins tiers pour détecter les exceptions de nœud et générer des événements de cluster. Le centre d'événements Simple Log Service collecte, stocke et visualise ces événements grâce à des fonctionnalités intégrées d'interrogation et de génération d'alertes.

Étape 1 : Installer le composant ack-node-problem-detector

Si vous avez sélectionné Install node-problem-detector and Create Event Center lors de la création du cluster, passez directement à l'Étape 2 : Consulter le centre d'événements. Pour installer le composant lors de la création du cluster, consultez Créer un cluster ACK managé.

Sinon, installez le composant manuellement :

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, choisissez Clusters.

  2. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, cliquez sur Add-ons.

  3. Dans l'onglet Observability, localisez et installez ack-node-problem-detector.

Étape 2 : Consulter le centre d'événements

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, choisissez Clusters.

  2. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Operations > Event Center.

  3. Sur la page Event Center, cliquez sur l'onglet Event Overview (Event Center) pour afficher tous les événements Kubernetes, leurs détails et le cycle de vie des pods. Consultez Collecter les événements Kubernetes.

Scénario 2 : Exécuter le diagnostic de nœud NPD

NPD associé à kube-eventer offre une gestion des alertes en boucle fermée pour les événements de nœud. Lorsque NPD détecte une exception, kube-eventer transfère l'événement vers les destinations configurées et génère une alerte.

Prérequis

Avant de commencer :

Vérifier que le DaemonSet est en cours d'exécution

  1. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Workloads > DaemonSets.

  2. Dans l'onglet DaemonSets, sélectionnez le namespace kube-system et vérifiez que ack-node-problem-detector-daemonset est en cours d'exécution. Lorsque NPD et kube-eventer sont actifs, le système redirige les événements et génère des alertes conformément à la configuration de kube-eventer.

Plug-ins de diagnostic de nœud

À partir de la version 1.2.29 de NPD, le plug-in de détection d'anomalies GPU est déployé en tant que DaemonSet distinct nommé ack-accel-health-monitor.

Plug-in

Ce qu'il vérifie

Seuil par défaut

Activé par défaut

ntp_check

Si les horloges système sont synchronisées via le protocole NTP (Network Time Protocol)

—

Oui

network_problem_check

Si l'utilisation de la table de suivi des connexions (conntrack) dépasse le seuil

90 %

Oui

inodes_usage_check

Si l'utilisation des inodes sur le disque système dépasse le seuil (ajustable)

80 %

Oui

pid_pressure_check

Si le ratio de processus PID dépasse le seuil maximal du noyau

85 %

Oui

docker_offline_check

Si le démon Docker est en cours d'exécution

—

Oui

fd_check

Si l'utilisation des descripteurs de fichiers dépasse le seuil (ajustable).

Remarque

Ce plug-in consomme des ressources importantes. Activez-le uniquement si nécessaire.

80 %

Non

ram_role_check

Si les nœuds disposent du rôle RAM requis et si l'AccessKey ID/secret est configuré

—

Non

nvidia_gpu_check

Si les GPU NVIDIA peuvent générer des messages Xid

—

Non

csi_hang_check

Si le plug-in CSI (Container Storage Interface) est en cours d'exécution

—

Non

ps_hang_check

Si des processus se trouvent dans un état de sommeil ininterruptible (D)

—

Non

public_network_check

Si les nœuds peuvent accéder à Internet

—

Non

irqbalance_check

Si le démon irqbalance est en cours d'exécution

—

Non

Scénario 3 : Envoyer des alertes à DingTalk

Un chatbot DingTalk recevant des alertes d'événements Kubernetes constitue un modèle ChatOps typique. Lorsqu'un événement de niveau Warning se produit, kube-eventer pousse un message vers le groupe DingTalk via un webhook.

Prérequis

Avant de commencer :

Étape 1 : Ajouter un chatbot DingTalk

  1. Cliquez sur Group settings dans le coin supérieur droit de la zone de discussion pour ouvrir Group Settings.

  2. Cliquez sur Bot > Add Robot. Sélectionnez Custom comme type de chatbot.

  3. Sur la page Robot details, cliquez sur Add pour ouvrir la page Add Robot. Définissez les paramètres ci-dessous, acceptez les conditions d'utilisation du service DingTalk Custom Robot et cliquez sur Finished :

    Paramètre

    Description

    Modifier la photo de profil

    Avatar du chatbot. Facultatif.

    Nom du chatbot

    Nom d'affichage du chatbot.

    Ajouter au groupe

    Groupe DingTalk auquel ajouter le chatbot.

    Paramètres de sécurité

    Trois options : Custom Keywords, signatures supplémentaires et adresses IP (ou blocs CIDR). Seuls les Custom Keywords filtrent les alertes d'événements de cluster. Sélectionnez Custom Keywords et saisissez Warning. Ajoutez jusqu'à 10 mots-clés pour affiner le filtre.

  4. Cliquez sur Copy pour copier l'URL du webhook.

    Sur la page ChatBot , cliquez sur Settings button à côté du chatbot pour modifier son avatar et son nom, activer ou désactiver l'envoi de messages, réinitialiser l'URL du webhook ou supprimer le chatbot.

Étape 2 : Configurer kube-eventer pour envoyer des événements à DingTalk

  1. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Applications > Helm.

  2. Sur la page Helm, localisez ack-node-problem-detector et cliquez sur Update dans la colonne Actions.

  3. Définissez les paramètres ci-dessous, puis cliquez sur OK :

    • Dans la section npd, définissez enabled sur false.

    • Définissez eventer.sinks.dingtalk.enabled sur true.

    • Saisissez le jeton extrait de l'URL du webhook copiée.

Résultat

kube-eventer prend effet 30 secondes après le déploiement. Les événements de niveau Warning déclenchent des alertes dans le groupe DingTalk.

Message notification

Scénario 4 : Archiver les événements dans Simple Log Service

Redirigez les événements Kubernetes vers Simple Log Service pour un stockage persistant, une indexation et un audit. Pour une conservation à long terme ou un archivage hors ligne, configurez le Logstore et éventuellement l'expédition des données vers MaxCompute ou Object Storage Service (OSS). Consultez Créer et utiliser un centre d'événements.

Prérequis

Avant de commencer :

Étape 1 : Créer un projet et un Logstore Simple Log Service

  1. Connectez-vous à la console Simple Log Service.

  2. Dans la section Projects, cliquez sur Create Project. Dans le panneau Create Project, définissez les paramètres et cliquez sur Create.

    Créez le projet Simple Log Service dans la même région que votre cluster. La transmission intra-région utilise le réseau interne, ce qui réduit la latence et élimine les coûts de bande passante inter-régions. Cet exemple crée un projet nommé k8s-log4j en Chine (Hangzhou).
  3. Dans la section Projects, cliquez sur k8s-log4j pour ouvrir la page des détails du projet.

  4. Dans le volet Logstores, cliquez sur + pour ouvrir le panneau Create Logstore.

  5. Définissez les paramètres et cliquez sur OK. Cet exemple crée un Logstore nommé k8s-logstore.

    Dans le panneau Create Logstore, les éléments de configuration clés incluent :

    • Logstore Type : Standard

    • Data Retention Period : 30 jours (nombre fixe de jours)

    • Number of Shards : 2

    • Automatic Shard Split : activé, avec un maximum de 64 divisions

    • Record Public IP : activé

    • WebTracking : désactivé par défaut

  6. Une fois le Logstore créé, cliquez sur Data Import Wizard pour ouvrir la boîte de dialogue Import Data.

  7. Sélectionnez Log4j 1/2 et terminez la configuration. Cet exemple utilise les paramètres par défaut.

    Dans la zone Log Description de la page de configuration de la source de données, Log4j est décrit comme composé de trois composants : niveaux de priorité (ERROR, WARN, INFO, DEBUG), destination de sortie et format de sortie. L'Appender Log4j Alibaba Cloud Log peut envoyer des journaux vers Simple Log Service (SLS) (pour l'adresse de téléchargement et les instructions d'utilisation, reportez-vous à GitHub). Dans la zone Usage Notes, cliquez sur le lien View Help pour obtenir des conseils détaillés sur l'ingestion, puis cliquez sur Next.

Étape 2 : Configurer kube-eventer pour rediriger les événements vers Simple Log Service

  1. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Applications > Helm.

  2. Sur la page Helm, localisez ack-node-problem-detector et cliquez sur Update dans la colonne Actions.

  3. Définissez les paramètres ci-dessous, puis cliquez sur OK :

    • Dans la section npd, définissez enabled sur false.

    • Définissez eventer.sinks.sls.enabled sur true.

Étape 3 : Vérifier la collecte des événements et configurer l'indexation

  1. Déclenchez un événement de cluster — par exemple, supprimez un pod ou créez une application.

  2. Connectez-vous à la console Simple Log Service pour afficher les événements collectés. Consultez Consommer des données de journal à l'aide du SDK Simple Log Service.

    Dans la boîte de dialogue Consumption Preview, sélectionnez un nom d'index (par exemple, k8s-event), définissez le Shard et la plage horaire, puis cliquez sur Preview. Si les données de journal sont correctement chargées, le tableau affiche des enregistrements de journalisation au format JSON des événements Kubernetes, y compris des champs tels que level, eventId, namespace, reason et message.

  3. Configurez l'indexation pour l'interrogation et l'analyse. Consultez Créer des index.

    1. Dans la section Projects, cliquez sur le nom du projet.

    2. Cliquez sur Logstore management icon à côté du nom du Logstore et sélectionnez Search & Analysis.

    3. Dans le coin supérieur droit, cliquez sur Enable Index.

    4. Dans le panneau Search & Analysis, définissez les paramètres et cliquez sur OK. > Note: La configuration de l'index prend effet dans un délai d'une minute et s'applique uniquement aux données ingérées après l'activation ou la modification de l'index.

    5. (Facultatif) Pour archiver les événements en vue d'une analyse hors ligne, expédiez les données du Logstore vers MaxCompute ou Object Storage Service (OSS). Consultez Créer une tâche d'expédition de données de la nouvelle version pour expédier les données vers MaxCompute et Créer une tâche d'expédition de données OSS (nouvelle version).

Scénario 5 : Acheminer les événements vers EventBridge

EventBridge est un service d'événements serverless qui connecte les services Alibaba Cloud, les applications personnalisées et les applications SaaS (Software as a Service) de manière standardisée et centralisée. L'acheminement des événements ACK vers EventBridge vous permet de construire une architecture faiblement couplée et pilotée par les événements — par exemple, pour déclencher une correction automatisée lorsque des événements spécifiques se produisent. Consultez Qu'est-ce qu'EventBridge ?

Prérequis

Avant de commencer :

Activer EventBridge en tant que destination d'événements

  1. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Applications > Helm.

  2. Sur la page Helm, localisez ack-node-problem-detector et cliquez sur Update dans la colonne Actions.

  3. Définissez eventer.sinks.eventbridge.enabled sur true, puis cliquez sur OK.

    
    eventer:
      accessKeyId: ""
      accessKeySecret: ""
      enabled: true
      env:
      - TZ: Asia/Shanghai
      image:
        pullPolicy: Always
        repository: registry-cn-hangzhou-vpc.ack.aliyuncs.com/acs/kube-eventer
        tag: v1.2.11-0620284-aliyun
      othersinks: null
      resources:
        limits:
          cpu: "1.0"
          memory: 1024Mi
        requests:
          cpu: 100m
          memory: 200Mi
      sinks:
        dingtalk:
          enabled: false
          label: ""
          level: Warning
          monitorkinds: Node,Pod
          monitornamespaces: ""
          token: ""
        eventbridge:
          enabled: false
    

Afficher les événements Kubernetes dans EventBridge

  1. Connectez-vous à la console EventBridge.

  2. Dans le volet de navigation de gauche, cliquez sur Event Buses.

  3. Sur la page Event Buses, cliquez sur le bus d'événements cible.

  4. Dans le volet de navigation de gauche, cliquez sur Event Tracking.

  5. Sélectionnez une méthode de requête, définissez les conditions et cliquez sur Query.

  6. Localisez l'événement et cliquez sur Details dans la colonne Actions. Consultez Interroger les événements par ID d'événement.

Réinstaller le composant ack-node-problem-detector

Réinstallez le composant lorsque vous modifiez la destination de redirection (par exemple, de Simple Log Service vers DingTalk) ou mettez à jour la configuration du composant.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, choisissez Clusters.

  2. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Workloads > Jobs.

  3. Sur la page Jobs, cliquez sur More à côté de kube-eventer-init-v1.7-xxxx et cliquez sur Delete.

  4. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Applications > Helm.

  5. Sur la page Helm, supprimez le composant ack-node-problem-detector.

  6. Sur la page Clusters, localisez le cluster et cliquez sur son nom. Dans le volet de navigation de gauche, choisissez Operations > Add-ons.

  7. Dans l'onglet Observability, localisez et réinstallez ack-node-problem-detector.