Configurer l'ingestion de métriques à partir d'une EC2 instance Amazon à l'aide de l'écriture à distance - Amazon Managed Service for Prometheus

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 l'ingestion de métriques à partir d'une EC2 instance Amazon à l'aide de l'écriture à distance

Cette section explique comment exécuter un serveur Prometheus avec écriture à distance dans une instance Amazon Elastic Compute Cloud (AmazonEC2). Elle explique comment collecter des métriques à partir d’une application de démonstration écrite dans Go et les envoyer à un espace de travail Amazon Managed Service for Prometheus.

Prérequis

Important

Avant de commencer, vous devez avoir installé Prometheus version 2.26 ou une version ultérieure. Nous supposons que vous connaissez Prometheus, EC2 Amazon et Amazon Managed Service for Prometheus. Pour plus d’informations sur l’installation de Prometheus, consultez la section Mise en route sur le site Web de Prometheus.

Si vous ne connaissez pas Amazon EC2 ou Amazon Managed Service for Prometheus, nous vous recommandons de commencer par lire les sections suivantes :

Création d'un IAM rôle pour Amazon EC2

Pour diffuser des métriques, vous devez d'abord créer un IAM rôle avec la politique AWS gérée AmazonPrometheusRemoteWriteAccess. Vous pouvez ensuite lancer une instance avec le rôle et les métriques de diffusion dans votre espace de travail Amazon Managed Service for Prometheus.

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

  2. Sélectionnez Rôles dans le volet de navigation, puis Créer un rôle.

  3. Pour le type d’entité de confiance, choisissez service AWS . Pour le cas d'utilisation, choisissez EC2. Sélectionnez Next: Permissions (Étape suivante : autorisations).

  4. Dans la barre de recherche, saisissez AmazonPrometheusRemoteWriteAccess. Dans Nom de la stratégie, sélectionnez AmazonPrometheusRemoteWriteAccess, puis choisissez Attacher la politique. Choisissez Suivant : balises.

  5. (Facultatif) Créez des IAM balises pour votre IAM rôle. Choisissez Suivant : vérification.

  6. Saisissez un nom pour votre rôle. Choisissez Create Policy (Créer une politique).

Lancer une EC2 instance Amazon

Pour lancer une EC2 instance Amazon, suivez les instructions de la section Lancer une instance dans le guide de l'utilisateur Amazon Elastic Compute Cloud pour les instances Linux.

Exécutez l’application de démonstration.

Après avoir créé votre IAM rôle et lancé une EC2 instance avec ce rôle, vous pouvez exécuter une application de démonstration pour la voir fonctionner.

Pour exécuter une application de démonstration et tester les métriques
  1. Pour créer un fichier Go nommé main.go, utilisez le modèle suivant.

    package main import ( "github.com/prometheus/client_golang/prometheus/promhttp" "net/http" ) func main() { http.Handle("/metrics", promhttp.Handler()) http.ListenAndServe(":8000", nil) }
  2. Exécutez les commandes suivantes pour installer les bonnes dépendances.

    sudo yum update -y sudo yum install -y golang go get github.com/prometheus/client_golang/prometheus/promhttp
  3. Exécutez l’application de démonstration.

    go run main.go

    L’application de démonstration doit fonctionner sur le port 8000 et afficher toutes les métriques Prometheus exposées. Voici un exemple de ces métriques.

    curl -s http://localhost:8000/metrics ... process_max_fds 4096# HELP process_open_fds Number of open file descriptors.# TYPE process_open_fds gauge process_open_fds 10# HELP process_resident_memory_bytes Resident memory size in bytes.# TYPE process_resident_memory_bytes gauge process_resident_memory_bytes 1.0657792e+07# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.# TYPE process_start_time_seconds gauge process_start_time_seconds 1.61131955899e+09# HELP process_virtual_memory_bytes Virtual memory size in bytes.# TYPE process_virtual_memory_bytes gauge process_virtual_memory_bytes 7.77281536e+08# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes.# TYPE process_virtual_memory_max_bytes gauge process_virtual_memory_max_bytes -1# HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.# TYPE promhttp_metric_handler_requests_in_flight gauge promhttp_metric_handler_requests_in_flight 1# HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.# TYPE promhttp_metric_handler_requests_total counter promhttp_metric_handler_requests_total{code="200"} 1 promhttp_metric_handler_requests_total{code="500"} 0 promhttp_metric_handler_requests_total{code="503"} 0

Création d’un espace de travail Amazon Managed Service for Prometheus

Pour créer un espace de travail Amazon Managed Service for Prometheus, suivez les instructions de la section Create a workspace.

Exécution d’un serveur Prometheus

  1. Utilisez le YAML fichier d'exemple suivant comme modèle pour créer un nouveau fichier nomméprometheus.yaml. Poururl, remplacez my-region avec la valeur de votre région et my-workspace-id avec l'identifiant de l'espace de travail généré pour vous par Amazon Managed Service for Prometheus. Pourregion, remplacez my-region avec la valeur de votre région.

    Exemple : YAML fichier

    global: scrape_interval: 15s external_labels: monitor: 'prometheus' scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:8000'] remote_write: - url: https://aps-workspaces.my-region.amazonaws.com/workspaces/my-workspace-id/api/v1/remote_write queue_config: max_samples_per_send: 1000 max_shards: 200 capacity: 2500 sigv4: region: my-region
  2. Exécutez le serveur Prometheus pour envoyer les métriques de l’application de démonstration à votre espace de travail Amazon Managed Service for Prometheus.

    prometheus --config.file=prometheus.yaml

Le serveur Prometheus doit maintenant envoyer les métriques de l’application de démonstration à votre espace de travail Amazon Managed Service for Prometheus.