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.
Récupération de sources Prometheus supplémentaires et importation de ces métriques
L' CloudWatch agent chargé de la surveillance par Prometheus a besoin de deux configurations pour récupérer les métriques Prometheus. L'une concerne les configurations standard Prometheus, comme décrit dans <scrape_config>
Pour les clusters Amazon ECS, les configurations sont intégrées au Parameter Store de AWS Systems Manager par les secrets de la définition de tâche Amazon ECS :
-
Le secret
PROMETHEUS_CONFIG_CONTENT
concerne la configuration de récupération Prometheus. -
Le secret
CW_CONFIG_CONTENT
réside dans la configuration de CloudWatch l'agent.
Pour extraire des sources de métriques Prometheus supplémentaires et les importer, CloudWatch vous devez modifier à la fois la configuration de Prometheus Scrape et la configuration de l'agent, puis redéployer CloudWatch l'agent avec la configuration mise à jour.
Exigences de groupe de sécurité VPC
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 de récupération Prometheus
L' CloudWatch agent prend en charge les configurations standard de Prometheus scrape, comme indiquéhttps://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config
global: scrape_interval: 1m scrape_timeout: 10s
-
scrape_interval– Définit la fréquence à laquelle récupérer les cibles.
-
scrape_timeout– Définit le temps d'attente avant l'expiration d'une requête de récupération.
Vous pouvez également définir différentes valeurs pour ces paramètres au niveau de la tâche, afin de remplacer les configurations globales.
Tâches de récupération Prometheus
Certaines tâches de scraping par défaut sont déjà configurées dans les fichiers YAML de l' CloudWatch agent. Par exemple, dans les fichiers YAML pour Amazon ECS tels que cwagent-ecs-prometheus-metric-for-bridge-host.yaml
, les tâches de récupération par défaut sont configurées dans la section ecs_service_discovery
.
"ecs_service_discovery": { "sd_frequency": "1m", "sd_result_file": "/tmp/cwagent_ecs_auto_sd.yaml", "docker_label": { }, "task_definition_list": [ { "sd_job_name": "ecs-appmesh-colors", "sd_metrics_ports": "9901", "sd_task_definition_arn_pattern": ".*:task-definition\/.*-ColorTeller-(white):[0-9]+", "sd_metrics_path": "/stats/prometheus" }, { "sd_job_name": "ecs-appmesh-gateway", "sd_metrics_ports": "9901", "sd_task_definition_arn_pattern": ".*:task-definition/.*-ColorGateway:[0-9]+", "sd_metrics_path": "/stats/prometheus" } ] }
Chacune de ces cibles par défaut est supprimée et les métriques sont envoyées dans le journal des événements CloudWatch à l'aide d'un format de métrique intégré. Pour de plus amples informations, veuillez consulter Intégration de métriques dans les journaux.
Les événements de journal des clusters Amazon ECS sont stockés dans le groupe de journaux aws/ecs/containerinsights//cluster_name
/prometheus.
Chaque tâche de récupération est contenue dans un flux de journaux différent au sein de ce groupe de journaux.
Pour ajouter une nouvelle cible de récupération, vous ajoutez une nouvelle entrée dans la section task_definition_list
sous la section ecs_service_discovery
du fichier YAML et redémarrez l'agent. Pour un exemple de ce processus, consultez Didacticiel pour l'ajout d'une nouvelle cible de récupération Prometheus : métrique du serveur d'API Prometheus.
CloudWatch configuration de l'agent pour Prometheus
Le fichier de configuration de l' CloudWatch agent contient une prometheus
section metrics_collected
dédiée à la configuration du scraping de Prometheus. Elle inclut les options de configuration suivantes :
-
cluster_name– Spécifie le nom du cluster à ajouter en tant qu'étiquette dans l'évènement du journal. Ce champ est facultatif. Si vous l'omettez, l'agent peut détecter le nom du cluster Amazon ECS.
-
log_group_name– Spécifie le nom du groupe de journaux pour les métriques Prometheus récupérées. Ce champ est facultatif. Si vous l'omettez, utilisez/ CloudWatch aws/ecs/containerinsights/
cluster_name
/prometheus pour les journaux des clusters Amazon ECS. -
prometheus_config_path– Spécifie le chemin d'accès du fichier de configuration de récupération Prometheus. Si la valeur de ce champ commence par
env:
, le contenu du fichier de configuration de récupération Prometheus sera récupéré à partir de la variable d'environnement du conteneur. Ne modifiez pas ce champ. -
ecs_service_discovery– Il s'agit de la section qui spécifie les configurations des fonctions de découverte automatique de la cible Amazon ECS Prometheus. Deux modes sont pris en charge pour découvrir les cibles Prometheus : découverte basée sur l'étiquette docker du conteneur ou découverte basée sur l'expression régulière ARN de définition de tâche Amazon ECS. Vous pouvez utiliser les deux modes ensemble et l' CloudWatch agent dédupliquera les cibles découvertes en fonction de : {private_ip} : {port}/{metrics_path}.
La section
ecs_service_discovery
peut contenir les champs suivants :-
sd_frequency
est la fréquence de découverte des exportateurs Prometheus. Spécifiez un nombre et un suffixe d'unité. Par exemple,1m
pour une fois par minute ou30s
pour une fois toutes les 30 secondes. Les suffixes d'unités valides sontns
,us
,ms
,s
,m
eth
.Ce champ est facultatif. La valeur par défaut est de 60 secondes (1 minute).
-
sd_target_cluster
est le nom du cluster Amazon ECS cible pour la découverte automatique. Ce champ est facultatif. Le nom par défaut est le nom du cluster Amazon ECS sur lequel l' CloudWatch agent est installé. -
sd_cluster_region
est la région du cluster Amazon ECS cible. Ce champ est facultatif. La valeur par défaut est la région du cluster Amazon ECS dans laquelle l' CloudWatchagent est installé. -
sd_result_file
est le chemin d'accès du fichier YAML pour les résultats de la cible Prometheus. La configuration de récupération Prometheus fera référence à ce fichier. -
docker_label
est une section facultative que vous pouvez utiliser pour spécifier la configuration de la découverte de service basée sur des étiquettes de docker. Si vous omettez cette section, la découverte basée sur les étiquettes docker n'est pas utilisée. Cette section peut contenir les champs suivants :-
sd_port_label
est le nom de l'étiquette docker du conteneur qui spécifie le port du conteneur pour les métriques Prometheus. La valeur par défaut estECS_PROMETHEUS_EXPORTER_PORT
. Si le conteneur ne possède pas cette étiquette docker, l' CloudWatch agent l'ignorera. -
sd_metrics_path_label
est le nom de l'étiquette docker du conteneur qui spécifie le chemin d'accès aux métriques Prometheus. La valeur par défaut estECS_PROMETHEUS_METRICS_PATH
. Si le conteneur n'a pas cette étiquette docker, l'agent utilise le chemin par défaut/metrics
. -
sd_job_name_label
est le nom de l'étiquette docker du conteneur qui spécifie le nom de la tâche de récupération Prometheus. La valeur par défaut estjob
. Si le conteneur ne possède pas cette étiquette docker, l' CloudWatch agent utilise le nom de la tâche dans la configuration Prometheus Scrape.
-
-
task_definition_list
est une section facultative que vous pouvez utiliser pour spécifier la configuration de la découverte de service basée sur les définitions de tâches. Si vous omettez cette section, la découverte basée sur les définitions de tâches n'est pas utilisée. Cette section peut contenir les champs suivants :-
sd_task_definition_arn_pattern
est le modèle à utiliser pour spécifier les définitions de tâches Amazon ECS à découvrir. Il s'agit d'une expression régulière. -
sd_metrics_ports
répertorie le containerPort pour les métriques Prometheus. Séparez les containerPorts par des points-virgules. -
sd_container_name_pattern
spécifie les noms des conteneurs de tâches Amazon ECS. Il s'agit d'une expression régulière. -
sd_metrics_path
spécifie le chemin de métrique Prometheus. Si vous ne spécifiez pas ce paramètre, l'agent utilise le chemin par défaut/metrics
-
sd_job_name
spécifie le nom de la tâche de récupération Prometheus. Si vous omettez ce champ, l' CloudWatch agent utilise le nom de la tâche dans la configuration Prometheus Scrape.
-
-
service_name_list_for_tasks
est une section facultative que vous pouvez utiliser pour spécifier la configuration de la découverte de service basée sur les noms. Si vous omettez cette section, la découverte basée sur les noms n'est pas utilisée. Cette section peut contenir les champs suivants :-
sd_service_name_pattern
est le modèle à utiliser pour spécifier l'Amazon ECS service où les tâches doivent être découvertes. Il s'agit d'une expression régulière. -
sd_metrics_ports
répertorie lecontainerPort
pour les métriques Prometheus. Séparez plusieurscontainerPorts
avec des points-virgules. -
sd_container_name_pattern
spécifie les noms des conteneurs de tâches Amazon ECS. Il s'agit d'une expression régulière. -
sd_metrics_path
spécifie le chemin d'accès aux métriques Prometheus. Si vous ne spécifiez pas ce paramètre, l'agent utilise le chemin par défaut/metrics
. -
sd_job_name
spécifie le nom de la tâche de récupération Prometheus. Si vous omettez ce champ, l' CloudWatch agent utilise le nom de la tâche dans la configuration Prometheus Scrape.
-
-
-
metric_declaration – Ce sont des sections qui spécifient le tableau de journaux avec le format de métrique intégré à générer. Il existe des sections
metric_declaration
pour chaque source Prometheus que l'agent CloudWatch importe par défaut. Chacune de ces sections comprend les champs suivants :-
label_matcher
est une expression régulière qui vérifie la valeur des étiquettes répertoriées danssource_labels
. Les métriques correspondantes sont activées pour être incluses dans le format de métrique intégré envoyé à CloudWatch.Si plusieurs étiquettes sont spécifiées dans
source_labels
, nous vous recommandons de ne pas utiliser les caractères^
ou$
dans l'expression régulière pourlabel_matcher
. -
source_labels
spécifie la valeur des étiquettes qui sont vérifiées par la lignelabel_matcher
. -
label_separator
spécifie le séparateur à utiliser dans la lignelabel_matcher
si plusieurssource_labels
sont spécifiées. La valeur par défaut est;
. Vous pouvez voir cette valeur par défaut utilisée dans la lignelabel_matcher
dans l'exemple suivant. -
metric_selectors
est une expression régulière qui spécifie les métriques à collecter et à envoyer à CloudWatch. -
dimensions
est la liste des étiquettes à utiliser comme CloudWatch dimensions pour chaque métrique sélectionnée.
-
Consultez l'exemple metric_declaration
suivant.
"metric_declaration": [ { "source_labels":[ "Service", "Namespace"], "label_matcher":"(.*node-exporter.*|.*kube-dns.*);kube-system$", "dimensions":[ ["Service", "Namespace"] ], "metric_selectors":[ "^coredns_dns_request_type_count_total$" ] } ]
Cet exemple montre comment configurer une section de format de métrique intégrée à envoyer en tant qu'événement de journaux si les conditions suivantes sont remplies :
-
La valeur de
Service
contientnode-exporter
oukube-dns
. -
La valeur de
Namespace
estkube-system
. -
La métrique Prometheus
coredns_dns_request_type_count_total
contient les deux étiquettesNamespace
etService
.
L'événement de journal envoyé inclut la section en surbrillance suivante :
{ "CloudWatchMetrics":[ { "Metrics":[ { "Name":"coredns_dns_request_type_count_total" } ], "Dimensions":[ [ "Namespace", "Service" ] ], "Namespace":"ContainerInsights/Prometheus" } ], "Namespace":"kube-system", "Service":"kube-dns", "coredns_dns_request_type_count_total":2562, "eks_amazonaws_com_component":"kube-dns", "instance":"192.168.61.254:9153", "job":"kubernetes-service-endpoints", ... }