Configuration de l’ingestion depuis un serveur Prometheus existant dans Kubernetes sur EC2 - 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.

Configuration de l’ingestion depuis un serveur Prometheus existant dans Kubernetes sur EC2

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.

Étape 1 : Configurer des rôles IAM pour les comptes de service

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.

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 pour les configurer.

Étape 2 : Mettre à niveau votre serveur Prometheus existant à l’aide de Helm

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

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-roleque vous avez créé dansÉtape 1 : Configurer des rôles IAM pour les comptes de service. 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
  2. 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.

    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

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-roleque vous avez créé dansÉtape 1 : Configurer des rôles IAM pour les comptes de service. 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.

  2. 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-namepar 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

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