当文件描述符/句柄仍然打开时使用 Zabbix 监控磁盘空间

当文件描述符/句柄仍然打开时使用 Zabbix 监控磁盘空间

最近我遇到了“标准”磁盘空间监控失败的情况 - Zabbix 使用vfs.fs.大小检查磁盘使用情况的项目,该项目已在捆绑模板中记录并预先配置。

问题:

当文件被删除时,但是文件描述符/句柄仍然打开- 磁盘可能已满,但在这种情况下 Zabbix 不会报告使用情况。

在这种情况下,如何监控磁盘空间?

答案1

这是我做过的一个测试:

df /
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1       15350768 14367976    809124  95% /

我创建了一个 600Mb 的文件并用 less 打开它:

dd if=/dev/zero of=test bs=1024k count=600 & less test
[1] 1952
"test" may be a binary file.  See it anyway? 600+0 records in
600+0 records out
629145600 bytes (629 MB) copied, 11.895 s, 52.9 MB/s
[1]+  Done                    dd if=/dev/zero of=test bs=1024k count=600

现在 df 显示使用了更多空间:

df /
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1       15350768 14981664    195436  99% /

现在,如果我删除我的测试文件:

rm test 

df 说:

df /
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1       15350768 14981712    195388  99% /

因此该空间仍在使用中,我们可以使用 lsof |grep removed 来查看:

lsof |grep deleted|grep test
less       1953             mick    4r      REG                8,1  629145600       5407 /tmp/test (deleted)

现在如果我少停下来:

pkill less

df 显示磁盘使用情况是空闲的:

df /
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1       15350768 14367584    809516  95% /

我认为您的问题更多是由于对 df 的错误解释而导致的,因为为 root 保留了百分比。

从最后一个 df 来看,总计减去已用量减去可用量等于:

15350768-14367584-809516=173668

因此,也许您的用户遇到磁盘已满错误,但 root 仍然可以写入磁盘,并且 Zabbix 不会因为为 root 保留的百分比而看到磁盘已满。

你可以使用 tune2fs 检查并更改它

相关内容