zabbix 2.0.x版本默认web监控bug解决方法

最近线上的zabbix使用默认web监控的东东,经常出现误报情况,从后台日志来看错误信息为:

web scenario step "登陆服务器web接口监控" error: error doing curl_easy_perform: Couldn't resolve host name

从zabbix的web里看报错为

wKioL1S8X6fRPm7LAABTKd54dlA227.jpg

经过谷歌,发现此问题属于zabbix bug导致,已经在2.1.0版本修复(目前我的版本是2.0.6),所以解决此问题的方法有:

1、更新zabbix server版本;

2、使用自定义监控替代默认的zabbix web监控;

由于线上业务,在稳定的情况下,为了某一项功能而升级划不来,所以我选择了第二项,下面是我自定义监控的内容。

客户端:

1、在/usr/local/zabbix/conf/zabbix_agentd.conf里添加

UserParameter=ck_check_web_code[*],curl -s -I -L  "$1" --connect-timeout $2 -m $2|grep HTTP|awk '{print $$2}'|tail -n 1
UserParameter=ck_check_web_value[*],curl -s  "$1" --connect-timeout $2 -m $2|awk '{if($$1~/$3/) {print 0} else {print 1}}'

以上采用curl监控,使用本地的dns进行解析,可以自定义的设置超时时间。

下面是自定义key的说明与案例

案例1:监控网站返回码
网站返回码格式:ck_check_web_code[网站地址,超时时间]
案例:监控百度网站返回码
键值:ck_check_web_code[www.baidu.com,45]
触发器:count(#3,200,"ne")}=3
案例2:监控网站返回值
网站返回值格式:ck_check_web_value[网站地址,超时时间,返回值]
案例:监控xxx网站返回值
键值:ck_check_web_value[http://xxxx/status,45,ok]
触发器:count(#3,0,"ne")}=3

2、重启客户端

ps -ef|grep zabbix|grep -v grep|awk '{print $2}'|xargs kill -9
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf

服务端:

1、添加项目

web返回码监控

wKiom1S8YOHyQ4xiAAIvIStGcPg842.jpg

web返回值监控

wKiom1S8YbOReF5aAAJLX5o_Tnw933.jpg

2、添加触发器

web返回码的

wKiom1S8YgDRb_XXAAElqRq0IZE992.jpg

web返回值的

wKioL1S8YwqTzN2TAAEQM7zekE0005.jpg

希望对大家有益。

你可能感兴趣的:(Web,zabbix,zabbix,Bug修复,web监控)