CloudWatch Agent配置文件问题:附加EBS卷/分区挂载指标未显示
你遇到的这种情况,大概率不是配置文件的基础缺失,而是几个容易忽略的细节导致的,我给你梳理几个排查方向:
确认磁盘是否已挂载
CloudWatch Agent只会收集已挂载到文件系统的磁盘指标,即使lsblk能列出/dev/sdf,如果它还没挂载到某个目录,agent是不会主动收集的。你可以用df -h或者mount命令检查,看看/dev/sdf对应的挂载点是否存在(比如/data、/mnt/storage这类路径)。如果没挂载,先执行挂载操作,比如sudo mount /dev/sdf /mnt/data,记得把挂载信息写到/etc/fstab里确保重启后自动挂载。检查Agent运行用户的权限
CloudWatch Agent默认以cwagent用户身份运行,如果/dev/sdf的挂载点权限设置得比较严格(比如只有root用户能访问),agent就无法读取该磁盘的指标。你可以切换到cwagent用户测试权限:sudo -u cwagent ls /path/to/your/mount-point如果出现权限拒绝,就需要调整挂载点的权限,比如
sudo chmod o+rx /path/to/mount-point,或者把cwagent用户加入对应的用户组。显式指定磁盘/挂载点
虽然你设置了resources: ["*"],但有时候agent对通配符的匹配可能有特殊逻辑,比如某些非标准块设备可能没被包含。你可以试试显式指定目标磁盘,把配置改成:"disk": { "measurement": [ "used_percent", "free", "total", "used", "inodes_free" ], "metrics_collection_interval": 60, "resources": [ "*", "/dev/sdf", "/path/to/mount-point" ] }这里同时指定设备路径和挂载点,覆盖通配符的可能遗漏。
检查Agent日志排查错误
去CloudWatch Agent的日志文件里找线索,日志路径一般是/var/log/amazon/cloudwatch-agent.log。你可以用 grep 搜索相关关键词:grep -i "sdf\|disk" /var/log/amazon/cloudwatch-agent.log如果里面出现类似"permission denied"或者"unable to collect metrics for device"的错误,就能直接定位问题。
升级到最新版本的Agent
老版本的CloudWatch Agent可能对某些新的磁盘类型(比如NVMe、特定云存储卷)支持不足,升级到最新版本往往能解决这类兼容性问题:- 对于RHEL/CentOS系统:
sudo yum update amazon-cloudwatch-agent - 对于Ubuntu/Debian系统:
sudo apt-get update && sudo apt-get install --only-upgrade amazon-cloudwatch-agent
- 对于RHEL/CentOS系统:
调整完配置或者权限后,记得重启CloudWatch Agent:sudo systemctl restart amazon-cloudwatch-agent,然后等几分钟去CloudWatch控制台查看指标是否正常显示。
内容的提问来源于stack exchange,提问作者chocokoala

