我正在使用一个名为 PRTG 的监控系统来监控我们的环境。PRTG KB 建议使用脚本来监控称为 SSH 脚本的进程。该脚本需要存储在 /var/prtg/scripts 中。
我找到了一个有人用于 PRTG 的脚本:
#!/bin/sh
pgrep wrapper $1 2>&1 1>/dev/null
if [ $? -ne 0 ]; then
echo "1:$?:$1 Down"
else
echo "0:$?:OK"
fi
但是,PRTG 在 Web GUI 中返回以下错误代码:
响应格式不正确:“pgrep:只能提供一种模式尝试使用 `pgrep --help' 获取更多信息。1:0:Wrapper Down”
但是,当我在 Linux 服务器上运行脚本时,它会打印出:
0:1:好的
所以我的问题是用来告诉 PRTG 一个进程是“Down”还是“UP”的最佳脚本是什么?
################### 编辑以进一步澄清:
我更改了脚本,它在命令行上运行得很棒……但问题似乎在于 PRTG 如何读取输出。显然它的格式不正确。所以这是我的脚本:
#!/bin/bash
SERVICE="wrapper"
if pgrep -x "$SERVICE" >/dev/null
then
echo "$SERVICE is running"
else
echo "$SERVICE stopped"
fi
这就是 PRTG 出错的原因:
Response not well-formed: "wrapper is running "
所以... PRTG 是说我正在使用的传感器希望脚本输出为这种格式:
The returned data for standard SSH Script sensors must be in the following
format:
returncode:value:message
Value has to be a 64-bit integer or float. It is used as the resulting value
for this sensor (for example, bytes, milliseconds) and stored in the
database. The message can be any string (maximum length: 2000 characters).
The SSH script returncode has to be one of the following values:
VALUE DESCRIPTION
0 OK
1 WARNING
2 System Error
3 Protocol Error
4 Content Error
所以我想现在......问题是我如何让该脚本输出 PRTG 想要看到的内容?