Envoyer les journaux du plan de contrôle à CloudWatch Logs - Amazon EKS

Aidez à améliorer cette page

Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.

Envoyer les journaux du plan de contrôle à CloudWatch Logs

La journalisation de plan de contrôle Amazon EKS fournit des journaux d'audit et de diagnostics directement à partir du plan de contrôle Amazon EKS vers CloudWatch Logs dans votre compte. Ces journaux vous permettent de sécuriser et d'exécuter facilement vos clusters. Vous pouvez sélectionner les types de journaux spécifiques dont vous avez besoin. Les journaux sont envoyés en tant que flux de journaux vers un groupe pour chaque cluster Amazon EKS dans CloudWatch. Vous pouvez utiliser les filtres d’abonnement CloudWatch pour effectuer une analyse en temps réel des journaux ou pour les transférer vers d’autres services (les journaux seront encodés en Base64 et compressés au format gzip). Pour plus d'informations, consultez Journalisation Amazon CloudWatch.

Vous pouvez commencer à utiliser la journalisation de plan de contrôle d'Amazon EKS en choisissant les types de journal que vous voulez activer pour chaque cluster Amazon EKS nouveau ou existant. Vous pouvez activer ou désactiver chaque type de journal cluster par cluster à l’aide de la AWS Management Console, de la CLI AWS (version 1.16.139 ou supérieure) ou de l’API Amazon EKS. Lorsqu'ils sont activés, les journaux sont envoyés automatiquement depuis le cluster Amazon EKS vers CloudWatch Logs dans le même compte.

Lorsque vous utilisez la journalisation de plan de contrôle d’Amazon EKS, des frais standards Amazon EKS vous sont facturés pour chaque cluster que vous exécutez. Les frais d'ingestion et de stockage de données CloudWatch Logs standard vous sont facturés pour les journaux envoyés à CloudWatch Logs à partir de vos clusters. Vous sont facturées également les ressources AWS, comme les instances Amazon EC2 ou les volumes Amazon EBS, que vous allouez dans le cadre de votre cluster.

Les types de journal de plan de contrôle de cluster suivants sont disponibles. Chaque type de journal correspond à un composant du plan de contrôle Kubernetes. Pour en savoir plus sur ces composants, consultez Kubernetes Components dans la documentation Kubernetes.

Serveur d'APIapi ()

Le serveur API de votre cluster est le composant du plan de contrôle qui expose l’API Kubernetes. Si vous activez les journaux du serveur d'API au moment du lancement du cluster, ou peu après, les journaux incluent les indicateurs qui ont été utilisés pour démarrer le serveur d'API. Pour plus d'informations, consultez kube-apiserver et la stratégie d'audit dans la documentation Kubernetes.

Auditaudit ()

Les journaux d’audit Kubernetes fournissent un enregistrement des utilisateurs individuels, des administrateurs ou des composants système qui ont affecté votre cluster. Pour plus d'informations, consultez la section Audit dans la documentation Kubernetes.

Authentificateurauthenticator ()

Les journaux d'authentification sont propres à Amazon EKS. Ces journaux représentent le composant de plan de contrôle utilisé par Amazon EKS pour l'authentification de contrôle d'accès basé sur les rôles (RBAC) Kubernetes à l'aide d'informations d'identification IAM. Pour de plus amples informations, consultez Organiser et surveiller les ressources du cluster.

Gestionnaire de contrôleurcontrollerManager ()

Le gestionnaire de contrôleurs gère les boucles de contrôle principales fournies avec Kubernetes. Pour plus d'informations, consultez kube-controller-manager dans la documentation Kubernetes.

Planificateurscheduler ()

Le composant planificateur gère quand et où exécuter les pods dans votre cluster. Pour plus d'informations, consultez kube-scheduler dans la documentation Kubernetes.

Activer ou désactiver les journaux du plan de contrôle

Par défaut, les journaux du plan de contrôle du cluster ne sont pas envoyés à CloudWatch Logs. Vous devez activer chaque type de journal individuellement afin d'envoyer des journaux pour votre cluster. Les taux d'ingestion, de stockage des archives et d'analyse des données CloudWatch Logs s'appliquent aux journaux de plan de contrôle activés. Pour plus d’informations, consultez Tarification CloudWatch.

Pour mettre à jour la configuration de la journalisation du plan de contrôle, Amazon EKS a besoin d'un maximum de cinq adresses IP disponibles dans chaque sous-réseau. Lorsque vous activez un type de journal, les journaux sont envoyés avec un niveau de détail de journal 2.

Vous pouvez activer ou désactiver les journaux du plan de contrôle à l’aide de AWS Management Console ou de l’interface CLI AWS.

AWS Management Console

  1. Ouvrez la console Amazon EKS.

  2. Choisissez le nom du cluster pour afficher les informations le concernant.

  3. Sélectionnez l’onglet Observabilité.

  4. Dans la section Journalisation du plan de contrôle, sélectionnez Gérer la journalisation.

  5. Pour chaque type de journal, choisissez si celui-ci doit être activé ou désactivé. Par défaut, chaque type de journal est désactivé.

  6. Choisissez Save changes (Enregistrer les modifications) pour terminer.

