

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.

# Utilisation d’une instance Prometheus comme collecteur
<a name="AMP-ingest-with-prometheus"></a>

Vous pouvez utiliser une instance Prometheus, exécutée *en* mode agent (connue sous le nom d'agent *Prometheus), pour récupérer des métriques et les envoyer à votre espace de travail Amazon Managed Service for Prometheus*.

Les rubriques suivantes décrivent les différentes manières de configurer une instance Prometheus exécutée en mode agent en tant que collecteur pour vos métriques.

**Avertissement**  
Lorsque vous créez un agent Prometheus, vous êtes responsable de sa configuration et de sa maintenance. [Évitez d'exposer les terminaux Prometheus Scrape à l'Internet public en activant les fonctionnalités de sécurité.](https://prometheus.io/docs/prometheus/latest/configuration/https/)

Si vous avez configuré plusieurs instances Prometheus qui surveillent le même ensemble de métriques et que vous les avez envoyées à un seul espace de travail Amazon Managed Service for Prometheus à des fins de haute disponibilité, vous devez configurer la déduplication. Si vous ne suivez pas les étapes de configuration de la déduplication, tous les échantillons de données envoyés à Amazon Managed Service for Prometheus vous seront facturés, y compris les échantillons en double. Pour obtenir des instructions sur la configuration de la déduplication, consultez la section [Déduplication des métriques haute disponibilité envoyées à Amazon Managed Service for Prometheus](AMP-ingest-dedupe.md).

**Topics**
+ [Configuration de l’ingestion à partir d’un nouveau serveur Prometheus à l’aide de Helm](AMP-onboard-ingest-metrics-new-Prometheus.md)
+ [Configuration de l’ingestion depuis un serveur Prometheus existant dans Kubernetes sur EC2](AMP-onboard-ingest-metrics-existing-Prometheus.md)
+ [Configuration de l’ingestion depuis un serveur Prometheus existant dans Kubernetes sur Fargate](AMP-onboard-ingest-metrics-existing-Prometheus-fargate.md)

# Configuration de l’ingestion à partir d’un nouveau serveur Prometheus à l’aide de Helm
<a name="AMP-onboard-ingest-metrics-new-Prometheus"></a>

Les instructions de cette section vous permettent d’être rapidement opérationnel avec Amazon Managed Service for Prometheus. Vous configurez un nouveau serveur Prometheus dans un cluster Amazon EKS, et ce nouveau serveur utilise une configuration par défaut pour envoyer des métriques à Amazon Managed Service for Prometheus. Voici les prérequis pour cette méthode :
+ Vous devez disposer d'un cluster Amazon EKS à partir duquel le nouveau serveur Prometheus collectera les métriques.
+ Un [pilote Amazon EBS CSI doit être installé sur votre cluster Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) (requis par Helm).
+ Vous devez utiliser Helm CLI 3.0 ou version ultérieure.
+ Vous devez utiliser un ordinateur Linux ou macOS pour effectuer les étapes décrites dans les sections suivantes.

## Étape 1 : Ajouter de nouveaux référentiels de Charts Helm
<a name="AMP-onboard-new-Prometheus-HelmRepo"></a>

Pour ajouter de nouveaux référentiels de Charts de Helm, entrez les commandes suivantes. Pour plus d’informations sur l’utilisation de ces commandes, consultez la section [Helm Repo](https://helm.sh/docs/helm/helm_repo/).

```
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add kube-state-metrics https://kubernetes.github.io/kube-state-metrics
helm repo update
```

## Étape 2 : Créer un espace de noms Prometheus
<a name="AMP-onboard-new-Prometheus-namespace"></a>

Entrez la commande suivante pour créer un espace de noms Prometheus pour le serveur Prometheus et les autres composants de surveillance. *prometheus-namespace*Remplacez-le par le nom que vous souhaitez pour cet espace de noms.

```
kubectl create namespace prometheus-namespace
```

## Étape 3 : Configurer des rôles IAM pour les comptes de service
<a name="AMP-onboard-new-Prometheus-IRSA"></a>

Pour cette méthode d’intégration indiquée, vous devez utiliser des rôles IAM pour les comptes de service du cluster Amazon EKS où le serveur Prometheus est exécuté. 

Avec les rôles IAM pour les comptes de service, vous pouvez associer un rôle IAM à un compte de service Kubernetes. Ce compte de service peut ensuite fournir des autorisations AWS aux pods de n’importe quel pod qui utilise ce compte de service. Pour plus d’informations, consultez la section [Rôles IAM pour les comptes de service](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).

Si vous n’avez pas encore configuré ces rôles, suivez les instructions de la section [Configuration de rôles de service pour l’ingestion de métriques à partir de clusters Amazon EKS](set-up-irsa.md#set-up-irsa-ingest) pour les configurer. Les instructions de cette section nécessitent l’utilisation de `eksctl`. Pour plus d’informations, consultez la section [Démarrer avec Amazon Elastic Kubernetes Service – `eksctl`](https://docs.aws.amazon.com/eks/latest/userguide/getting-started-eksctl.html). 

**Note**  
Lorsque vous n'êtes pas sur EKS ou AWS que vous utilisez simplement une clé d'accès et une clé secrète pour accéder à Amazon Managed Service for Prometheus, vous ne pouvez pas utiliser `EKS-IAM-ROLE` le SigV4 basé.

## Étape 4 : Configurer le nouveau serveur et commencer à ingérer des métriques
<a name="AMP-onboard-ingest-metrics-new-Prometheus-Helm"></a>

Pour installer le nouveau serveur Prometheus qui envoie des métriques à votre espace de travail Amazon Managed Service for Prometheus, procédez comme suit.

**Pour installer un nouveau serveur Prometheus afin d’envoyer des métriques à votre espace de travail Amazon Managed Service for Prometheus**

1. À l’aide d’un éditeur de texte, créez un fichier nommé `my_prometheus_values_yaml` avec le contenu suivant.
   + *IAM\$1PROXY\$1PROMETHEUS\$1ROLE\$1ARN*Remplacez-le par l'ARN du **amp-iamproxy-ingest-role**que vous avez créé dans[Configuration de rôles de service pour l’ingestion de métriques à partir de clusters Amazon EKS](set-up-irsa.md#set-up-irsa-ingest).
   + *WORKSPACE\$1ID*Remplacez-le par l'ID de votre espace de travail Amazon Managed Service for Prometheus.
   + Remplacez *REGION* par la région de votre espace de travail Amazon Managed Service for Prometheus.

   ```
   ## The following is a set of default values for prometheus server helm chart which enable remoteWrite to AMP
   ## For the rest of prometheus helm chart values see: https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus/values.yaml
   ##
   serviceAccounts:
     server:
       name: amp-iamproxy-ingest-service-account
       annotations: 
         eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN}
   server:
     remoteWrite:
       - url: https://aps-workspaces.${REGION}.amazonaws.com/workspaces/${WORKSPACE_ID}/api/v1/remote_write
         sigv4:
           region: ${REGION}
         queue_config:
           max_samples_per_send: 1000
           max_shards: 200
           capacity: 2500
   ```

1. Saisissez la commande suivante pour créer le serveur Prometheus.
   + Remplacez *prometheus-chart-name* par le nom de votre version de Prometheus.
   + *prometheus-namespace*Remplacez-le par le nom de votre espace de noms Prometheus.

   ```
   helm install prometheus-chart-name prometheus-community/prometheus -n prometheus-namespace \
   -f my_prometheus_values_yaml
   ```
**Note**  
Vous pouvez personnaliser la commande `helm install` de différentes façons. Pour plus d’informations, consultez [Installation de Helm](https://helm.sh/docs/helm/helm_install/) dans la documentation Helm.

# Configuration de l’ingestion depuis un serveur Prometheus existant dans Kubernetes sur EC2
<a name="AMP-onboard-ingest-metrics-existing-Prometheus"></a>

Amazon Managed Service for Prometheus prend en charge l’ingestion de métriques à partir de serveurs Prometheus dans des clusters exécutés sur Amazon EKS et dans des clusters Kubernetes exécutés sur Amazon EC2. Les instructions détaillées de cette section concernent un serveur Prometheus dans un cluster Amazon EKS. Les étapes pour un cluster Kubernetes autogéré sur Amazon EC2 sont les mêmes, sauf que vous devrez configurer vous-même le fournisseur OIDC et les rôles IAM pour les comptes de service dans le cluster Kubernetes.

Les instructions de cette section utilisent Helm comme gestionnaire de packages Kubernetes.

**Topics**
+ [Étape 1 : Configurer des rôles IAM pour les comptes de service](#AMP-onboard-existing-Prometheus-IRSA)
+ [Étape 2 : Mettre à niveau votre serveur Prometheus existant à l’aide de Helm](#AMP-onboard-ingest-metrics-existing-remotewrite)

## Étape 1 : Configurer des rôles IAM pour les comptes de service
<a name="AMP-onboard-existing-Prometheus-IRSA"></a>

Pour cette méthode d’intégration indiquée, vous devez utiliser des rôles IAM pour les comptes de service du cluster Amazon EKS où le serveur Prometheus est exécuté. Ces rôles sont également appelés *fonctions du service*.

Avec les rôles de service, vous pouvez associer un rôle IAM à un compte de service Kubernetes. Ce compte de service peut ensuite fournir des AWS autorisations aux conteneurs de n'importe quel pod utilisant ce compte de service. Pour plus d’informations, consultez la section [Rôles IAM pour les comptes de service](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).

Si vous n’avez pas encore configuré ces rôles, suivez les instructions de la section [Configuration de rôles de service pour l’ingestion de métriques à partir de clusters Amazon EKS](set-up-irsa.md#set-up-irsa-ingest) pour les configurer.

## Étape 2 : Mettre à niveau votre serveur Prometheus existant à l’aide de Helm
<a name="AMP-onboard-ingest-metrics-existing-remotewrite"></a>

Les instructions de cette section incluent la configuration de l’écriture à distance et de sigv4 pour authentifier et autoriser le serveur Prometheus à écrire à distance sur votre espace de travail Amazon Managed Service for Prometheus.

### Utilisation de Prometheus version 2.26.0 ou ultérieure
<a name="AMP-onboard-ingest-metrics-Helm13"></a>

Suivez ces étapes si vous utilisez des Charts de Helm avec une image du serveur Prometheus version 2.26.0 ou ultérieure.

**Pour configurer l’écriture à distance depuis un serveur Prometheus à l’aide de Charts de Helm**

1. Créez une nouvelle section d’écriture à distance dans votre fichier de configuration Helm :
   + `${IAM_PROXY_PROMETHEUS_ROLE_ARN}`Remplacez-le par l'ARN du **amp-iamproxy-ingest-role**que vous avez créé dans[Étape 1 : Configurer des rôles IAM pour les comptes de service](#AMP-onboard-existing-Prometheus-IRSA). L’ARN du rôle doit être au format `arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role`.
   + Remplacez `${WORKSPACE_ID}` par l’ID de votre espace de travail Amazon Managed Service for Prometheus.
   + Remplacez `${REGION}` par la Région de votre espace de travail Amazon Managed Service for Prometheus (comme `us-west-2`).

   ```
   ## The following is a set of default values for prometheus server helm chart which enable remoteWrite to AMP
       ## For the rest of prometheus helm chart values see: https://github.com/prometheus-community/helm-charts/blob/main/charts/prometheus/values.yaml
       ##
       serviceAccounts:
         server:
           name: amp-iamproxy-ingest-service-account
           annotations: 
             eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN}
       server:
         remoteWrite:
           - url: https://aps-workspaces.${REGION}.amazonaws.com/workspaces/${WORKSPACE_ID}/api/v1/remote_write
             sigv4:
               region: ${REGION}
             queue_config:
               max_samples_per_send: 1000
               max_shards: 200
               capacity: 2500
   ```

1. Mettez à jour la configuration existante de votre serveur Prometheus à l’aide de Helm :
   + Remplacez `prometheus-chart-name` par le nom de votre version de Prometheus.
   + Remplacez `prometheus-namespace` par l’espace de noms Kubernetes dans lequel votre serveur Prometheus est installé.
   + Remplacez `my_prometheus_values_yaml` par le chemin d’accès à votre fichier de configuration Helm.
   + Remplacez `current_helm_chart_version` par la version actuelle de vos Charts de Helm du serveur Prometheus. Vous pouvez trouver la version actuelle du graphique à l’aide de la commande [helm list](https://helm.sh/docs/helm/helm_list/).

   ```
   helm upgrade prometheus-chart-name prometheus-community/prometheus \
          -n prometheus-namespace \
          -f my_prometheus_values_yaml \
          --version current_helm_chart_version
   ```

### Utilisation de versions antérieures de Prometheus
<a name="AMP-onboard-ingest-metrics-Helm8"></a>

Suivez ces étapes si vous utilisez une version de Prometheus antérieure à la version 2.26.0. Ces étapes utilisent une approche parallèle, car les versions antérieures de Prometheus ne prennent pas en charge nativement le processus de AWS signature Signature version 4 (SigV4).AWS 

Ces instructions supposent que vous utilisez Helm pour déployer Prometheus.

**Pour configurer l’écriture à distance depuis un serveur Prometheus**

1. Sur votre serveur Prometheus, créez une nouvelle configuration d’écriture à distance. Commencez par créer un nouveau fichier de mise à jour. Nous appellerons ce fichier `amp_ingest_override_values.yaml`.

   Ajoutez les valeurs suivantes au fichier YALM.

   ```
   serviceAccounts:
           server:
               name: "amp-iamproxy-ingest-service-account"
               annotations:
                   eks.amazonaws.com/role-arn: "${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}"
       server:
           sidecarContainers:
               - name: aws-sigv4-proxy-sidecar
                 image: public.ecr.aws/aws-observability/aws-sigv4-proxy:1.0
                 args:
                 - --name
                 - aps
                 - --region
                 - ${REGION}
                 - --host
                 - aps-workspaces.${REGION}.amazonaws.com
                 - --port
                 - :8005
                 ports:
                 - name: aws-sigv4-proxy
                   containerPort: 8005
           statefulSet:
               enabled: "true"
           remoteWrite:
               - url: http://localhost:8005/workspaces/${WORKSPACE_ID}/api/v1/remote_write
   ```

   Remplacez `${REGION}` par la Région de votre espace de travail Amazon Managed Service for Prometheus.

   `${SERVICE_ACCOUNT_IAM_INGEST_ROLE_ARN}`Remplacez-le par l'ARN du **amp-iamproxy-ingest-role**que vous avez créé dans[Étape 1 : Configurer des rôles IAM pour les comptes de service](#AMP-onboard-existing-Prometheus-IRSA). L’ARN du rôle doit être au format `arn:aws:iam::your account ID:role/amp-iamproxy-ingest-role`.

   Remplacez `${WORKSPACE_ID}` par votre ID d’espace de travail.

1. Mettez à niveau vos Charts de Helm Prometheus. Commencez par rechercher le nom de vos Charts de Helm en entrant la commande suivante. Dans la sortie de cette commande, recherchez un graphique dont le nom inclut `prometheus`.

   ```
   helm ls --all-namespaces
   ```

   Entrez ensuite la commande suivante.

   ```
   helm upgrade --install prometheus-helm-chart-name prometheus-community/prometheus -n prometheus-namespace -f ./amp_ingest_override_values.yaml
   ```

   Remplacez *prometheus-helm-chart-name* par le nom du diagramme de barre de Prometheus renvoyé dans la commande précédente. Remplacez *prometheus-namespace* par le nom de votre espace de noms.

#### Téléchargement de Charts de Helm
<a name="AMP-onboard-ingest-downloadHelm"></a>

Si vous n’avez pas encore téléchargé les Charts de Helm en local, vous pouvez utiliser la commande suivante pour les télécharger.

```
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
    helm pull prometheus-community/prometheus --untar
```

# Configuration de l’ingestion depuis un serveur Prometheus existant dans Kubernetes sur Fargate
<a name="AMP-onboard-ingest-metrics-existing-Prometheus-fargate"></a>

Amazon Managed Service for Prometheus prend en charge l’ingestion de métriques à partir de serveurs Prometheus dans des clusters Kubernetes autogérés exécutés sur Fargate. Pour ingérer des métriques depuis des serveurs Prometheus dans des clusters Amazon EKS exécutés sur Fargate, remplacez les configurations par défaut dans un fichier de configuration nommé amp\$1ingest\$1override\$1values.yaml comme suit :

```
prometheus-node-exporter:
        enabled: false
    
    alertmanager:
        enabled: false
    
    serviceAccounts:
      server:
        name: amp-iamproxy-ingest-service-account
        annotations: 
          eks.amazonaws.com/role-arn: ${IAM_PROXY_PROMETHEUS_ROLE_ARN}
    
    server:
      persistentVolume:
        enabled: false
      remoteWrite:
        - url: https://aps-workspaces.${REGION}.amazonaws.com/workspaces/${WORKSPACE_ID}/api/v1/remote_write
          sigv4:
            region: ${REGION}
          queue_config:
            max_samples_per_send: 1000
            max_shards: 200
            capacity: 2500
```

Installez Prometheus en utilisant les remplacements avec la commande suivante :

```
helm install prometheus-for-amp prometheus-community/prometheus \
                   -n prometheus \
                   -f amp_ingest_override_values.yaml
```

Notez que dans la configuration des Charts de Helm, nous avons désactivé l’exportateur de nœuds et le gestionnaire d’alertes, ainsi que le déploiement du serveur Prometheus.

Vous pouvez vérifier l’installation à l’aide de l’exemple de requête de test suivant.

```
$ awscurl --region region --service aps "https://aps-workspaces.region_id.amazonaws.com/workspaces/workspace_id/api/v1/query?query=prometheus_api_remote_read_queries"
    {"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"prometheus_api_remote_read_queries","instance":"localhost:9090","job":"prometheus"},"value":[1648461236.419,"0"]}]}}21
```