我想就以下问题向您寻求任何提示。
我在 Zabbix 2.2 中使用外部脚本进行检查。我尝试开发一些脚本来获取远程存储上某个文件的时间戳。该脚本在 Zabbix 服务器的 CLI 中运行良好,但在 Zabbix 中我看到0仅(零)值。
我发现主要问题出在尝试连接远程存储并获取信息的 ssh 命令行中。
脚本如下:
TIMESTAMP_REMOTE_FILE=$(ssh -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no -i $KEY_FILE "$REMOTE_USER"@"$HOSTNAME" "stat --format='%Y' $FILE ")
echo TIMESTAMP_REMOTE_FILE
Linux 控制台中的输出如下所示:
[user1@hostname1 externalscripts]$ sudo -u zabbixsrv ./days_since_last_backup.sh
1436745682
[user1@hostname1 externalscripts]$
但在 Zabbix(最新值)中它看起来像:
Timestamp Value
2015.Jul.13 15:04:25 0
当我将 TIMESTAMP_REMOTE_FILE 的值更改为某个特定值(例如 100000)时,该值在 Zabbix 中也可见。
Timestamp Value
2015.Jul.13 16:04:25 100000
有人遇到过和我一样的问题吗?有人能告诉我如何解决吗?
答案1
因此,我更深入地研究了所描述的问题。我已使用以下方式启用了文件登录:
TIMESTAMP_REMOTE_FILE=$(
ssh -o StrictHostKeyChecking=no -o GSSAPIAuthentication=no
-i $KEY_FILE "$REMOTE_USER"@"$HOSTNAME"
"stat --format='%Y' $FILE " > /tmp/zabbix_script.log
)
echo TIMESTAMP_REMOTE_FILE
上面明确指出,ssh 命令正在尝试找出带有私钥的文件。由于该脚本是从脚本所在目录的命令行运行的,因此没有出现任何问题。
感谢大家的贡献……每一条提示都很重要