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.
Configurer Amazon Managed Service pour AWS Prometheus avec Observability Accelerator
AWS fournit des outils d'observabilité, notamment la surveillance, la journalisation, les alertes et les tableaux de bord, pour vos projets Amazon Elastic Kubernetes Service (Amazon EKS). Cela inclut Amazon Managed Service pour Prometheus, Amazon Managed AWS Grafana, OpenTelemetry
AWS Observability Accelerator fournit deux profils de collecteur pour Amazon Managed Service for Prometheus :
-
Métriques gérées (sans agent) : utilise le service géré Amazon pour Prometheus Collector, un scraper entièrement géré et sans agent qui s'exécute en dehors de votre cluster. Aucun module de collecte à gérer. Métriques uniquement.
-
Autogéré — Déploie un OpenTelemetry collecteur via Helm dans votre cluster. Supporte les métriques, les traces (AWS X-Ray) et les journaux (Amazon CloudWatch).
Cette section décrit les deux options, en commençant par l'approche sans agent recommandée.
Les modèles Terraform et les instructions détaillées se trouvent sur la page AWS Observability Accelerator for
Conditions préalables
Pour utiliser AWS Observability Accelerator, vous devez disposer d'un cluster Amazon EKS existant et remplir les conditions préalables suivantes :
-
AWS CLI— utilisé pour appeler une AWS fonctionnalité depuis la ligne de commande.
-
kubectl
: utilisé pour contrôler votre cluster EKS à partir de la ligne de commande. -
Terraform
(>= 1.5.0) : utilisé pour automatiser la création des ressources pour cette solution. Vous devez configurer le AWS fournisseur avec un rôle IAM autorisé à créer et à gérer Amazon Managed Service pour Prometheus, Amazon Managed Grafana et IAM au sein de votre compte. AWS Pour plus d’informations sur la configuration du fournisseur AWS pour Terraform, consultez la section AWS provider dans la documentation Terraform.
Utilisation de l'exemple de métriques gérées (sans agent)
Cet exemple utilise le collecteur Amazon Managed Service for Prometheus pour extraire les métriques Prometheus de votre cluster Amazon EKS sans déployer de pods de collecte. Le collecteur nécessite au moins deux sous-réseaux dans deux zones de disponibilité distinctes. Pour plus de détails, consultez l'eks-amp-managed
Pour utiliser le module Terraform de surveillance de l'infrastructure sans agent
-
Dans le dossier dans lequel vous souhaitez créer votre projet, clonez le référentiel à l’aide de la commande suivante.
git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git -
Initialisez Terraform avec les commandes suivantes.
cd examples/eks-amp-managed terraform init -
Créez un nouveau fichier
terraform.tfvars, comme dans l’exemple suivant. Utilisez les informations relatives à AWS la région, à l'ID du cluster et au réseau VPC de votre cluster Amazon EKS. Le collecteur nécessite au moins deux sous-réseaux dans deux zones de disponibilité distinctes.# (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster" # (mandatory) Subnets for the managed scraper (>= 2 AZs) scraper_subnet_ids = ["subnet-aaa", "subnet-bbb"] # (mandatory) Security group allowing scraper access to the EKS API scraper_security_group_ids = ["sg-xxx"] -
Créez un espace de travail Amazon Managed Grafana, si vous n’en avez pas déjà. Pour plus d’informations sur la création d’un nouvel espace de travail, consultez la section Create your first workspace dans le Guide de l’utilisateur Amazon Managed Grafana.
-
Créez deux variables pour que Terraform utilise votre espace de travail Grafana en exécutant les commandes suivantes sur la ligne de commande. Vous devrez le remplacer par l'identifiant
grafana-workspace-idde votre espace de travail Grafana.export TF_VAR_managed_grafana_workspace_id=grafana-workspace-idexport TF_VAR_grafana_api_key=`aws grafana create-workspace-api-key --key-name "observability-accelerator-$(date +%s)" --key-role ADMIN --seconds-to-live 1200 --workspace-id $TF_VAR_managed_grafana_workspace_id --query key --output text` -
[Facultatif] Pour utiliser un espace de travail Amazon Managed Service for Prometheus existant, ajoutez l'identifiant au fichier, comme dans
terraform.tfvarsl'exemple suivant, en le remplaçantprometheus-workspace-idpar votre identifiant d'espace de travail Prometheus. Si vous ne spécifiez pas d’espace de travail existant, un nouvel espace de travail Prometheus sera créé pour vous.# (optional) Leave it empty for a new workspace to be created managed_prometheus_workspace_id = "prometheus-workspace-id" -
Déployez la solution à l’aide de la commande suivante.
terraform apply -var-file=terraform.tfvars
Cela créera des ressources dans votre AWS compte, notamment les suivantes :
-
Un nouvel espace de travail Amazon Managed Service for Prometheus (sauf si vous avez choisi d’utiliser un espace de travail existant).
-
Un collecteur Amazon Managed Service for Prometheus (scraper sans agent) configuré pour extraire les métriques Prometheus de votre cluster Amazon EKS.
-
Règles d'enregistrement et d'alerte Prometheus dans votre espace de travail Amazon Managed Service for Prometheus.
-
kube-state-metrics et un exportateur de nœuds déployé dans votre cluster Amazon EKS pour les métriques d'infrastructure.
-
Une nouvelle source de données et de nouveaux tableaux de bord Amazon Managed Grafana dans votre espace de travail actuel. Les tableaux de bord seront répertoriés sous EKS Monitoring.
Alternative : collecteur autogéré OpenTelemetry
Si vous avez besoin de traces, de journaux ou d'un contrôle total sur le pipeline de collecte, utilisez le profil autogéré. Cela déploie un OpenTelemetry collecteur via Helm dans votre cluster Amazon EKS, configuré pour extraire les métriques Prometheus et écrire à distance sur Amazon Managed Service for Prometheus. Il prend également en charge les traces (AWS X-Ray) et les journaux (Amazon CloudWatch). Pour plus de détails, consultez l'eks-amp-otel
Pour utiliser le module Terraform autogéré
-
Clonez le dépôt et initialisez Terraform.
git clone https://github.com/aws-observability/terraform-aws-observability-accelerator.git cd examples/eks-amp-otel terraform init -
Créez un nouveau fichier
terraform.tfvars, comme dans l’exemple suivant.# (mandatory) AWS Region where your resources will be located aws_region = "eu-west-1" # (mandatory) EKS Cluster name eks_cluster_id = "my-eks-cluster" -
Configurez votre espace de travail Amazon Managed Grafana et votre clé d'API en suivant les mêmes étapes que dans l'exemple des métriques gérées (étapes 4 à 6 ci-dessus).
-
Déployez la solution à l’aide de la commande suivante.
terraform apply -var-file=terraform.tfvars
Cela créera les ressources suivantes dans votre AWS compte (contrairement à l'approche sans agent, le collecteur s'exécute au sein de votre cluster) :
-
Un espace de travail Amazon Managed Service pour Prometheus (s'il n'est pas fourni).
-
Un espace de travail Grafana géré par Amazon avec source de données et tableaux de bord.
-
Un OpenTelemetry collecteur déployé via Helm dans votre cluster Amazon EKS, configuré pour extraire les métriques Prometheus et écrire à distance sur Amazon Managed Service for Prometheus.
-
Rôle IAM pour les comptes de service (IRSA) pour le OpenTelemetry Collector.
-
Trace le pipeline jusqu'à AWS X-Ray (activé par défaut).
-
Logs le pipeline vers Amazon CloudWatch (activé par défaut).
Affichage des tableaux de bord
Pour consulter vos nouveaux tableaux de bord, ouvrez le tableau de bord spécifique dans votre espace de travail Amazon Managed Grafana. Les tableaux de bord de l'infrastructure sont fournis automatiquement par Terraform. Pour plus d’informations sur l’utilisation d’Amazon Managed Grafana, consultez la section Working in your Grafana workspace dans le Guide de l’utilisateur Amazon Managed Grafana.