Installez l' CloudWatch agent avec la collecte de métriques Prometheus sur les clusters Amazon EKS et Kubernetes - Amazon CloudWatch

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Installez l' CloudWatch agent avec la collecte de métriques Prometheus sur les clusters Amazon EKS et Kubernetes

Cette section explique comment configurer l' CloudWatch agent avec la surveillance Prometheus dans un cluster exécutant Amazon EKS ou Kubernetes. Après cela, l'agent récupère et importe automatiquement les métriques pour les applications suivantes exécutées dans ce cluster.

  • AWS App Mesh

  • NGINX

  • Memcached

  • Java/ JMX

  • HAProxy

  • Fluent Bit

Vous pouvez également configurer l'agent pour récupérer et importer à partir d'applications et sources Prometheus supplémentaires.

Avant de suivre ces étapes pour installer l' CloudWatch agent de collecte de métriques Prometheus, vous devez disposer d'un cluster exécuté sur EKS Amazon ou d'un cluster Kubernetes exécuté sur une instance Amazon. EC2

VPCexigences relatives aux groupes de sécurité

Les règles d'entrée des groupes de sécurité pour les charges de travail Prometheus doivent ouvrir les ports Prometheus à l'agent pour récupérer les métriques Prometheus par CloudWatch l'adresse IP privée.

Les règles de sortie du groupe de sécurité pour l' CloudWatch agent doivent permettre à l'agent de se connecter au CloudWatch port des charges de travail Prometheus via une adresse IP privée.

Installez l' CloudWatch agent avec la collecte de métriques Prometheus sur les clusters Amazon EKS et Kubernetes

Cette section explique comment configurer l' CloudWatch agent avec la surveillance Prometheus dans un cluster exécutant Amazon EKS ou Kubernetes. Après cela, l'agent récupère et importe automatiquement les métriques pour les applications suivantes exécutées dans ce cluster.

  • AWS App Mesh

  • NGINX

  • Memcached

  • Java/ JMX

  • HAProxy

  • Fluent Bit

Vous pouvez également configurer l'agent pour récupérer et importer à partir d'applications et sources Prometheus supplémentaires.

Avant de suivre ces étapes pour installer l' CloudWatch agent de collecte de métriques Prometheus, vous devez disposer d'un cluster exécuté sur EKS Amazon ou d'un cluster Kubernetes exécuté sur une instance Amazon. EC2

VPCexigences relatives aux groupes de sécurité

Les règles d'entrée des groupes de sécurité pour les charges de travail Prometheus doivent ouvrir les ports Prometheus à l'agent pour récupérer les métriques Prometheus par CloudWatch l'adresse IP privée.

Les règles de sortie du groupe de sécurité pour l' CloudWatch agent doivent permettre à l'agent de se connecter au CloudWatch port des charges de travail Prometheus via une adresse IP privée.

Configuration des IAM rôles

La première étape consiste à configurer le IAM rôle nécessaire dans le cluster. Il existe deux méthodes :

  • Configurez un IAM rôle pour un compte de service, également appelé rôle de service. Cette méthode fonctionne à la fois pour le type de EC2 lancement et pour le type de lancement Fargate.

  • Ajoutez une IAM politique au IAM rôle utilisé pour le cluster. Cela ne fonctionne que pour le type de EC2 lancement.

Configurer un rôle de service (type de EC2 lancement et type de lancement Fargate)

Pour configurer une fonction du service, saisissez la commande suivante. Remplacez MyCluster avec le nom du cluster.

eksctl create iamserviceaccount \ --name cwagent-prometheus \ --namespace amazon-cloudwatch \ --cluster MyCluster \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --approve \ --override-existing-serviceaccounts

Ajouter une politique au IAM rôle du cluster (type de EC2 lancement uniquement)

Pour configurer la IAM politique dans un cluster pour le support de Prometheus
  1. Ouvrez la EC2 console Amazon à l'adresse https://console.aws.amazon.com/ec2/.

  2. Dans le panneau de navigation, choisissez Instances.

  3. Vous devez trouver le préfixe du nom de IAM rôle du cluster. Pour ce faire, cochez la case à côté du nom d'une instance qui se trouve dans le cluster, puis choisissez Actions, Paramètres de l'instance, Joindre/Remplacer IAM un rôle. Copiez ensuite le préfixe du IAM rôle, par exempleeksctl-dev303-workshop-nodegroup.

  4. Ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  5. Dans le panneau de navigation, choisissez Roles (Rôles).

  6. Utilisez la zone de recherche pour rechercher le préfixe que vous avez copié précédemment au cours de cette procédure et choisissez ce rôle.

  7. Choisissez Attach Policies (Attacher des politiques).

  8. Utilisez le champ de recherche pour trouver CloudWatchAgentServerPolicy. Cochez la case à côté de CloudWatchAgentServerPolicy, puis choisissez Attacher une politique.

Installation de l' CloudWatchagent pour collecter les métriques Prometheus

