最近我遇到了这样的情况,当“标准”磁盘空间监视失败时 – Zabbix使用vfs.fs.size项来检查磁盘使用情况,这在配套的模板中进行了logging和预configuration。
当文件被删除,但文件描述符/句柄仍然是打开的 – 磁盘可能会被填满,但在这种情况下Zabbix将报告没有用法。
在这种情况下,如何监视磁盘空间?
这是我做的一个testing:
df / Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 15350768 14367976 809124 95% /
我创build一个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% /
现在如果我删除我的testing文件:
rm test
df说:
df / Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 15350768 14981712 195388 99% /
所以这个空间还在用,我们可以用lsof | grep把它看清:
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% /
我认为你的问题更多的是由于为root保留的百分比,df的一个不好的解释。
从最后的df开始,总减去使用的减去可用的等于:
15350768-14367584-809516=173668
所以也许你的用户有一个磁盘满错误,但root仍然可以写入磁盘,并且Zabbix由于为root保留了百分比,所以不会看到磁盘已满。
你可以用tune2fs来检查和改变它