OpenTelemetry Collectionneur - Amazon CloudWatch

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.

OpenTelemetry Collectionneur

Le OpenTelemetry Collector est un agent open source indépendant du fournisseur qui reçoit, traite et exporte des données de télémétrie. Il agit comme un pipeline central entre vos applications et Amazon CloudWatch, en collectant des métriques, des journaux et des traces provenant de plusieurs sources et en les envoyant CloudWatch via le OpenTelemetry protocole OTLP (OTLP).

L'utilisation du OpenTelemetry Collector CloudWatch offre les avantages suivants :

  • Collectez les données télémétriques de plusieurs applications et hôtes via un seul agent, réduisant ainsi le nombre de connexions à. CloudWatch

  • Traitez et filtrez la télémétrie avant de l'envoyer à CloudWatch, notamment en ajoutant ou en supprimant des attributs, en groupant les données et en échantillonnant les traces.

  • Utilisez la même configuration de collecteur dans tous les environnements cloud AWS, sur site et dans d'autres environnements cloud, afin de fournir un pipeline de télémétrie cohérent quel que soit l'endroit où vos applications s'exécutent.

  • Envoyez des métriques à CloudWatch avec des libellés enrichis qui peuvent être interrogés à l'aide du langage de requête Prometheus (ProMQL) dans Query Studio. CloudWatch

Récepteurs compatibles

Le OpenTelemetry Collector prend en charge une large gamme de récepteurs pour l'ingestion de données de télémétrie. Vous pouvez utiliser des OpenTelemetry récepteurs tels que le récepteur OTLP pour les applications instrumentées OpenTelemetry SDKs ou les récepteurs Prometheus pour extraire les métriques des exportateurs Prometheus existants. Les récepteurs Prometheus couramment utilisés sont les suivants : CloudWatch

  • Récepteur Prometheus, pour gratter n'importe quel terminal compatible avec Prometheus

  • Récepteur Host Metrics, pour collecter des métriques au niveau du système auprès de l'hôte

  • Récepteur Kubernetes Cluster, pour collecter des métriques au niveau du cluster à partir du serveur d'API Kubernetes

Vous pouvez configurer plusieurs récepteurs dans un seul collecteur, ce qui vous permet de collecter à la fois les métriques OpenTelemetry et celles de Prometheus et de les CloudWatch envoyer via le même pipeline. Pour la liste complète des récepteurs disponibles, consultez le référentiel OpenTelemetry Collector.

Prise en main

Prérequis — Si vous utilisez le point de terminaison OTLP pour le suivi, assurez-vous que la recherche de transactions est activée.

Étapes :

  1. Téléchargez la dernière version de la distribution OpenTelemetry Collector. Pour plus d'informations, consultez les versions OpenTelemetry Collector.

  2. Installez le OpenTelemetry collecteur sur votre hôte. Le collecteur fonctionne sur tous les systèmes d'exploitation et toutes les plateformes. Pour plus d’informations, consultez Installer le Collector.

  3. Configurez les AWS informations d'identification sur votre hôte Amazon EC2 ou sur site. Le collecteur utilise ces informations d'identification pour s'authentifier CloudWatch lors de l'envoi de données de télémétrie. Voir ci-dessous pour plus de détails.

    Setup IAM permissions for Amazon EC2
    Suivez la procédure ci-dessous pour associer la politique IAM CloudWatchAgentServerPolicy au rôle IAM de votre instance Amazon EC2.
    1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

    2. Sélectionnez Rôles, puis recherchez et sélectionnez le rôle utilisé par votre instance Amazon EC2.

    3. Sous l’onglet Autorisations, sélectionnez Ajouter des autorisations, Associer des politiques.

    4. À l’aide du champ de recherche, recherchez la politique CloudWatchAgentServerPolicy.

    5. Sélectionnez la politique CloudWatchAgentServerPolicy, puis choisissez Ajouter des autorisations.

    Setup IAM permissions for on-premise hosts
    Vous pouvez créer un utilisateur IAM qui peut être utilisé pour fournir des autorisations à vos hôtes sur site.
    1. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

    2. Sélectionnez Utilisateurs, Créer un utilisateur.

    3. Sous Détails de l’utilisateur, pour Nom d’utilisateur, entrez un nom pour le nouvel utilisateur IAM. Il s'agit du nom de connexion AWS qui sera utilisé pour authentifier votre hôte.

    4. Choisissez Suivant.

    5. Sur la page Définir les autorisations, pour les Options des autorisations, sélectionnez Attacher directement les politiques.

    6. Dans la liste des politiques d'autorisation, sélectionnez la CloudWatchAgentServerPolicypolitique à ajouter à votre utilisateur.

    7. Choisissez Suivant.

    8. Sur la page Réviser et créer, assurez-vous que vous êtes satisfait du nom d'utilisateur et que la CloudWatchAgentServerPolicypolitique figure dans le résumé des autorisations.

    9. Choisissez Create user (Créer un utilisateur).

    10. Créez et récupérez votre clé AWS d'accès et votre clé secrète : dans le volet de navigation de la console IAM, choisissez Utilisateurs, puis sélectionnez le nom d'utilisateur de l'utilisateur que vous avez créé à l'étape précédente.

    11. Sur la page de l’utilisateur, ouvrez l’onglet Informations d’identification de sécurité.

    12. Dans la section Clés d’accès, sélectionnez Créer une clé d’accès.

    13. Pour Créer une clé d’accès – Étape 1, sélectionnez Interface de ligne de commande (CLI).

    14. Pour Créer une clé d’accès – Étape 2, ajoutez éventuellement une balise puis cliquez sur Suivant.

    15. Pour Créer une clé d’accès – Étape 3, sélectionnez Télécharger le fichier .csv pour enregistrer un fichier .csv avec la clé d’accès et la clé d’accès secrète de votre utilisateur IAM. Vous aurez besoin de ces informations pour l’étape suivante.

    16. Sélectionnez Exécuté.

    17. Configurez vos AWS informations d'identification sur votre hôte local en saisissant la commande suivante. Remplacez ACCESS_KEY_ID et SECRET_ACCESS_ID par votre clé d’accès et votre clé d’accès secrète nouvellement générées à partir du fichier .csv que vous avez téléchargé à l’étape précédente.

      $ aws configure AWS Access Key ID [None]: ACCESS_KEY_ID AWS Secret Access Key [None]: SECRET_ACCESS_ID Default region name [None]: MY_REGION Default output format [None]: json
  4. Configurez les AWS informations d'identification pour vos clusters Amazon EKS ou Kubernetes. Le moyen le plus simple de démarrer avec Amazon EKS est d'utiliser le module complémentaire EKS OTel Container Insights. Si vous préférez utiliser directement le OpenTelemetry collecteur, suivez la procédure ci-dessous pour configurer les AWS informations d'identification de vos clusters Amazon EKS ou Kubernetes auxquels envoyer des données de télémétrie. CloudWatch

    Setup IAM permissions for Amazon EKS
    1. Créez un fournisseur d’identité OIDC IAM pour votre cluster à l’aide de la commande suivante.

      eksctl utils associate-iam-oidc-provider --cluster ${CLUSTER_NAME} --region ${REGION} --approve
    2. Attribuez des rôles IAM au compte de service Kubernetes pour OTel Collector à l'aide de la commande suivante.

      eksctl create iamserviceaccount \ --name ${COLLECTOR_SERVICE_ACCOUNT}\ --namespace ${NAMESPACE} \ --cluster ${CLUSTER_NAME} \ --region ${REGION} \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --approve \ --override-existing-serviceaccounts
    Setup IAM permissions for Kubernetes
    1. Configurez vos AWS informations d'identification sur votre hôte local en saisissant la commande suivante. Remplacez ACCESS_KEY_ID et SECRET_ACCESS_ID par votre clé d'accès et votre clé d'accès secrète nouvellement générées à partir du fichier .csv que vous avez téléchargé à l'étape précédente. Par défaut, le fichier d'informations d'identification est enregistré sous/home/user/.aws/credentials. .

      aws configure AWS Access Key ID [None]: ACCESS_KEY_ID AWS Secret Access Key [None]: SECRET_ACCESS_ID Default region name [None]: MY_REGION Default output format [None]: json
    2. Modifiez la ressource OpenTelemetry Collector pour ajouter le secret d'identification AWS nouvellement créé à l'aide de la commande : kubectl edit OpenTelemetryCollector otel_collector

    3. À l'aide de l'éditeur de fichiers, ajoutez les AWS informations d'identification dans le OpenTelemetryCollector conteneur en ajoutant la configuration suivante en haut du déploiement. Remplacez le chemin /home/user/.aws/credentials par l'emplacement de votre fichier d' AWS informations d'identification local.

      spec: volumeMounts: - mountPath: /rootfs volumeMounts: - name: aws-credentials mountPath: /root/.aws readOnly: true volumes: - hostPath: path: /home/user/.aws/credentials name: aws-credentials
  5. Configurez l'exportateur OTLP dans la configuration de votre collecteur pour envoyer la télémétrie au point de terminaison. CloudWatch Consultez les exemples ci-dessous.

Exemples de configuration de collecteurs

Copiez et collez le contenu ci-dessous pour configurer votre collecteur afin qu’il envoie les journaux et les traces aux points de terminaison OTLP.

receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 exporters: otlphttp/logs: compression: gzip logs_endpoint: logs_otlp_endpoint headers: x-aws-log-group: ency_log_group x-aws-log-stream: default auth: authenticator: sigv4auth/logs otlphttp/traces: compression: gzip traces_endpoint: traces_otlp_endpoint auth: authenticator: sigv4auth/traces extensions: sigv4auth/logs: region: "region" service: "logs" sigv4auth/traces: region: "region" service: "xray" service: telemetry: extensions: [sigv4auth/logs, sigv4auth/traces] pipelines: logs: receivers: [otlp] exporters: [otlphttp/logs] traces: receivers: [otlp] exporters: [otlphttp/traces]

Voici un exemple d’envoi de journaux et de traces à l’aide de sigv4 vers us-east-1.

receivers: otlp: protocols: grpc: endpoint: 0.0.0.0:4317 http: endpoint: 0.0.0.0:4318 exporters: otlphttp/logs: compression: gzip logs_endpoint: https://logs.us-east-1.amazonaws.com/v1/logs headers: x-aws-log-group: MyApplicationLogs x-aws-log-stream: default auth: authenticator: sigv4auth/logs otlphttp/traces: compression: gzip traces_endpoint: https://xray.us-east-1.amazonaws.com/v1/traces auth: authenticator: sigv4auth/traces extensions: sigv4auth/logs: region: "us-east-1" service: "logs" sigv4auth/traces: region: "us-east-1" service: "xray" service: telemetry: extensions: [sigv4auth/logs, sigv4auth/traces] pipelines: logs: receivers: [otlp] exporters: [otlphttp/logs] traces: receivers: [otlp] exporters: [otlphttp/traces]
Note

Configurez votre configuration OpenTelemetry SDKs d'échantillonnage permanent pour enregistrer de manière fiable 100 % des plages et obtenir une visibilité complète sur vos applications critiques grâce aux CloudWatch signaux d'application. Pour plus d'informations, consultez un exemple de configuration d'échantillonneur du SDK OpenTelemetry Java. Pour un exemple de configuration de OpenTelemetry Collector avec le point de terminaison OTLP X-Ray, consultez le référentiel de démonstration des signaux d'application.

Copiez et collez le contenu ci-dessous pour configurer votre collecteur afin qu'il envoie des métriques aux points de terminaison OTLP.

receivers: otlp: protocols: http: endpoint: "0.0.0.0:4318" processors: batch: send_batch_size: 200 timeout: 10s exporters: otlphttp: tls: insecure: false endpoint: metrics_otlp_endpoint auth: authenticator: sigv4auth extensions: sigv4auth: service: "monitoring" region: "region" service: extensions: [sigv4auth] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [otlphttp]

Voici un exemple d'envoi de métriques à l'aide de sigv4 à us-east-1.

receivers: otlp: protocols: http: endpoint: "0.0.0.0:4318" processors: batch: send_batch_size: 200 timeout: 10s exporters: otlphttp: tls: insecure: false endpoint: "https://monitoring.us-east-1.amazonaws.com/v1/metrics:443" auth: authenticator: sigv4auth extensions: sigv4auth: service: "monitoring" region: "us-east-1" service: extensions: [sigv4auth] pipelines: metrics: receivers: [otlp] processors: [batch] exporters: [otlphttp]