本文转载:http://dl528888.blog.51cto.com/2382721/1605513
最近线上的zabbix使用默认web监控的东东,经常出现误报情况,从后台日志来看错误信息为:
1 | web scenario step "登陆服务器web接口监控" error: error doing curl_easy_perform: Couldn't resolve host name |
从zabbix的web里看报错为
经过谷歌,发现此问题属于zabbix bug导致,已经在2.1.0版本修复(目前我的版本是2.0.6),所以解决此问题的方法有:
1、更新zabbix server版本;
2、使用自定义监控替代默认的zabbix web监控;
由于线上业务,在稳定的情况下,为了某一项功能而升级划不来,所以我选择了第二项,下面是我自定义监控的内容。
客户端:
1、在/usr/local/zabbix/conf/zabbix_agentd.conf里添加
1 2 | 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 2 3 4 5 6 7 8 9 10 | 案例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、重启客户端
1 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返回码监控
web返回值监控
2、添加触发器
web返回值的
web返回码的
希望对大家有益。