Pourquoi l’agent CloudWatch unifié ne transmet-il pas mes métriques ou ne journalise-t-il pas les événements dans CloudWatch ?
J’ai configuré l’agent Amazon CloudWatch unifié sur mon instance Amazon Elastic Compute Cloud (Amazon EC2) pour publier des métriques et des journaux sur Amazon CloudWatch. Cependant, je ne peux pas voir mes métriques ni journaliser les événements dans la console CloudWatch.
Brève description
L'agent CloudWatch unifié peut ne pas transmettre de métriques ou de journaux à CloudWatch en cas de problèmes de connectivité ou d'autorisation. Lorsque vous consultez les journaux unifiés de l’agent CloudWatch, l’une des erreurs suivantes peut s’afficher :
- Erreur du journal de l’agent : Aucune connectivité au point de terminaison
- Erreur du journal de l’agent : Autorisations insuffisantes
Résolution
Pour résoudre les problèmes liés à l'agent CloudWatch unifié, procédez comme suit :
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l’AWS CLI.
Consulter les journaux unifiés de l’agent CloudWatch
Vous pouvez utiliser le fichier journal de l’agent pour résoudre les problèmes que vous rencontrez avec le package d’agent CloudWatch unifié.
Vous pouvez rencontrer l’un des problèmes suivants :
- Vous ne pouvez pas vous connecter aux points de terminaison de service AWS requis ou aux points de terminaison Amazon Virtual Private Cloud (Amazon VPC). Pour plus d'informations, consultez la section Utilisation de points de terminaison de VPC.
- Vous ne disposez pas des autorisations nécessaires pour effectuer des appels d’API d’assistance à CloudWatch. Pour plus d'informations, consultez la section Opérations de l'API CloudWatch et autorisations requises pour les actions.
L’une de ces erreurs peut s’afficher dans les journaux suivants.
Erreur du journal de l’agent : Aucune connectivité au point de terminaison
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.
Erreur du journal de l’agent : Autorisations insuffisantes
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
Confirmez la connectivité aux points de terminaison CloudWatch
Si le trafic vers CloudWatch ne passe pas par l’Internet public, vous pouvez utiliser les points de terminaison Amazon VPC. Si vous utilisez des points de terminaison Amazon VPC, vérifiez les paramètres suivants :
- Si vous utilisez des serveurs de noms privés, vérifiez que la résolution DNS a fourni des réponses précises.
- Vérifiez que les points de terminaison CloudWatch sont résolus en adresses IP privées.
- Vérifiez le groupe de sécurité qui est associé au point de terminaison Amazon VPC autorisant le trafic entrant en provenance de l’hôte.
Pour confirmer la connectivité aux points de terminaison CloudWatch, procédez comme suit :
-
Pour vérifier la connectivité au point de terminaison des métriques, exécutez la commande suivante :
$ 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. -
Pour vérifier la connectivité au point de terminaison des journaux, exécutez la commande suivante :
$ 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 -
Pour vérifier que le point de terminaison Amazon VPC est résolu en adresses IP privées, exécutez la commande suivante :
$ dig monitoring.us-east-1.amazonaws.com +short172.31.11.121 172.31.0.13
Vérifier la configuration unifiée de l’agent CloudWatch
Le fichier de configuration de l’agent CloudWatch détaille les métriques et les journaux publiés sur CloudWatch. Consultez le fichier de configuration de l’agent pour vous assurer que les journaux et les métriques que vous souhaitez publier sont inclus.
Vérifiez que l’hôte est autorisé à publier des métriques et des journaux
Les politiques gérées par AWS CloudWatchAgentServerPolicy et CloudWatchAgentAdminPolicy peuvent vous aider à déployer l’agent CloudWatch unifié. Les politiques peuvent également vous aider à 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.
Les sorties de l’interface de ligne de commande AWS présentées dans ces exemples indiquent des autorisations insuffisantes.
La commande de configuration de l’interface de ligne de commande AWS suivante indique que le rôle Gestion des identités et des accès AWS (AWS IAM) attaché à l’instance EC2 est manquant :
$ /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!
La commande de configuration de l’interface de ligne de commande AWS suivante indique que le rôle IAM associé à l’instance EC2 est incorrect :
$ /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!
La commande get-caller-identity suivante 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érifiez que l’agent démarre correctement
Vous pouvez utiliser l’interface de ligne de commande AWS avec le fichier de configuration transmis en argument pour démarrer l’agent. Pour démarrer l’agent, exécutez les commandes de démarrage valides suivantes.
Pour Linux, exécutez les commandes suivantes :
- `$ 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`
Pour Windows, exécutez les commandes suivantes :
- `& "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 de Windows.
Vérifiez que l’agent s’exécute
Pour publier des métriques et des journaux, l’agent doit être actif. Pour vérifier que l'agent CloudWatch est actif, exécutez la commande suivante :
$ 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 la configuration de l’agent
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, vous devez utiliser la commande suivante pour redémarrer l’agent :
$ 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
- Balises
- Amazon CloudWatch
- Langue
- Français

Contenus pertinents
- demandé il y a 3 ans
- demandé il y a 3 ans
- demandé il y a 2 ans
- demandé il y a un an