当我们的代理服务器发生故障时,我需要收到通知。目前我有一个用于测试代理功能的 bash 脚本:
CHECKRESULT=(curl -s --proxy 4.83.58.205:80 checkip.dyndns.com | awk '{print $6}' | sed 's/<\/body><\/html>\r//g';)
if [ "$CHECKRESULT" != "4.83.58.205" ]
then
echo "FAILED: proxy 4.83.58.205 returned \" $CHECKRESULT\""
FAILEDCOUNT=$(($FAILEDCOUNT+1))
fi
我想使用 Zabbix 运行类似的检查,但是怎么做呢?
答案1
Zabbix 在编译时支持 CURL,可以直接监控 Web 服务,包括复杂的多步骤场景。您可以针对 HTTP 返回代码、返回数据、响应时间设置触发器……
文档这里。
答案2
假设您现有的脚本运行良好并且满足您的需要,那么您需要设置的是一个外部检查,如下所述http://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/external
您的脚本将进入您在 zabbix 配置中为 ExternalScripts 指定的目录 - 可能类似于 /etc/zabbix/externalscripts。确保它具有适当的权限,以便 zabbix 用户能够执行它。
在模板或主机中,创建一个新项目,并将类型设置为外部检查,并将键设置为脚本的名称。
然后创建一个触发器,查找“FAILED”行并提醒您。