Vous devez installer l' CloudWatch agent dans le cluster pour collecter les métriques. La manière d'installer l'agent est différente pour les EKS clusters Amazon et les clusters Kubernetes.

Supprimer les versions précédentes de l' CloudWatch agent avec le support de Prometheus

Si vous avez déjà installé une version de l' CloudWatch agent compatible avec Prometheus dans votre cluster, vous devez supprimer cette version en saisissant la commande suivante. Cette étape est nécessaire uniquement pour les versions précédentes de l'agent avec prise en charge de Prometheus. Il n'est pas nécessaire de supprimer l' CloudWatch agent qui active Container Insights sans l'assistance de Prometheus.

kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch

Installation de l' CloudWatch agent sur les EKS clusters Amazon avec le type de EC2 lancement

Pour installer l' CloudWatch agent avec le support de Prometheus sur un cluster EKS Amazon, procédez comme suit.

Pour installer l' CloudWatch agent avec le support de Prometheus sur un cluster Amazon EKS
  1. Entrez la commande suivante pour vérifier si l'espace de noms amazon-cloudwatch a déjà été créé :

    kubectl get namespace
  2. Si le fichier amazon-cloudwatch n'est pas affiché dans les résultats, créez-le en entrant la commande suivante :

    kubectl create namespace amazon-cloudwatch
  3. Pour déployer l'agent avec la configuration par défaut et lui demander d'envoyer des données à la AWS région dans laquelle il est installé, entrez la commande suivante :

    kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml

    En revanche; pour que l'agent envoie des données à une autre région, procédez comme suit :

    1. Téléchargez le YAML fichier de l'agent en saisissant la commande suivante :

      curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
    2. Ouvrez le fichier avec un éditeur de texte et recherchez le bloc cwagentconfig.json du fichier.

    3. Ajoutez les lignes en surbrillance, en spécifiant la région souhaitée :

      cwagentconfig.json: | { "agent": { "region": "us-east-2" }, "logs": { ...
    4. Enregistrez le fichier et déployez l'agent à l'aide de votre fichier mis à jour.

      kubectl apply -f prometheus-eks.yaml

Installation de l' CloudWatch agent sur des EKS clusters Amazon avec le type de lancement Fargate

Pour installer l' CloudWatch agent compatible avec Prometheus sur un cluster EKS Amazon avec le type de lancement Fargate, procédez comme suit.

Pour installer l' CloudWatch agent compatible avec Prometheus sur un cluster EKS Amazon avec le type de lancement Fargate
  1. Entrez la commande suivante pour créer un profil Fargate pour CloudWatch l'agent afin qu'il puisse s'exécuter dans le cluster. Remplacez MyCluster avec le nom du cluster.

    eksctl create fargateprofile --cluster MyCluster \ --name amazon-cloudwatch \ --namespace amazon-cloudwatch
  2. Pour installer l' CloudWatch agent, entrez la commande suivante. Remplacez MyCluster avec le nom du cluster. Ce nom est utilisé dans le nom du groupe de journaux qui stocke les événements de journaux collectés par l'agent et est également utilisé comme dimension pour les métriques collectées par l'agent.

    Remplacez region avec le nom de la région dans laquelle vous souhaitez que les métriques soient envoyées. Par exemple, us-west-1.

    curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | kubectl apply -f -

Installation de l' CloudWatch agent sur un cluster Kubernetes

Pour installer l' CloudWatch agent compatible avec Prometheus sur un cluster exécutant Kubernetes, entrez la commande suivante :

curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml | sed "s/{{cluster_name}}/MyCluster/;s/{{region_name}}/region/" | kubectl apply -f -

Remplacez MyCluster avec le nom du cluster. Ce nom est utilisé dans le nom du groupe de journaux qui stocke les événements de journaux collectés par l'agent et est également utilisé comme dimension pour les métriques collectées par l'agent.

Remplacez region avec le nom de la AWS région dans laquelle vous souhaitez que les métriques soient envoyées. Par exemple, us-west-1.

Vérification de l'exécution de l'agent

Sur les clusters Amazon EKS et Kubernetes, vous pouvez entrer la commande suivante pour confirmer que l'agent est en cours d'exécution.

kubectl get pod -l "app=cwagent-prometheus" -n amazon-cloudwatch

Si les résultats incluent un module d' CloudWatch agent unique dans l'Runningétat, l'agent est en cours d'exécution et collecte les métriques Prometheus. Par défaut, l' CloudWatchagent collecte des métriques pour App MeshNGINX, Memcached, Java/ et toutes JMX les minutes. HAProxy Pour plus d'informations sur ces métriques, consultez Métriques Prometheus collectées par l'agent CloudWatch . Pour obtenir des instructions sur la façon d'afficher vos statistiques Prometheus dans, voir CloudWatch Affichage de vos métriques Prometheus

Vous pouvez également configurer l' CloudWatch agent pour collecter des métriques auprès d'autres exportateurs Prometheus. Pour de plus amples informations, veuillez consulter Récupération de sources Prometheus supplémentaires et importation de ces métriques.