AWS安装cloudwatch agent后没有指标出现解决

EC2的指标没有内存相关,而内存是个很重要的指标,要在cloudwatch中监控需要使用cloudwatch agent(CWAgent), 照着官方文档做结果发现没有指标… 最后发现文档里少说了一步

只要按着这个步骤就行: 使用命令行安装 CloudWatch 代理
大致分为3步:

  1. EC2上安装cloudwatch agent
  2. 创建IAM账号
  3. 配置/启动

基本就是安装完 创建完IAM角色 再执行以下命令就完成了:

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json

配置时要注意下默认项是否匹配.

正常来说在cloudwatch的metric下会增加一个CWAgent的自定义命名空间.
但实际上没有.. ..
这时候需要查看日志:

tail -f /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log

如果你看到了:

{"caller":"ec2tagger/ec2tagger.go:465","msg":"ec2tagger: Unable to describe ec2 tags for initial retrieval","kind":"processor","name":"ec2tagger","pipeline":"metrics/host","error":"NoCredentialProviders: no valid providers in chain\ncaused by: EnvAccessKeyNotFound: failed to find credentials in the environment.\nSharedCredsLoad: failed to load profile, .\nEC2RoleRequestError: no EC2 instance role found\ncaused by: EC2MetadataError: failed to make EC2Metadata request\n<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\t \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\n <head>\n  <title>404 - Not Found</title>\n </head>\n <body>\n  <h1>404 - Not Found</h1>\n </body>\n</html>\n\n\tstatus code: 404, request id: "}

那大概率和我遇上了一样的问题
那就是EC2实例没和创建的IAM角色关联… …
需要在EC2设置里关联上按文档里创建的IAM角色即可… …
其他错误也对照着报错改就行, 比如没装collectd导致启动出错等

很神奇…文档里居然漏了这一步..还是这一步太基础不用写到文档里去呢…