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

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

Cette section explique comment configurer l'agent CloudWatch avec 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'agent CloudWatch pour la collecter les métriques Prometheus, vous devez disposer d'un cluster s'exécutant sur Amazon EKS ou d'un cluster Kubernetes s'exécutant sur une instance Amazon EC2.

Exigences de groupe de sécurité VPC

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

Les règles de sortie du groupe de sécurité de l'agent CloudWatch doivent lui permettre de se connecter au port des applications Prometheus par IP privée.

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

Cette section explique comment configurer l'agent CloudWatch avec 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'agent CloudWatch pour la collecter les métriques Prometheus, vous devez disposer d'un cluster s'exécutant sur Amazon EKS ou d'un cluster Kubernetes s'exécutant sur une instance Amazon EC2.

Exigences de groupe de sécurité VPC

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

Les règles de sortie du groupe de sécurité de l'agent CloudWatch doivent lui permettre de se connecter au port des applications Prometheus par IP privée.

Configuration de rôles IAM

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

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

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

Configurer une fonction du service (type de lancement EC2 et type de lancement Fargate)

Pour configurer une fonction du service, saisissez la commande suivante. Remplacez MyCluster par 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

Ajoutez une politique au rôle IAM du groupe de nœuds (type de lancement EC2 uniquement)

Pour configurer la politique IAM d’un groupe de nœuds pour la prise en charge de Prometheus
  1. Ouvrez la console Amazon EC2 à 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 du rôle IAM pour le cluster. Pour ce faire, cochez la case en regard du nom d’une instance qui se trouve dans le cluster, puis choisissez Actions, Sécurité, Modifier le rôle IAM. Copiez ensuite le préfixe du rôle IAM, par exemple eksctl-dev303-workshop-nodegroup.

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

  5. Dans le panneau de navigation, sélectionnez 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 la zone de recherche pour rechercher CloudWatchAgentServerPolicy. Cochez la case en regard de CloudWatchAgentServerPolicy, et choisissez Attacher la politique.

Installation de l'agent CloudWatch pour collecter des métriques Prometheus

Vous devez installer l'agent CloudWatch dans le cluster pour collecter les métriques. La méthode à appliquer pour installer l'agent est différente s'il s'agit de clusters Amazon EKS ou de clusters Kubernetes.

Supprimer les versions précédentes de l'agent CloudWatch avec la prise en charge de Prometheus

Si vous avez déjà installé une version de l'agent CloudWatch avec prise en charge de 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. Vous n'avez pas besoin de supprimer l'agent CloudWatch qui active Container Insights sans la prise en charge de Prometheus.

kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch

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

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

Pour installer l'agent CloudWatch avec prise en charge 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 faire envoyer des données à la région AWS 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 fichier YAML de l'agent en entrant 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'agent CloudWatch sur des clusters Amazon EKS avec le type de lancement Fargate

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

Pour installer l'agent CloudWatch avec prise en charge de Prometheus sur un cluster Amazon EKS avec le type de lancement Fargate
  1. Saisissez la commande suivante pour créer un profil Fargate pour l'agent CloudWatch afin qu'il puisse s'exécuter à l'intérieur du cluster. Remplacez MyCluster par le nom du cluster.

    eksctl create fargateprofile --cluster MyCluster \ --name amazon-cloudwatch \ --namespace amazon-cloudwatch
  2. Pour installer l'agent CloudWatch, saisissez la commande suivante. Remplacez MyCluster par 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 par le nom de la région dans laquelle vous souhaitez envoyer les métriques. 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'agent CloudWatch sur un cluster Kubernetes

Pour installer l'agent CloudWatch avec prise en charge de Prometheus sur un cluster exécutant Kubernetes, saisissez 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 par 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 par le nom de la région AWS dans laquelle vous souhaitez envoyer les métriques. 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 vérifier 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 seul pod d'agent CloudWatch à l'état Running, cela signifie que l'agent s'exécute et collecte les métriques Prometheus. Par défaut, l'agent CloudWatch collecte des métriques pour App Mesh, NGINX, Memcached, Java/JMX et HAProxy toutes les minutes. 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 métriques Prometheus dans CloudWatch, consultez Affichage de vos métriques Prometheus

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