AWS CLI

  1. Vous pouvez vérifier la version de votre CLI AWS à l’aide de la commande suivante.

    aws --version

    Si la version de votre CLI AWS est inférieure à 1.16.139, vous devez d’abord la mettre à jour vers la version la plus récente. Pour installer ou mettre à niveau l’AWS CLI, consultez la section Installation de l’interface de la ligne de commande AWS du Guide de l’utilisateur de l’interface de la ligne de commande AWS.

  2. Mettez à jour la configuration d’exportation de journal de plan de contrôle de votre cluster à l’aide de la commande CLI AWS suivante. Remplacez my-cluster par le nom de votre cluster et spécifiez les valeurs d'accès au point de terminaison souhaitées.

    Note

    La commande suivante envoie tous les types de journal disponibles à CloudWatch Logs.

    aws eks update-cluster-config \ --region region-code \ --name my-cluster \ --logging '{"clusterLogging":[{"types":["api","audit","authenticator","controllerManager","scheduler"],"enabled":true}]}'

    L'exemple qui suit illustre un résultat.

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "InProgress", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }
  3. Surveillez l'état de la mise à jour de votre configuration de journal avec la commande suivante, en indiquant le nom de votre cluster et l'ID de mise à jour qui ont été renvoyés par la commande précédente. Votre mise à jour est terminée lorsqu'elle affiche l'état Successful.

    aws eks describe-update \ --region region-code\ --name my-cluster \ --update-id 883405c8-65c6-4758-8cee-2a7c1340a6d9

    L'exemple qui suit illustre un résultat.

    { "update": { "id": "883405c8-65c6-4758-8cee-2a7c1340a6d9", "status": "Successful", "type": "LoggingUpdate", "params": [ { "type": "ClusterLogging", "value": "{\"clusterLogging\":[{\"types\":[\"api\",\"audit\",\"authenticator\",\"controllerManager\",\"scheduler\"],\"enabled\":true}]}" } ], "createdAt": 1553271814.684, "errors": [] } }

Affichage des journaux de plan de contrôle de cluster

Une fois que vous avez activé des types de journal de plan de contrôle pour votre cluster Amazon EKS, vous pouvez les afficher sur la console CloudWatch.

Pour en savoir plus sur l'affichage, l'analyse et la gestion des journaux dans CloudWatch, consultez le Guide de l'utilisateur Amazon CloudWatch Logs.

  1. Ouvrez la console cloudwatch. Ce lien ouvre la console et affiche vos groupes de journaux disponibles actuels et les filtre avec le préfixe /aws/eks.

  2. Choisissez le cluster pour lequel vous souhaitez afficher les journaux. Le format du nom de groupe de journaux est /aws/eks/my-cluster/cluster.

  3. Choisissez le flux de journal à afficher. La liste suivante décrit le format de nom de flux du journal pour chaque type de journal.

    Note

    À mesure que les données de flux de journal augmentent, les noms de flux de journal font l'objet d'une rotation. Lorsqu'il existe plusieurs flux de journaux pour un type de journal particulier, vous pouvez afficher le dernier flux en recherchant son nom avec l'heure du dernier événement (Last event time).

    • Journaux de composant de serveur d'API Kubernetes (api) : kube-apiserver-1234567890abcdef01234567890abcde

    • Audit (audit : kube-apiserver-audit-1234567890abcdef01234567890abcde

    • Authentificateur (authenticator) : authenticator-1234567890abcdef01234567890abcde

    • Gestionnaire de contrôleur (controllerManager) : kube-controller-manager-1234567890abcdef01234567890abcde

    • Planificateur (scheduler) : kube-scheduler-1234567890abcdef01234567890abcde

  4. Parcourez les événements du flux de journaux.

    Par exemple, vous devez voir les indicateurs de serveur d'API initiaux correspondant au cluster lorsque vous consultez le haut de kube-apiserver-1234567890abcdef01234567890abcde .

    Note

    Si vous ne voyez pas les journaux du serveur d’API au début du flux de journaux, il est probable que le fichier journal du serveur d’API a été l’objet d’une rotation sur le serveur avant d’activer la journalisation du serveur API sur le serveur. Les fichiers journaux qui sont l’objet d’une rotation avant l’activation de la journalisation du serveur API ne peuvent pas être exportés vers CloudWatch.

Toutefois, vous pouvez créer un nouveau cluster avec la même version de Kubernetes et activer la journalisation du serveur API lorsque vous créez le cluster. Les clusters avec la même version de plateforme ont les mêmes indicateurs activés, donc vos indicateurs doivent correspondre aux indicateurs du nouveau cluster. Lorsque vous avez fini d'afficher les indicateurs du nouveau cluster dans CloudWatch, vous pouvez supprimer le nouveau cluster.