以一个shell脚本为例说明脚本监视器的使用。
脚本监视器可以使用任意语言编写可执行的脚本。
脚本输出要求:
Message:这个消息用于告警信息。
Data:
实例1 值1
实例2 值2
... ...
实例N 值N
实例名和值之间要用Tab(\t)隔开。状态检查脚本可能不包含数据部分。如输出结果中没有Message,默认的消息将用于告警信息。
例如执行脚本输出:
Message:不能连接到设备。
Data:
ap1 4
ap2 5
在OpManager中操作步骤:
1. 添加脚本模板。
管理 -- 监视 -- 脚本模板
添加模板:
进程名称 - 提供监视器的名称和描述。
间隔和单位 - 配置监视间隔和监视参数的单位。
命令行 - 指定要执行的命令。文件名称必须使用 ${FileName} 替换
例如: cscript ${FileName}.vbs
注意: ${FileName} 后面应该指定扩展名。还可用传递参数。
参数列表中可用有
- ${DeviceName} - 被管设备的机器名;
- ${UserName} - WMI/CLI用户名;
- ${Password} - WMI/CLI密码;
- ${SNMPRead} - SNMP读团体字符串;
- ${IPAddress} - IP地址。
例如: cscript ${FileName}.vbs ${DeviceName} ${UserName} ${Password}
脚本体 - 输入脚本文件的完整内容。
退出码用于设置脚本监视器的状态。退出码“0”表示运行完成,其他的代码表示停止。所有的数字值可以作为统计数据。实例名和值之间要用Tab(\t)隔开。状态检查脚本可能不包含数据部分。如输出结果中没有Message,默认的消息将用于告警信息。
超时 - 配置脚本执行的超时时间。
执行地点 - 选择要执行脚本的机器。Linux脚本可以在OpManager运行的机器或被监视的机器上执行。
执行目录 - 输入执行脚本目录的完整路径。可以使用 ${TempDir} 或 ${UserHomeDir} 变量,分别代表OpManager临时目录和用户的系统主目录。
如下图所示:
脚本体内容:
main ()
{
# To check the argument
[ $1 ] || { echo "Message: Not enough arguments passed"; exit 1; }
PORT=$1
COUNT=`netstat -an|grep -e ":${PORT}\s" | wc -l`
if [ $? -eq 0 ];then
echo "Message: Success"
echo "Data:"
echo -e "Count\t$COUNT"
exit 0
else
echo "Message: Can not execute the command."
exit 1
fi
}
main $*
这个脚本用于获取指定端口的连接数。
点击测试脚本可以选择一个适合该脚本的设备(这里是Linux服务器)。测试结果类似下图:
2. 把脚本关联到设备
测试成功后,可以在脚本模板页面点击“关联”按钮把脚本关联到设备。
或者,
打开一个相应的设备页面,点击监视器图标
,选择脚本,点击右上角的添加按钮。
关联上面添加的脚本模板。
如果需要,在这里可以修改脚本执行的参数。
3. 监视数据
脚本监视器正确添加并获取数据后,点击该监视器,打开其报表页面: