Surveillance d' Amazon Web Services (AWS) avec l'agent Amazon Web Services (AWS)
Pour surveiller les services gérés par AWS, Instana doit collecter des données provenant des API de AWS, telles que CloudWatch,, S3 et X-Ray, sur lesquelles il n'est pas possible d'installer un agent hôte ni aucun autre type d'agent.
Toutefois, l'agent hôte d' Instana peut être configuré de manière spécifique pour surveiller les services gérés par AWS. L'agent hôte configuré de manière spécifique pour surveiller les services d' AWS s est appelé « agent d' AWS ». Il est recommandé d'installer l'agent AWS sur un serveur dédié. Veillez également à ce qu'au moins un agent « AWS » soit disponible dans chaque région d' AWS.
Après avoir installé l'agent AWS , vous pouvez obtenir des données dans et hors des services AWS pris en charge, mais vous n'avez pas accès aux infrastructures qui alimente les services.
- Pour surveiller une machine virtuelle Amazon Elastic Computing ( EC2 ), un cluster d' Kubernetes s fonctionnant sur AWS (qu'il soit installé et géré par vos soins ou via Amazon Elastic Kubernetes Service ) ou un cluster d'Amazon Elastic Container, vous devez utiliser l'agent hôte Instana, et non l'agent AWS. Pour plus d'informations sur les étapes d'installation de l'agent hôte, voir les rubriques de la section Plateformes .
- Pour surveiller AWS dans un cluster Kubernetes ou Red Hat OpenShift, n'installez pas l'agent Instana AWS sur chaque nœud du cluster. Installez l'agent d' AWS ation sur un serveur dédié.
- Migration vers le SDK v2 d' AWS :
- AWS a officiellement mis fin au support du SDK d' AWS v1 le 31 décembre 2025. Instana procède actuellement à la migration de tous les capteurs et composants de découverte d' AWS vers le SDK AWS v2 afin de garantir la poursuite des mises à jour de sécurité, l'amélioration des performances et l'accès aux dernières fonctionnalités d' AWS.
- Pour terminer la migration, vous devez redémarrer ou mettre à jour votre agent d' Instana. Le processus de migration est conçu pour s'effectuer en toute transparence, sans interruption de surveillance et sans nécessiter de modifications de configuration.
Pour plus d'informations sur les instructions de migration en fonction de votre type de déploiement (sur hôte, Docker ou Kubernetes ), consultez la page « Migration de l'API AWS v1 vers l'API AWS v2 ».
Plateformes
Pour surveiller les plateformes suivantes, installez l'agent hôte d' Instana :
Services surveillés
Pour surveiller les services suivants gérés par AWS, installez l'agent AWS Instana comme décrit dans la section « Installation de l'agent AWS » :
XRay (obsolète)
Installation de l'agent d' AWS
Vous pouvez installer l'agent AWS sur EC2 ou sur Fargate sur ECS.
Remarques :
En fonction du nombre d'entités surveillées dans votre environnement de cloud, vous devrez peut-être augmenter la quantité maximale de mémoire disponible pour votre agent hôte. Vous pouvez augmenter la mémoire de l'agent en définissant la variable d'environnement
AGENT_MAX_MEMsur une valeur supérieure à la valeur par défaut de 544 MiB. Par exemple, pour définir la mémoire de l'agent sur 1 Go, vous pouvez définirAGENT_MAX_MEM=1024M.Installez un seul agent AWS par combinaison de compte AWS et de région AWS . L'installation de plusieurs agents AWS pour une même combinaison de compte AWS et de région AWS peut entraîner des coûts supplémentaires de la part de AWS, sans apporter d'avantage supplémentaire en termes de qualité de la surveillance via Instana.
Installation sur EC2
Vous pouvez installer l'agent « AWS » sur Windows ou « Linux » sur EC2. Il est préférable d'exécuter l'agent Instana AWS sur une machine polyvalente de dernière génération équipée d' Linux®. Les instances m5.large , par exemple, constituent une solution idéale.
Dans l'interface utilisateur d' Instana, cliquez sur Plus > Agents > Installer des agents > AWS.
Dans la liste Technologie, sélectionnez Capteur Instana AWS.
Dans la liste « Exécuter votre agent AWS », sélectionnez « Elastic Cloud Compute ( EC2 ) » (c'est l'option par défaut).
La clé et l'emplacement de votre agent sont préremplis dans le script pour être utilisés en tant que
User Datasur EC2. Copiez le script affiché. Le script se présente comme suit, sauf que toutes les informations nécessaires sont fournies:#!/bin/bash curl -o setup_agent.sh https://setup.instana.io/agent chmod 700 ./setup_agent.sh sudo -E ./setup_agent.sh -y -a <your-agent-key> -m aws -t dynamic -e <location> -sLancez une machine virtuelle EC2 dédiée et utilisez le script copié en tant que
User Data. Pour plus d'informations sur l'utilisation de la commande « user »User Datasur EC2, consultez la section « Exécution de commandes sur votre instance Linux » dans la documentation de Launch.Copiez les configurations du bloc de code de la rubrique Rôles IAM dans un fichier
IAM_permission.json. Ces configurations sont utilisées pour le rôle IAM requis par la machine virtuelle EC2 qui exécute l'agent Instana AWS et permettent à l'agent AWS de détecter et de surveiller vos ressources AWS. Créez ensuite un rôle IAM avec le fichierIAM_permission.json. Pour plus d'informations, consultez la section Création d'un rôle pour déléguer des autorisations à un utilisateur IAM.Pour que le rôle IAM puisse effectuer
AssumedRolel'action, modifiez le paramètreTrust Relationshipcomme suit (affiché sous la formetrust_relationship.jsondans l'interface utilisateur d' Instana ) :{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }Si l'agent s'exécute sur une machine EC2 e sans accès à Internet, modifiez le fichier
Trust Relationshipcomme suit :{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com.cn" }, "Action": "sts:AssumeRole" } ] }Pour les autres configurations nécessaires, consultez la section « Configuration du point de terminaison régional STS ».
Installation sur Fargate sur ECS
Vous pouvez installer l'agent « AWS » sur Windows ou Linux sur Fargate dans ECS.
Dans l'interface utilisateur d' Instana, cliquez sur Plus > Agents > Installer des agents > AWS.
Dans la liste Technologie, sélectionnez Capteur Instana AWS.
Dans la liste Exécuter votre agent AWS sur , sélectionnez Elastic Container Service (ECS).
L' JSON e d'une définition de tâche est pré-générée pour vous dans le modèle « Task Definition JSON ». Téléchargez le fichier « JSON » et utilisez-le avec les fonctions «Configurer à l'aide de l' JSON » de l'interface utilisateur de la définition de tâche.
Téléchargez le fichier d' JSON s sur les autorisations IAM, puis attribuez à la nouvelle définition de tâche un rôle IAM qui comprend au moins les autorisations répertoriées dans le fichier d' JSON s téléchargé.
Créez un service ECS avec une instance de la nouvelle définition de tâche.
Configuration
Installation hors de votre infrastructure AWS
Vous pouvez également dédier tout agent qui s'exécute en dehors de votre infrastructure AWS . Pour atteindre cet objectif, vous devez spécifier les variables d'environnement suivantes dans le fichier setenv :
- Sous Linux :
/opt/instana/agent/bin/setenv - Sous Windows :
C:\Program Files\Instana\instana-agent\bin\setenv - La région que vous souhaitez surveiller:
INSTANA_AWS_REGION_CONFIG= - Les données d'identification permettant d'accéder aux ressources AWS. Ces données d'identification doivent appartenir à un utilisateur, qui est autorisé à accéder aux ressources déjà décrites dans la section Configuration d' Amazon Web Services IAM .
AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY=
Configuration de proxy
Par vos variables d'environnement
Pour configurer le détecteur AWS afin d'utiliser la configuration de proxy, spécifiez les variables d'environnement suivantes dans le *instanaAgentDir*/bin/setenv:
export HTTP_PROXY=
export HTTPS_PROXY=
Vous trouverez plus d'informations sur le proxy HTTP en cliquant sur ce lien.
Par l'agent configuration.yaml
Pour configurer l'agent AWS afin qu'il utilise la configuration de proxy, ajoutez les paramètres de configuration d'agent suivants:
com.instana.plugin.aws:
proxy_host: 'example.com' # proxy host name or ip address
proxy_port: 3128 # proxy port
proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
proxy_username: 'username' # OPTIONAL: proxy username
proxy_password: 'password' # OPTIONAL: proxy password
tagging: # proxy setup for AWS Tagging API, used for AWS resource monitoring filtering
proxy_host: 'example.com' # proxy host name or ip address
proxy_port: 3128 # proxy port
proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
proxy_username: 'username' # OPTIONAL: proxy username
proxy_password: 'password' # OPTIONAL: proxy password
Les paramètres de proxy peuvent également être configurés au niveau de chaque détecteur AWS . Dans ce cas, la configuration globale mentionnée précédemment est remplacée par la configuration de détecteur AWS spécifique. Pour plus d'informations, voir la documentation spécifique du détecteur AWS .
Configuration du point de terminaison régional STS
Par défaut, l'agent « Instana » contacte le point de terminaison STS global à partir de l'instance « EC2 » afin de récupérer les informations d'identification du profil d'instance. Toutefois, si l'agent hôte d' Instana s s'exécute sur une machine EC2 sans accès à Internet (par exemple, dans certaines régions de Chine), le point de terminaison régional STS doit être défini sous forme de variable d'environnement, ce qui indique à l'agent d' Instana s d'utiliser les points de terminaison STS régionaux.
Une fois l'agent « Instana » installé, définissez la variable d'environnement suivante dans le fichier *instanaAgentDir*/bin/setenv:
export AWS_STS_REGIONAL_ENDPOINTS=regional
Activer la surveillance de services spécifiques
Pour chaque service, vous devez ajouter les droits nécessaires sur les pages de service individuelles, liées à partir de la section Services surveillés . Pour exclure un service de la surveillance, omettez les droits correspondants.
Une autre façon d'exclure un service de la surveillance consiste à ajouter l'indicateur-enabled_ approprié dans <agent_install_dir>/etc/instana/configuration.yml , comme décrit dans les pages de service individuelles suivantes.
Surveillance de plusieurs comptes AWS
L'agent AWS prend en charge les services de monitoring de plusieurs comptes AWS situés dans la même région. À l'heure actuelle, il existe deux approches : l'utilisation de profils nommés via AWS et l'utilisation du service de jetons de sécurité (STS) via AWS.
Approche des profils nommés AWS
Pour surveiller plusieurs comptes, vous devez définir des profils nommés de la même manière que vous le feriez avec l 'interface de ligne de commande AWS, ou en créant le fichier manuellement. Le .aws/credentials fichier doit être créé dans le répertoire personnel de l'utilisateur qui exécute l'agent « Instana », qui est généralement root. L'interface CLI d' AWS utilise les fichiers ~/.aws/credentials d'identifiants comme suit :
[default]
aws_access_key_id = accessKey1
aws_secret_access_key = secretAccessKey1
[profile2]
aws_access_key_id = accessKey2
aws_secret_access_key = secretAccessKey2
[profile3]
aws_access_key_id = accessKey3
aws_secret_access_key = secretAccessKey3
Chaque profil représente le mappage entre le profil nommé AWS et les données d'identification d'accès à AWS. Lors de l'installation d'un AWS, un profil default AWS est créé. Il n'est pas nécessaire d'ajouter le profil default au fichier ~/.aws/credentials .
Les profils supplémentaires que doit utiliser l'agent AWS sont à indiquer dans le fichier de configuration de l'agent /opt/instana/agent/etc/instana/configuration.yaml comme suit :
com.instana.plugin.aws:
profile_names:
- 'profile2'
- 'profile3'
Remarques :
- La surveillance de plusieurs comptes AWS peut également être spécifiée pour des services AWS particuliers dans leur configuration spécifique. La liste des profils spécifiés pour un service spécifique remplace les configurations générales.
- Veillez à suivre les recommandations concernant la création du fichier de données d'identification.
Pour éviter toute menace de sécurité, vous devriez soit définir des règles plus strictes pour l'instance EC2, soit créer un utilisateur distinct pour Instana AWS, ce qui vous évitera d'ajouter les identifiants de sécurité de l'utilisateur root au fichier ~/.aws/credentials .
Approche AWS STS
Cette approche utilise l'API de service AWS STS pour obtenir des données d'identification permettant l'accès à tous les comptes AWS supplémentaires qui doivent être surveillés par l'agent Instana. Une fois l'agent installé et configuré pour surveiller le compte par défaut, en suivant les étapes décrites dans la Installation section, vous devez fournir les ARN des rôles IAM de tous les comptes d' AWS s supplémentaires, de la manière suivante :
com.instana.plugin.aws:
role_arns:
- 'arn:aws:iam::<account_2_id>:role/<role_2_name>'
- 'arn:aws:iam::<account_3_id>:role/<role_3_name>'
Chaque rôle, correspondant à l'ARN spécifié, doit également inclure les autorisations IAM requises pour la surveillance d' Instana AWS. Ainsi, chaque rôle doit permettre au compte par défaut d'effectuer l' sts:AssumeRole, en définissant la Trust relationship politique de la manière suivante :
Si l'action sts:AssumeRole est effectuée à partir du contexte utilisateur AWS, lorsque l'agent est installé en dehors de votre infrastructure AWS
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<default_account_id>:user/<default_account_username>" }, "Action": "sts:AssumeRole" } ] }Si l'action sts:AssumeRole est effectuée à partir du contexte de rôle IAM, lorsque l'agent est installé sur EC2 :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<default_account_id>:role/<default_account_IAM_role_name>" }, "Action": "sts:AssumeRole" } ] }De la même manière, Compte par défaut devrait également être autorisé à fairests:AssumeRole à tous les comptes supplémentaires. Pour ce faire, il suffit de définir des politiques IAM supplémentaires au sein du rôle IAM utilisé pour la surveillance d' Instana, comme suit :
{ "Version": "2012-10-17", "Statement": [ { #Instana monitoring policy specifications }, { "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::<account_1_id>:role/<role_1_name>", "Effect": "Allow" }, { "Action": [ "sts:AssumeRole" ], "Resource": "arn:aws:iam::<account_2_id>:role/<role_2_name>", "Effect": "Allow" } ] }
Filtrage et balisage
tag:GetResources doit figurer parmi les autorisations IAM accordées à l'agent AWS.Une fois que vous avez activé la surveillance d'un service, vous pouvez déterminer quelles instances de ce service Instana seront surveillées en fonction des balises AWS, en modifiant le fichier /opt/instana/agent/etc/instana/configuration.yaml de configuration de l'agent AWS.
Les options disponibles dans le fichier de configuration sont les suivantes :
com.instana.plugin.aws:
# Comma-separated list of tags in key:value format.
# Any AWS resource containing at least one of the specified tags is discovered.
include_tags: ...
# Comma-separated list of tags in key:value format.
# Any AWS resource containing at least one of the specified tags is omitted from discovery.
exclude_tags: ...
# Exclude untagged AWS resources by setting the flag to `false`
include_untagged: ...
Plusieurs balises séparées par des virgules peuvent être définies. Les balises doivent être une paire clé-valeur séparée par :. Lorsque vous définissez des balises dans les deux listes (inclusion et exclusion), la priorité de la liste d'exclusion est plus élevée. S'il n'est pas nécessaire de filtrer les services, la configuration ne doit pas être définie.
L'agent d' Instana surveille automatiquement toutes les ressources AWS auxquelles aucune balise n'a été attribuée. {: note} Pour exclure les ressources non balisées de la surveillance, définissez le include_untagged paramètre sur false.
Le filtrage peut également être configuré sur le niveau de service. Dans ce cas, la configuration par défaut est remplacée pour le service concerné. Pour plus de détails sur le filtrage de reconnaissance par service spécifique, voir la documentation de service spécifique.
Taux d'interrogation des balises
Pour spécifier la fréquence à laquelle l'agent AWS interroge le service AWS surveillé pour obtenir les balises associées, utilisez la propriété de configuration tagged-services-poll-rate . La valeur par défaut est 300 secondes. L'agent utilise le client de service AWS pour interroger les balises.
La configuration du taux d'interrogation des ressources balisées est la suivante :
com.instana.plugin.aws:
tagged-services-poll-rate: 60 #default 300
Intervalle d'interrogation
L'intervalle d'interrogation indique à quelle fréquence l'agent d' AWS interroge le serveur CloudWatch API. Il est configurable en tant que cloudwatch_period dans le fichier configuration.yml . La valeur par défaut est 300 secondes. Il est courant de voir les plateformes de surveillance utiliser une valeur comprise entre 5 et 10 minutes.
La fréquence d'interrogation est configurable à deux niveaux :
Au niveau de l'agent pour tous les services AWS surveillés par l'agent :
com.instana.plugin.aws: cloudwatch_period: 300Par service AWS :
com.instana.plugin.aws.rds: cloudwatch_period: 300
La configuration par service unique remplace la configuration au niveau de l'agent.
Coûts liés à CloudWatch
Pour fournir des informations sur vos services AWS, les plateformes de monitoring comme Instana doivent utiliser l'API CloudWatch. Ce service API est fourni par AWS selon un modèle de tarification à l'utilisation. La présente documentation a pour objectif d'expliquer clairement comment Instana utilise l'interface CloudWatch API, afin que les utilisateurs puissent comprendre l'impact de cette utilisation sur leur facture AWS.
Les coûts liés à CloudWatch sont déterminés par :
- Nombre d'instances surveillées de services AWS
- Nombre de métriques collectées par agent AWS
- Intervalle d'interrogation (configurable)
Chaque agent AWS envoie une requête à GetMetricData l'adresse CloudWatchAPI pour la collecte des métriques; en cas d'échec, GetMetricStatistics il est appelé en guise de solution de secours. Ces deux points de terminaison entraînent les mêmes coûts par indicateur (à noter que l'utilisation de la solution GetMetricStatistics de secours n'entraîne aucun coût supplémentaire). Vous trouverez plus de détails sur ces deux produits sur la page des tarifs d' AWS, à l'adresse CloudWatch.
Le tableau suivant contient une estimation approximative des coûts quotidiens pour les différents agents AWS lorsque l'intervalle d'interrogation est de 5 minutes et que les frais Amazon sont de0.01 $ pour 1000 métriques CloudWatch :
| Capteur AWS | Nombre de mesures | Coût quotidien par instance | Important |
|---|---|---|---|
| API Gateway | 5 à 11 | $0.0144 - $0.0317 | Le nombre de métriques dépend du protocole d' API. |
| AppSync | 18 | $0.0518 | |
| Auto Scaling | 13 | $0.0374 | |
| Beanstalk | 31 | $0.0893 | |
| CloudFront | 13 | $0.0374 | Le nombre de métriques dépend du nombre de fonctions associées. Par exemple, le tableau montre une fonction associée pour la distribution surveillée. |
| DynamoDB | 71 | $0.2045 | |
| EBS | 9 | $0.0230 | |
| ElastiCache | 25 à 39 | $0.0720 - $0.1123 | Le nombre de métriques dépend du moteur utilisé. |
| OpenSearch | 12 | $0.0346 | |
| ELB | 5 à 15 | $0.0144 - $0.0432 | Le nombre de métriques dépend du type d'équilibreur de charge et du nombre de zones de disponibilité. |
| dossier médical électronique | 30 | $0.0432 | |
| IoT Noyau | 23 | $0.0662 | |
| Kinesis | 16 | $0.0461 | |
| Lambda | 21 | $0.0605 | |
| MQ | 22 | $0.0634 | |
| Memorial Sloan Kettering | 37 | $0.0844 | Le nombre de métriques dépend du nombre de courtiers au sein d'une grappe. Par exemple, le tableau montre qu'un courtier est surveillé. |
| RDS | 18 | $0.0518 | |
| Redshift | 17 | $0.0490 | Le nombre de métriques dépend du nombre de nœuds au sein d'une grappe. Par exemple, le tableau montre qu'un nœud est surveillé. |
| S3 | 13 | $0.0374 | |
| SNS | 7 | $0.0202 | |
| SQS | 9 | $0.0230 | |
| Timestream | 9 | $0.0230 |
Notez que CloudWatch n'est pas utilisé pour EC2 et pour les balises d'interrogation. Par conséquent, aucun coût CloudWatch n'y est encouru.
Vous pouvez réduire les coûts de CloudWatch en augmentant la fréquence d'interrogation. L'inconvénient de l'augmentation de l'intervalle d'interrogation est que vous réduisez les métriques de granularité de CloudWatch. Chaque demande fournit une valeur de métrique unique, de sorte que la différence entre un intervalle d'interrogation de 60s et de 300s est de cinq valeurs de métrique ou d'une valeur de métrique pour une période de 300s .
Il vous appartient de déterminer si l'intervalle d'interrogation par défaut est approprié pour votre entreprise ou s'il convient de le personnaliser afin de trouver l'équilibre entre le coût et la qualité des connaissances.
Traitement des incidents
Impossible de surveiller les services d' AWS s dans les environnements isolés physiquement
Si l'agent hôte d' Instana. est exécuté sur une machine EC2. ne disposant pas d'accès à Internet, l'agent ne pourra pas accéder aux API publiques des services AWS. et ne pourra donc pas surveiller les services AWS. pris en charge.
AWS PrivateLink offre un accès privé aux services hébergés sur AWS, avec une haute disponibilité et une grande évolutivité, sans nécessiter l'utilisation d'adresses IP publiques ni que le trafic transite par Internet.
Pour utiliser l' AWS PrivateLink, créez un point de terminaison VPC pour tous les services AWS qui doivent être surveillés. Le point de terminaison VPC fournit une interface réseau élastique au sein de votre sous-réseau, dotée d'une adresse IP privée, pour le service AWS ( API ), qui peut être utilisée par l'agent hôte Instana.