Fedora

Zabbix 2.0 上存在 vfs.file.exists 的問題

  • September 18, 2013

我在 64 位 Fedora 19 機器上的 Zabbix 2.0.6 上遇到 vfs.file.exists 問題。在撰寫本文時,2.0.6 是 Fedora yum 儲存庫提供的最新版本。

我想檢查文件 /tmp/test 是否存在:

[root@localhost ~]# ls -l /tmp/test
-rw-r--r-- 1 root root 14 Sep 16 10:30 /tmp/test

如果我執行我直接用 zabbix_agentd 檢查,它正確地確定該文件存在:

[root@localhost ~]# zabbix_agentd -t "vfs.file.exists[/tmp/test]"
vfs.file.exists[/tmp/test][/tmp/test]         [u|1]

但是,如果我使用 zabbix_get,無論文件是否存在,它總是返回 0:

[root@localhost log]# zabbix_get -s 127.0.0.1 -k "vfs.file.exists[/tmp/test]"
0

這很奇怪,因為當從同一台伺服器連接到執行舊版本 Zabbix 代理(1.8.13)的遠端機器(也是 Fedora)時,相同的測試可以完美執行:

[root@localhost log]# zabbix_get -s remote.example.com -k "vfs.file.exists[/tmp/test]"
1

有些事情會起作用:

[root@localhost ~]# zabbix_get -s 127.0.0.1 -k "system.uname"
Linux host.example.com 3.9.5-301.fc19.x86_64 #1 SMP Tue Jun 11 19:39:38 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# zabbix_get -s 127.0.0.1 -k "system.uptime"
237830
[root@localhost ~]# zabbix_get -s 127.0.0.1 -k "system.run[whoami]"
zabbix

但是,AFAICT,所有 vfs.file.* 鍵都不起作用:

[root@localhost ~]# zabbix_get -s 127.0.0.1 -k "vfs.file.cksum[/tmp/test]"
ZBX_NOTSUPPORTED
[root@localhost ~]# zabbix_get -s 127.0.0.1 -k "vfs.file.contents[/tmp/test]"
ZBX_NOTSUPPORTED
[root@localhost ~]# zabbix_get -s 127.0.0.1 -k "vfs.file.md5sum[/tmp/test]"
ZBX_NOTSUPPORTED
[root@localhost ~]# zabbix_get -s 127.0.0.1 -k "vfs.file.size[/tmp/test]"
ZBX_NOTSUPPORTED
[root@localhost ~]# zabbix_get -s 127.0.0.1 -k "vfs.file.time[/tmp/test]"
ZBX_NOTSUPPORTED

我已經檢查了 zabbix 使用者可以訪問該文件,所以它不是權限問題:

[root@localhost ~]# sudo su -s /bin/bash zabbix
bash-4.2$ whoami
zabbix
bash-4.2$ ls -l /tmp/test
-rw-r--r-- 1 root root 14 Sep 16 10:30 /tmp/test

SELinux 也被禁用。

我做錯了什麼,或者這是 Zabbix 特定版本/發行版中的錯誤?

在目前版本的 Fedora 上,Zabbix 代理與許多其他系統服務一樣,具有私有命名空間/tmp,並且無法看到/tmp由其他程序創建的文件。由於您正在測試,請嘗試檢查另一個目錄中是否存在文件。

引用自:https://serverfault.com/questions/539828