我创build了用户参数测量在iscsi lun上的写入速度,如下所示:
UserParameter=write.perf.mon[*], mytime="$(time -p (dd if=/dev/zero of=$1 oflag=direct bs=4k count=1000) 2>&1 1>/dev/null )"; echo "$mytime" | grep real | awk '{print $$2}'
如果从shell运行正确的值,它会产生以下输出:
2.78
当它由zabbix代理执行时,我可以在日志中看到正确的命令,但它显示以下内容:
7770:20150921:123734.823 Run remote command [ mytime="$(time -p (dd if=/dev/zero of=path_to_file oflag=direct bs=4k count=1000) 2>&1 1>/dev/null )"; echo "$mytime" | grep real | awk '{print $2}'] Result [4] [0.00]...
而zabbix收集零。
请帮助任何线索,为什么这是如此,以及如何修复
谢谢,
梅德
检查用户运行zabbix_agent。
默认情况下,这是用户zabbix 。 检查你的权限运行的命令链显示正确的值。 很可能你没有足够的权利。
尝试通过用户zabbix运行你的脚本
/ dev / null)“; / / mytime =”$(time -p(dd if = / dev / zero of = path oftofile oflag = direct bs = 4k count = 1000)2>&1 1> 回声“$ mytime”| grep real | awk'{print $ 2}'
如果一切正常,尝试使用$$而不是$(mytime =“$$ …)
除非启用了UnsafeUserParameters代理守护程序configuration选项,否则不允许传递包含这些符号的灵活参数:\'“`*? [] {}〜$! &; ()<> | #@。 另外,换行也是不允许的。