AWS EC2挂载点指标获取咨询:免代理或免SSH安装代理
EC2挂载点磁盘空间指标采集方案解答
一、无需安装代理的可能性
不行。AWS原生的EC2基础监控(CloudWatch默认指标)仅提供实例级别的磁盘读写吞吐量等宏观指标,无法获取/、/mnt、/test_mnt这类具体挂载点的可用/已用空间数据。要获取这类挂载点级别的磁盘信息,必须在实例内部运行采集工具,也就是需要代理类软件。
二、无需SSH登录安装代理的可行方案
虽然必须安装代理,但完全可以不用SSH登录实例完成部署,以下是几种靠谱的方式:
1. 用SSM Run Command批量部署(无需重启)
如果实例能访问SSM服务端点,且IAM角色有SSM相关权限,可直接通过SSM Run Command执行脚本安装SSM Agent和CloudWatch Agent:
- 安装SSM Agent(以Amazon Linux 2为例,无需重启):
sudo yum install -y amazon-ssm-agent sudo systemctl start amazon-ssm-agent sudo systemctl enable amazon-ssm-agent - 接着安装CloudWatch Agent并配置挂载点采集:
先推送自定义配置文件(示例):
再执行启动命令:{ "metrics": { "namespace": "EC2/DiskSpace", "metrics_collected": { "disk": { "measurement": ["used_percent", "free", "used"], "resources": ["/", "/mnt", "/test_mnt"], "append_dimensions": {"InstanceId": "${aws:InstanceId}"} } } } }sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \ -a fetch-config -m ec2 -c file:/path/to/your/config.json -s
2. 通过EC2 Instance Connect执行命令
如果实例开启了EC2 Instance Connect,无需持有SSH密钥,直接通过AWS控制台或CLI发送命令安装代理,操作逻辑和SSM Run Command一致,只是执行通道换成Instance Connect。
3. 自定义AMI替换根卷(批量场景)
如果有大量实例需要部署,可先创建预装SSM Agent和CloudWatch Agent的自定义AMI,再通过替换实例根卷的方式批量更新:
- 基于现有实例创建快照,制作包含代理和采集配置的自定义AMI
- 停止目标实例(建议操作,避免数据风险)
- 替换实例的根卷为自定义AMI对应的卷
- 启动实例后,代理自动运行并采集挂载点指标
三、总结
- 必须依赖代理工具才能采集挂载点级磁盘空间指标,无代理方案不可行
- 无需SSH登录即可完成代理部署,优先推荐SSM Run Command或EC2 Instance Connect的方式,部分系统安装后无需重启;批量场景可采用自定义AMI替换根卷的方法
内容的提问来源于stack exchange,提问作者gnsharans
相关产品推荐
相关产品推荐

