Pourquoi l'agent CloudWatch unifié ne transmet-il pas mes métriques ou mes événements de journaux vers CloudWatch ?
J'ai configuré l'agent CloudWatch unifié sur mon instance Amazon Elastic Compute Cloud (Amazon EC2) pour envoyer des métriques et des journaux à Amazon CloudWatch, mais je ne vois pas mes métriques ni mes journaux dans la console CloudWatch. Pourquoi l'agent CloudWatch unifié n'envoie-t-il pas mes métriques et mes journaux à CloudWatch ?
Brève description
Il existe un certain nombre de raisons pour lesquelles l'agent CloudWatch unifié peut ne pas transmettre vos métriques ou vos journaux à CloudWatch. Par exemple, vous pouvez rencontrer une erreur d'autorisation ou de connectivité qui empêche l'agent d'envoyer vos métriques. Lorsque vous consultez les journaux de l'agent CloudWatch unifié, vous pouvez voir apparaître une erreur semblable à ce qui suit :
- Agent Log Error: No Connectivity to Endpoint
- Agent Log Error: Insufficient Permissions
Solution
Remarque : si vous recevez des erreurs lorsque vous exécutez des commandes de l'AWS Command Line Interface (AWS CLI), assurez-vous d'utiliser la version la plus récente de l'AWS CLI.
Consulter les journaux de l'agent CloudWatch unifié
Utilisez le fichier journal de l'agent pour vous aider à résoudre les problèmes que vous rencontrez avec le package de l'agent CloudWatch unifié. Vous pourriez être confronté à l'un des problèmes courants suivants :
- Vous rencontrez des problèmes de connectivité avec les points de terminaison de service AWS ou les points de terminaison de VPC requis.
- Vous ne disposez pas des autorisations nécessaires pour effectuer des appels d'API Support à CloudWatch.
- Le fichier journal n'est pas présent sur votre système de fichiers local.
L'une des erreurs suivantes peut s'afficher dans les journaux :
Agent Log Error: No Connectivity to Endpoint
2021-08-30T04:07:46Z E! cloudwatch: code: RequestError, message: send request failed, original error: Post "https://monitoring.us-east-1.amazonaws.com/": dial tcp 172.31.11.121:443: i/o timeout 2021-08-30T04:07:46Z W! 210 retries, going to sleep 1m0s before retrying. 2021-08-30T04:07:46Z E! cloudwatch: code: RequestError, message: send request failed, original error: Post "https://monitoring.us-east-1.amazonaws.com/": dial tcp 172.31.11.121:443: i/o timeout 2021-08-30T04:07:46Z W! 211 retries, going to sleep 1m0s before retrying.
Agent Log Error: Insufficient Permissions
2021-08-30T02:15:45Z E! cloudwatch: code: AccessDenied, message: User: arn:aws:sts::123456789012:assumed-role/cwagent/i-0744de7c842d2c2ba is not authorized to perform: cloudwatch:PutMetricData, original error: 2021-08-30T02:15:45Z W! 1 retries, going to sleep 400ms before retrying. 2021-08-30T02:15:46Z E! WriteToCloudWatch failure, err: AccessDenied: User: arn:aws:sts::123456789012:assumed-role/cwagent/i-0744de7c842d2c2ba is not authorized to perform: cloudwatch:PutMetricData status code: 403, request id: f1171fd0-05b6-4f7d-bac2-629c8594c46e
Vérifier la connectivité aux points de terminaison CloudWatch
Lorsque le trafic vers CloudWatch ne doit pas transiter par l'Internet public, vous pouvez utiliser des points de terminaison de VPC à la place. Si vous utilisez des points de terminaison de VPC, vérifiez ce qui suit :
- Si vous utilisez des serveurs de noms privés, vérifiez que la résolution DNS a fourni des réponses exactes.
- Vérifiez que les points de terminaison CloudWatch sont résolus en adresses IP privées.
- Vérifiez que le groupe de sécurité associé au point de terminaison de VPC autorise le trafic entrant en provenance de l'hôte.
1. Vérifiez la connectivité au point de terminaison des métriques :
$ telnet monitoring.us-east-1.amazonaws.com 443 Trying 52.46.138.115... Connected to monitoring.amazonaws.com. Escape character is '^]'. ^] telnet> quit Connection closed.
2. Vérifiez la connectivité au point de terminaison des journaux :
$ telnet logs.us-east-1.amazonaws.com 443 Trying 3.236.94.218... Connected to logs.us-east-1.amazonaws.com. Escape character is '^]'. ^] telnet> quit Connection closed
3. Vérifiez que le point de terminaison de VPC est résolu en adresses IP privées :
$ dig monitoring.us-east-1.amazonaws.com +short 172.31.11.121 172.31.0.13
Vérifier la configuration de l'agent CloudWatch unifié
Le fichier de configuration de l'agent détaille les métriques et les journaux publiés sur CloudWatch. Consultez le fichier de configuration de l'agent pour vérifier que les journaux et les métriques que vous souhaitez publier sont inclus.
Vérifier que l'hôte dispose des autorisations nécessaires pour publier des métriques et des journaux
Les politiques gérées AWS CloudWatchAgentServerPolicy et CloudWatchAgentAdminPolicy peuvent vous aider à déployer l'agent CloudWatch unifié et à vérifier que vous disposez des autorisations appropriées. Utilisez ces politiques comme référence pour vous assurer que votre hôte dispose des autorisations appropriées.
Dans ces exemples, les sorties de l'AWS CLI indiquent que les autorisations sont insuffisantes.
Cette sortie de commande de démarrage de l'agent indique qu'aucun rôle IAM n'est attaché à l'instance EC2 :
$ /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:CWT-Web-Server -s ****** processing amazon-cloudwatch-agent ****** /opt/aws/amazon-cloudwatch-agent/bin/config-downloader --output-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --download-source ssm:CWT-Web-Server --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default Region: us-east-1 credsConfig: map[] Error in retrieving parameter store content: NoCredentialProviders: no valid providers in chain. Deprecated. For verbose messaging see aws.Config.CredentialsChainVerboseErrors Fail to fetch/remove json config: NoCredentialProviders: no valid providers in chain. Deprecated. For verbose messaging see aws.Config.CredentialsChainVerboseErrors Fail to fetch the config!
Cette sortie de commande de démarrage de l'agent indique que le mauvais rôle IAM est attaché à l'instance EC2 :
$ /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:CWT-Web-Server -s ****** processing amazon-cloudwatch-agent ****** /opt/aws/amazon-cloudwatch-agent/bin/config-downloader --output-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --download-source ssm:CWT-Web-Server --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default Region: us-east-1 credsConfig: map[] Error in retrieving parameter store content: AccessDeniedException: User: arn:aws:sts::123456789012:assumed-role/cwagent/i-0744de7c842d2c2ba is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:123456789012:parameter/CWT-Web-Server status code: 400, request id: b85b0a7a-0fb1-47b4-924f-be8cf43a3b4d Fail to fetch/remove json config: AccessDeniedException: User: arn:aws:sts::123456789012:assumed-role/cwagent/i-0744de7c842d2c2ba is not authorized to perform: ssm:GetParameter on resource: arn:aws:ssm:us-east-1:123456789012:parameter/CWT-Web-Server status code: 400, request id: b85b0a7a-0fb1-47b4-924f-be8cf43a3b4d Fail to fetch the config!
Dans certains cas, un utilisateur IAM peut se trouver dans la ligne de commande. La commande obtain user/role renvoie l'utilisateur ou le rôle IAM associé à l'instance :
$ aws sts get-caller-identity { "UserId": "AROA123456789012ABCDE:i-0744de7c842d2c2ba", "Account": "123456789012", "Arn": "arn:aws:sts::123456789012:assumed-role/CloudWatchAgentServerRole/i-0744de7c842d2c2ba" }
Vérifier que l'agent démarre correctement
L'agent est conçu pour être démarré à l'aide de l'AWS CLI avec le fichier de configuration transmis en tant qu'argument. Utilisez ces commandes de démarrage valides.
Commandes Linux :
- `$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:configuration-file-path` - `$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name`
Commandes Windows :
- `& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c file:"C:\Program Files\Amazon\AmazonCloudWatchAgent\config.json"` - `& "C:\Program Files\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent-ctl.ps1" -a fetch-config -m ec2 -s -c ssm:configuration-parameter-store-name`
Important : ne démarrez pas l'agent depuis le panneau de configuration Windows.
Vérifier que l'agent est en cours d'exécution
Pour publier des métriques et des journaux, l'agent doit être en cours d'exécution. Exécutez cette commande pour confirmer que l'agent est actif.
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status { "status": "running", "starttime": "2021-08-30T02:13:44+00:00", "configstatus": "configured", "cwoc_status": "stopped", "cwoc_starttime": "", "cwoc_configstatus": "not configured", "version": "1.247349.0b251399" }
Redémarrer l'agent après avoir mis à jour sa configuration
L'agent n'enregistre pas automatiquement les modifications apportées au fichier de configuration. Si la configuration de l'agent est mise à jour pour inclure des métriques et des journaux nouveaux ou différents, redémarrez l'agent à l'aide de cette commande :
$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a stop ****** processing cwagent-otel-collector ****** cwagent-otel-collector has already been stopped ****** processing amazon-cloudwatch-agent ****** Redirecting to /bin/systemctl stop amazon-cloudwatch-agent.service $ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:config.json ****** processing amazon-cloudwatch-agent ****** /opt/aws/amazon-cloudwatch-agent/bin/config-downloader --output-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --download-source file:config.json --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default Successfully fetched the config and saved in /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json.tmp Start configuration validation... /opt/aws/amazon-cloudwatch-agent/bin/config-translator --input /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json --input-dir /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d --output /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml --mode ec2 --config /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml --multi-config default 2021/08/31 02:45:37 Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/file_config.json.tmp ... Valid Json input schema. I! Detecting run_as_user... Configuration validation first phase succeeded /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent -schematest -config /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.toml Configuration validation second phase succeeded Configuration validation succeeded amazon-cloudwatch-agent has already been stopped Redirecting to /bin/systemctl restart amazon-cloudwatch-agent.service $ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -m ec2 -a status { "status": "running", "starttime": "2021-08-31T02:45:37+0000", "configstatus": "configured", "cwoc_status": "stopped", "cwoc_starttime": "", "cwoc_configstatus": "not configured", "version": "1.247349.0b251399" }
Informations connexes

Contenus pertinents
- demandé il y a 4 moislg...
- demandé il y a 3 moislg...
- demandé il y a un anlg...
- demandé il y a 9 moislg...
- demandé il y a 8 moislg...
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a un an
- AWS OFFICIELA mis à jour il y a 4 mois