我有一个t4g.large EC2示例,运行Ubuntu 22.04,有一个30 GB的存储卷,我已经安装并配置了Cloudwatch代理来监视磁盘使用情况。
目前,Cloudwatch上的指标显示,磁盘已满56%。
如果我运行lsblk -f
,我会看到以下内容(为了简洁起见,我删除了uuid列):
NAME FSTYPE FSVER LABEL FSAVAIL FSUSE% MOUNTPOINTS
loop0 squashfs 4.0 0 100% /snap/core20/1699
loop1 squashfs 4.0 0 100% /snap/amazon-ssm-agent/5657
loop2 squashfs 4.0
loop3 squashfs 4.0 0 100% /snap/lxd/23545
loop4 squashfs 4.0 0 100% /snap/core18/2658
loop5 squashfs 4.0 0 100% /snap/core18/2636
loop6 squashfs 4.0 0 100% /snap/snapd/17885
loop7 squashfs 4.0 0 100% /snap/amazon-ssm-agent/6313
loop8 squashfs 4.0 0 100% /snap/core20/1740
nvme0n1
├─nvme0n1p1 ext4 1.0 cloudimg-rootfs 2.9G 90% /
└─nvme0n1p15 vfat FAT32 UEFI 92.4M 5% /boot/efiNAME
如果我运行df -h
,我会看到:
Filesystem Size Used Avail Use% Mounted on
/dev/root 29G 27G 2.9G 91% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 1.6G 1.1M 1.6G 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/nvme0n1p15 98M 5.1M 93M 6% /boot/efi
tmpfs 782M 8.0K 782M 1% /run/user/1000
我不明白56%是从哪里来的。即使Cloudwatch代理对所有挂载点进行求和,结果也会是~ 75%,而不是56%。
这是我的代理配置:
{
"agent": {
"metrics_collection_interval": 60,
"run_as_user": "root"
},
"metrics": {
"aggregation_dimensions": [
[
"InstanceId"
]
],
"append_dimensions": {
"AutoScalingGroupName": "${aws:AutoScalingGroupName}",
"ImageId": "${aws:ImageId}",
"InstanceId": "${aws:InstanceId}",
"InstanceType": "${aws:InstanceType}"
},
"metrics_collected": {
"collectd": {
"metrics_aggregation_interval": 60
},
"disk": {
"measurement": [
"used_percent"
],
"metrics_collection_interval": 60,
"resources": [
"*"
]
},
"mem": {
"measurement": [
"mem_used_percent"
],
"metrics_collection_interval": 60
},
"statsd": {
"metrics_aggregation_interval": 60,
"metrics_collection_interval": 30,
"service_address": ":8125"
}
}
}
}
我尝试将资源中的“*”更改为“/”或“/dev/root”,并重新启动代理,但报告的值没有任何变化。
编辑:我现在已经删除了一堆文件,lsblk报告说“/”挂载点的磁盘使用率为33%,而cloudwatch报告说为52%。
1条答案
按热度按时间wxclj1h51#
我发现了。罪魁祸首是配置的这一部分:
这意味着代理向CloudWatch发送一个“聚合”值,这是我偶然使用的,要获得这个聚合,我浏览了Cloudwatch GUI中的指标,如“CWAgent”-“InstanceId”-“disk_used_percent”。这将报告每个时间点的一组数据点-代理报告的所有不同路径的所有结果。从那里,您可以选择“平均”,“最大”,“最小”等来使用这个数据。我已经选择了“平均”。
我应该做的是浏览“CWAgent”-“ImageId,InstanceId,InstanceType,device,fstype,path”-“disk_used_percent”以查找路径/。然后我将只查看该路径的值,每个时间步长只有一个样本,并且它将与我在终端中看到的匹配。
注意:如果你真的想深入了解,你可以在
/etc/collectd/collectd.conf
上查看collectd配置,它有一个“"的配置,它会把你指向collectd存储cloudwatch代理阅读的df信息的路径。