zabbix自动发现功能实现批量web url监控 , zabbix优化web事件(events)打开速度
2015-05-21 20:24
1051 查看
本文转载:/article/4292667.html
需求:
现在有大量url需要监控,形式如http://www.baidu.com ,要求url状态不为200即报警。
需求详细分析:
大量的url,且url经常变化,现在监控用的是zabbix,如果手动添加模板,会造成大量重复工作,如果利用脚本+mail,无法图形呈现
解决方案:
zabbix有discovery功能,即可轻松解决此问题
zabbix客户端配置
编写自动发现脚本
需求:
现在有大量url需要监控,形式如http://www.baidu.com ,要求url状态不为200即报警。
需求详细分析:
大量的url,且url经常变化,现在监控用的是zabbix,如果手动添加模板,会造成大量重复工作,如果利用脚本+mail,无法图形呈现
解决方案:
zabbix有discovery功能,即可轻松解决此问题
zabbix客户端配置
编写自动发现脚本
# cat web_site_code_status.sh #!/bin/bash # function:monitor tcp connect status from zabbix source /etc/bashrc >/dev/null 2>&1 source /etc/profile >/dev/null 2>&1 #/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1/ web_site_discovery () { WEB_SITE=($(cat /data/zabbix/sbin/WEB.txt|grep -v "^#")) printf '{\n' printf '\t"data":[\n' for((i=0;i<${#WEB_SITE[@]};++i)) { num=$(echo $((${#WEB_SITE[@]}-1))) if [ "$i" != ${num} ]; then printf "\t\t{ \n" printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$i]}\"},\n" else printf "\t\t{ \n" printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$num]}\"}]}\n" fi } } web_site_code () { /usr/bin/curl -o /dev/null -s -w %{http_code} http://$1 } case "$1" in web_site_discovery) web_site_discovery ;; web_site_code) web_site_code $2 ;; *) echo "Usage:$0 {web_site_discovery|web_site_code 2.创建WEB.txt文件# pwd /data/zabbix/sbin # cat WEB.txt www.qq.com www.baidu.com www.sina.com3.客户端配置文件#########cat /data/zabbix/etc/zabbix_agentd.conf.d/web_site_discovery.conf ########## UserParameter=web.site.discovery,/etc/zabbix/scripts/web_site_code_status web_site_discovery UserParameter=web.site.code[*],/etc/zabbix/scripts/web_site_code_status web_site_code $1 ######cat /etc/zabbix/zabbix_agentd.conf|grep -v "^#"|grep -v "^$"#####此处省略N多信息, Include=/etc/zabbix/zabbix_agentd.conf.d/ #配置文件路径 UnsafeUserParameters=1 #自定义key4.测试
# /data/zabbix/bin/zabbix_get -p 10050 -s 10.251.107.0 -k web.site.discovery
" target=_blank>}"
;;
esac[/code]2.创建WEB.txt文件# pwd /data/zabbix/sbin # cat WEB.txt www.qq.com www.baidu.com www.sina.com3.客户端配置文件#########cat /data/zabbix/etc/zabbix_agentd.conf.d/web_site_discovery.conf ########## UserParameter=web.site.discovery,/etc/zabbix/scripts/web_site_code_status web_site_discovery UserParameter=web.site.code[*],/etc/zabbix/scripts/web_site_code_status web_site_code $1 ######cat /etc/zabbix/zabbix_agentd.conf|grep -v "^#"|grep -v "^$"#####此处省略N多信息, Include=/etc/zabbix/zabbix_agentd.conf.d/ #配置文件路径 UnsafeUserParameters=1 #自定义key4.测试
# /data/zabbix/bin/zabbix_get -p 10050 -s 10.251.107.0 -k web.site.discovery
[url=http://s3.51cto.com/wyfs02/M01/6D/33/wKiom1Vd0E_hrYF7AACGOtGesxA161.jpg]# /data/zabbix/bin/zabbix_get -p 10050 -s 10.251.107.0 -k web.site.code[www.qq.com] 200此时返回状态为200
至此,脚本,客户端配置文件OK
接下来是web的添加
[url=http://s3.51cto.com/wyfs02/M00/6D/36/wKiom1VehE-Dv34iAAEq4mKdjkg686.jpg]
报警级别的设置:3个报警级别
利用以上方法,哪怕是1000个url监控,也是分分钟的事情.
参考文档:https://www.zabbix.com/documentation/2.0/manual/discovery/low_level_discovery
zabbix自动发现监控http端口.pdf http://code.google.com/p/auto-task-pe/downloads/list
zabbix企业应用之优化web事件(events)打开速度
随着监控主机数量增大,trigger与events也不断增加,导致在web里查看事件的速度变的非常慢,通过events表发现最大的events已经13亿了,而且默认事件打开是最近7天里所有数据,所有肯定很忙,目前经过优化后提供了2倍打开速度。
优化前,使用firebug打开测试可以看到打开速度为29.07秒
下图为优化后的,通过查看数据库发现events事件表有13亿条数据,所以仅保留最近一个月数据,其他数据删除,优化后打开事件的使用时间如下图,打开时间为10.61秒
下面是如何优化的步骤:
1、在zabbix数据库服务器里登陆数据库,使用下面命令use zabbix; delete from events where clock <= UNIX_TIMESTAMP('2014-06-01');这样就能删除2014年6月1日前的events数据了,为了能自动删除数据,可以做个脚本+crontab
2、shell脚本#!/bin/bash #this script name is delete_events.sh host="localhost" socket="/data/perconadata5.6/mysql.sock" user="zabbix" pass="zabbix" port="3306" time=`date -d "last-month" +%Y-%m-01` mysql -u $user -p$pass -h$host -S $socket -P $port <<EOF use zabbix; delete from events where clock <= UNIX_TIMESTAMP('${time}') limit 40000; EOF
这样是在删除上个月的数据,保留最近1个月的,并且每次删除4w条
3、crontab* * * * * /bin/bash /usr/local/zabbix/bin/delete_events.sh下面是使用此脚本删除后,数据events表的情况
最大eventid为13亿,现在保留56w数据。
相关文章推荐
- 自动化运维之监控篇---利用zabbix自动发现功能实现批量web url监控
- zabbix企业应用之优化web事件(events)打开速度
- zabbix自动发现功能 监控web url
- zabbix自动发现实现批量监控docker状态
- zabbix自动发现实现批量监控docker状态
- zabbix自动发现url以及对http返回状态码监控实现
- zabbix自动发现规则实现批量监控主机的TCP监听端口
- zabbix自动发现实现批量监控docker状态
- Zabbix agent自动注册功能实现主机批量监控
- Zabbix发现、自动注册和web监控 推荐
- 手游公司运维之利用zabbix的自动发现功能监控游戏区服的redis数据库
- zabbix使用自动发现功能监控服务器各JVM进程状态
- zabbix自动发现监控url
- zabbix 批量web url监控
- 【zabbix】利用LLD自动发现功能监控多Tomcat实例
- 【zabbix】利用LLD自动发现功能监控多Memcached实例
- 【zabbix】利用LLD自动发现功能监控多Redis实例
- web监控:zabbix自动发现+python之pycur模块对网站访问质量监控
- zabbix自动发现结合shell实现自动发现占用内存最大top10进程并监控其资源
- zabbix 自动发现tomcat的war包并实现监控