Collecter des métriques AWS CloudWatch à l'aide de l'exportateur Prometheus CloudWatch
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Ce document explique comment utiliser l'exportateur Prometheus CloudWatch Open Source
et l'agent Ops s'exécutant sur une instance Compute Engine pour collecter
CloudWatch et les stocker dans un projet Google Cloud.
Ce document s'adresse aux développeurs et aux administrateurs système qui ont besoin
pour collecter des métriques AWS CloudWatch. Ce document explique comment configurer
Exportateur Prometheus CloudWatch pour collecter les métriques AWS CloudWatch.
Avec Cloud Monitoring, vous pouvez afficher vos métriques AWS dans le même contexte que vos métriques Google Cloud. Par exemple, vous pouvez créer un tableau de bord avec des graphiques qui affichent l'utilisation du processeur pour vos instances Amazon EC2 et vos instances Compute Engine. Vous pouvez également créer des règles d'alerte pour surveiller vos métriques AWS. Pour plus d'informations, consultez les sections suivantes :
Pour collecter des métriques AWS CloudWatch à l'aide de l'exportateur Prometheus CloudWatch, vous avez besoin des éléments suivants :
Un projet Google Cloud disposant des autorisations nécessaires pour:
Créer une VM
Écrire des journaux dans Cloud Logging
Écrire des métriques dans Cloud Monitoring
Un compte AWS avec des identifiants AWS pouvant être utilisés par l'exportateur Prometheus pour extraire des métriques.
Pour en savoir plus, consultez la section Exécuter l'exportateur Prometheus.
Créer une VM Compute Engine
Nous vous recommandons de créer une VM Compute Engine Linux à utiliser spécifiquement pour exécuter l'Agent Ops et l'exportateur Prometheus CloudWatch. Cette VM sert de
le site de collecte de toutes les métriques AWS.
Pour créer une VM Linux Debian nommée aws-exporter-test dans une zone que vous spécifiez, exécutez la commande suivante :
Les sections suivantes décrivent la procédure
de téléchargement, d'installation,
et la configuration de l'exportateur Prometheus CloudWatch
sur votre VM Compute Engine.
Télécharger l'exportateur Prometheus et le JRE
Pour exécuter l'exportateur CloudWatch pour Prometheus, vous devez télécharger l'exportateur et l'environnement d'exécution Java (JRE), version 11 ou ultérieure.
Pour télécharger le fichier JAR contenant l'exportateur CloudWatch pour Prometheus, exécutez la commande suivante sur votre instance Compute Engine :
Pour installer l'environnement JRE, vous pouvez utiliser une commande semblable à celle-ci:
sudo apt install default-jre
Configurer l'exportateur Prometheus
Pour configurer l'exportateur Prometheus CloudWatch, vous devez créer un fichier de configuration pour le ou les services AWS à partir desquels vous souhaitez collecter des métriques.
Pour obtenir des informations générales, consultez la configuration de l'exportateur CloudWatch pour Prometheus
documentation.
Migrer des utilisateurs: si vous migrez votre AWS CloudWatch existante
vers l'exportateur CloudWatch pour Prometheus, vous pouvez utiliser les fichiers de configuration
dans les configurations de l'exportateur CloudWatch pour Prometheus pour la migration.
Ces fichiers de configuration sont conçus pour répliquer les métriques existantes
mais elles ne collectent pas toutes les métriques
à l'aide de l'exportateur Prometheus CloudWatch
pour les services AWS.
Nouveaux utilisateurs: si vous ne migrez pas des métriques existantes, nous vous recommandons de
vous n'utilisez pas les configurations de migration. Pour savoir comment définir des configurations d'exportateur pour d'autres services, consultez la documentation du service AWS CloudWatch. Vous trouverez également d'autres exemples dans le dépôt GitHub de l'exportateur Prometheus CloudWatch.
Vous pouvez combiner la configuration de plusieurs services AWS dans un seul fichier de configuration. Les exemples de ce document partent du principe que votre fichier de configuration est nommé config.yml.
Exécuter l'exportateur Prometheus
Avant de pouvoir exécuter l'exportateur Prometheus CloudWatch, vous devez fournir le
avec des identifiants et une autorisation.
L'exportateur Prometheus CloudWatch utilise le SDK Java AWS, qui permet de fournir des identifiants à l'aide des variables d'environnement suivantes :
Pour en savoir plus sur l'envoi d'identifiants au SDK,
consultez la page SDK AWS pour Java 2.x.
Vous devez également être autorisé à utiliser l'API CloudWatch pour récupérer des métriques. Vous avez besoin des autorisations CloudWatch AWS IAM suivantes :
cloudwatch:ListMetrics
cloudwatch:GetMetricStatistics
cloudwatch:GetMetricData
L'utilisation de la fonctionnalité aws_tag_select nécessite également le tag:GetResources
Autorisation IAM AWS.
Remplacez les variables YOUR_KEY par vos clés d'accès.
Vous ne devez définir que la variable d'environnement AWS_SESSION_TOKEN
si vous utilisez des identifiants temporaires.
Pour tester votre configuration, démarrez l'exportateur et chargez votre configuration
exécutez la commande suivante:
Modifiez les valeurs du port (9106) et du fichier de configuration (config.yml) si nécessaire.
Si vous modifiez votre fichier config.yml alors que l'exportateur est en cours d'exécution,
vous pouvez actualiser l'exportateur en exécutant la commande suivante:
curl -X POST localhost:9106/-/reload
Pour une utilisation dans un environnement de production, vous pouvez configurer l'exportateur pour qu'il redémarre si la VM redémarre. Par exemple, sur les systèmes Debian, vous
peuvent utiliser le gestionnaire
système et de service,
systemd.
Configurer l'agent Ops
Les sections suivantes expliquent comment installer, configurer et démarrer
l'agent Ops. Ces sections fournissent des informations de configuration minimales pour l'agent Ops à utiliser avec l'exportateur Prometheus CloudWatch.
Pour en savoir plus sur ces sujets, consultez la présentation de l'agent Ops.
Installer l'agent Ops
Pour installer l'agent Ops, utilisez les commandes suivantes pour télécharger et
exécutez le script d'installation de l'agent:
Pour configurer l'agent Ops, vous devez ajouter des éléments de configuration
fichier de configuration utilisateur de l'agent. Sous Linux, le fichier de configuration utilisateur
est /etc/google-cloud-ops-agent/config.yaml.
Lorsque vous configurez l'agent Ops pour collecter des métriques AWS à partir de l'exportateur Prometheus CloudWatch, vous utilisez le récepteur Prometheus de l'agent. Ce document décrit deux configurations de base pour l'agent Ops.
Sélectionnez l'une des configurations et ajoutez-la au fichier de configuration utilisateur :
sudo vim /etc/google-cloud-ops-agent/config.yaml
Configuration de base de l'agent Ops
La configuration suivante fournit une configuration minimale pour l'agent Ops. Cette configuration effectue les opérations suivantes :
Crée un récepteur nommé aws de type prometheus. Le récepteur est
configurés pour extraire les métriques du job aws_exporter. La
le port spécifié doit correspondre au port sur lequel l'exportateur Prometheus CloudWatch
Exporter des métriques consultez la page Exécuter l'exportateur Prometheus.
Crée un pipeline nommé aws_pipeline qui utilise le récepteur de métriques aws.
La configuration suivante effectue tout ce que fait la configuration de base, mais elle ajoute également une configuration de renumérotation qui supprime les métriques JVM générées par l'exportateur. Supprimer ces métriques réduit les données de métriques ingérées, mais cela peut rendre le débogage des problèmes liés à l'exportateur plus difficile, car vous n'obtenez pas les propres métriques de l'exportateur :
metrics:
receivers:
aws:
type: prometheus
config:
scrape_configs:
- job_name: 'aws_exporter'
scrape_interval: 10s
static_configs:
- targets: ['localhost:9106']
# Drop the exporter's own JVM metrics to reduce noise.
metric_relabel_configs:
- source_labels: [ __name__ ]
regex: 'jvm_.*'
action: drop
service:
pipelines:
aws_pipeline:
receivers:
- aws
Vous pouvez créer des configurations beaucoup plus complexes pour l'agent Ops.
Pour obtenir des informations générales sur la configuration de l'agent Ops, consultez la page Modèle de configuration.
Redémarrer l'agent Ops
Pour appliquer les modifications de configuration à l'agent Ops, vous devez le redémarrer.
Pour redémarrer l'agent, exécutez la commande suivante sur votre instance :
sudo service google-cloud-ops-agent restart
Pour vérifier que l'agent a redémarré, exécutez la commande suivante et vérifiez que les composants "Agent de métriques" et "Agent de journalisation" ont démarré :
sudo systemctl status google-cloud-ops-agent"*"
Afficher les métriques dans Cloud Monitoring
Dans Cloud Monitoring, vous pouvez interroger vos métriques AWS CloudWatch et créer des graphiques comme vous le feriez pour n'importe quelle autre métrique. Depuis l'Explorateur de métriques
vous pouvez utiliser PromQL, le langage MQL (Monitoring Query Language) ou un générateur de requêtes
de commande. Pour en savoir plus, consultez Créer des graphiques avec l'explorateur de métriques.
Si vous avez créé des graphiques que vous souhaitez conserver, vous pouvez les enregistrer dans
des tableaux de bord personnalisés. Pour en savoir plus, consultez la section Présentation des tableaux de bord.
Le graphique suivant montre une requête PromQL pour la métrique aws_ec2_cpuutilization_sum des VM AWS :
Vous pouvez interroger les métriques Prometheus à l'aide de PromQL ou d'outils Cloud Monitoring tels que le langage MQL (Monitoring Query Language). Quand ?
Les métriques Prometheus sont ingérées dans Cloud Monitoring. Chaque métrique est
transformées à l'aide du modèle
Transformation OpenTelemetry vers Prometheus
et mappés à l'API Cloud Monitoring
Type de ressource surveillée prometheus_target
La transformation inclut les modifications suivantes :
Le nom de la métrique est précédé de la chaîne prometheus.googleapis.com/.
Tous les caractères non alphanumériques, tels que les points (.), dans le nom de la métrique sont remplacés par des traits de soulignement (_).
Le nom de la métrique est précédé d'une chaîne indiquant le genre de métrique, tel que /gauge ou /counter.
Pour interroger la métrique Prometheus aws_ec2_cpuutilization_sum à l'aide de
MQL, reportez-vous à la métrique en tant que
prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge
spécifiez le type de ressource surveillée prometheus_target:
Le graphique suivant montre le résultat de la requête MQL pour la métrique aws_ec2_cpuutilization_sum Prometheus :
Alerte sur le comportement des métriques
Dans Cloud Monitoring, vous pouvez créer des [règles d'alerte][alert-intro] pour
surveiller vos métriques AWS CloudWatch et vous informer des pics, creux ou tendances
dans les valeurs des métriques.
Pour en savoir plus sur la création d'alertes basées sur MQL, consultez la section Alertes
avec MQL.
Pour en savoir plus sur l'utilisation de l'interface de création de requêtes pour créer des règles d'alerte, consultez Créer des règles d'alerte.
Surveiller plusieurs régions
La configuration de l'exportateur Prometheus CloudWatch ne permet d'utiliser qu'un seul
par fichier de configuration. Si vous devez surveiller plusieurs régions,
nous vous recommandons d'exécuter plusieurs instances de l'exportateur Prometheus
configuré pour chaque région
que vous souhaitez surveiller. Vous pouvez exécuter plusieurs
exportateurs sur une seule VM, ou les répartir entre plusieurs VM. La
Images Docker de l'exportateur Prometheus
peut être utile dans cette situation.
Vous pouvez configurer l'agent Ops exécuté sur la VM Compute Engine pour extraire plusieurs points de terminaison Prometheus. Nous vous recommandons, lorsque vous
configurer plusieurs instances de l'exportateur Prometheus,
utilisez un nom job différent pour chaque configuration de scraping.
pouvez distinguer les instances de l'exportateur
si vous devez les dépanner.
Pour en savoir plus sur la configuration de l'agent Ops et du récepteur Prometheus, consultez la section Configurer l'agent Ops.
Coût
Amazon facture chaque requête API CloudWatch ou chaque métrique CloudWatch que vous demandez. Pour connaître les tarifs actuels, consultez la page Tarifs Amazon CloudWatch. L'exportateur Prometheus CloudWatch présente les caractéristiques de requête suivantes, qui peuvent avoir un impact sur vos coûts Amazon :
Lorsque vous utilisez la méthode GetMetricStatistics (par défaut), chaque métrique
nécessite une requête API. Chaque requête peut inclure plusieurs statistiques.
Lorsque vous utilisez aws_dimensions, l'exportateur doit effectuer des requêtes API
pour déterminer les métriques à demander. Nombre de demandes de dimensions
est généralement négligeable par rapport au nombre de requêtes de métriques.
Les frais liés à Cloud Monitoring pour les métriques AWS CloudWatch de l'exportateur Prometheus sont basés sur le nombre d'échantillons ingérés. Pour connaître les tarifs actuels, consultez la page Synthèse des tarifs de Monitoring.
Configuration de l'exportateur Prometheus CloudWatch pour la migration
Cette section fournit des configurations qui reproduisent, le plus fidèlement possible, les métriques des services AWS documentées dans la liste des métriques AWS. Ces configurations
sont destinés aux clients qui migrent vers le
Exportateur Prometheus CloudWatch de l'ancienne solution. Si vous configurez
l'exportateur Prometheus CloudWatch en tant que nouvel utilisateur plutôt qu'en tant qu'utilisateur en cours de migration,
si vous utilisez ces configurations, vous ne collectez pas
par l'exportateur Prometheus CloudWatch.
Pour afficher un exemple de fichier de configuration pour les métriques AWS CloudWatch, développez-en un
des sections suivantes.
region: us-east-1
metrics:
- aws_dimensions:
- QueueName
aws_metric_name: NumberOfMessagesSent
aws_namespace: AWS/SQS
aws_statistics:
- Average
- Minimum
- Maximum
- SampleCount
- Sum
- aws_dimensions:
- QueueName
aws_metric_name: NumberOfMessagesReceived
aws_namespace: AWS/SQS
aws_statistics:
- Average
- Minimum
- Maximum
- SampleCount
- Sum
- aws_dimensions:
- QueueName
aws_metric_name: NumberOfEmptyReceives
aws_namespace: AWS/SQS
aws_statistics:
- Average
- Minimum
- Maximum
- SampleCount
- Sum
- aws_dimensions:
- QueueName
aws_metric_name: NumberOfMessagesDeleted
aws_namespace: AWS/SQS
aws_statistics:
- Average
- aws_dimensions:
- QueueName
aws_metric_name: ApproximateNumberOfMessagesDelayed
aws_namespace: AWS/SQS
aws_statistics:
- Average
- Minimum
- Maximum
- SampleCount
- Sum
- aws_dimensions:
- QueueName
aws_metric_name: ApproximateAgeOfOldestMessage
aws_namespace: AWS/SQS
aws_statistics:
- Average
- Minimum
- Maximum
- SampleCount
- Sum
- aws_dimensions:
- QueueName
aws_metric_name: ApproximateNumberOfMessagesNotVisible
aws_namespace: AWS/SQS
aws_statistics:
- Average
- Minimum
- Maximum
- SampleCount
- Sum
- aws_dimensions:
- QueueName
aws_metric_name: ApproximateNumberOfMessagesVisible
aws_namespace: AWS/SQS
aws_statistics:
- Average
- Minimum
- Maximum
- SampleCount
- Sum
- aws_dimensions:
- QueueName
aws_metric_name: SentMessageSize
aws_namespace: AWS/SQS
aws_statistics:
- Average
- Minimum
- Maximum
- SampleCount
- Sum
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/10/09 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/10/09 (UTC)."],[],[]]