zabbix批量监测WEB页面
我们都知道zabbix具备WEB监测功能,单纯的添加几个、十几个的话,手工添加也行,稍费点事而已,可一旦数量太多,那手工添加明显不太合适了。最近就遇见这么个需求,要一次性添加200多个页面,这…着实有些为难老夫了。硬着头皮添加了二十来个,挠下一把头发后才想起来,老夫我也是多多少少会些脚本人,何不偷个懒呢。于是在网上找了找教程,适当的做了些改造,总算搞定了。分享给大家,希望能给大家带来帮助。
1、环境说明
ubuntu 22.04 / zabbix 6.0
2、URL测试
这一步主要是为了确定下给定的URL是否正确,如果我们能够确定URL没有任何问题,这一步可以略过。先看下我手中的数据格式
这一步使用以下脚本实现vim url_test.py import xlrd import requests #先获取这个excel文件 worksheet = xlrd.open_workbook(r"E:url.xlsx") #获取这个文件里所有的sheet sheet_names = worksheet.sheet_names() #本文件中有两个sheet,分别为"Sheet2", "Sheet1" print(sheet_names) #循环这两个sheet # for sheet_name in sheet_names: #通过sheet名称来获取单个sheet的所有数据 # sheet = worksheet.sheet_by_name(sheet_name) #将第三列的数据存储到url_name中 # url_name = sheet.col_values(2) # print(url_name) #我这里没有做循环,因为就一个sheet里有数据 sheet =worksheet.sheet_by_name("Sheet2") url_name = sheet.col_values(2) # print(url_name) headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" } for url in url_name[1:]: try: req = requests.get(url,headers=headers,timeout=5) print("域名"+ url + "返回码: " + str(req.status_code)) except Exception as e: print("域名"+ url + "访问出现如下异常:%s" %e)
输出结果是这个样子的域名http://europhil.aaa.com返回码: 403 域名http://www.aaa.com返回码: 200 域名http://cs.aaa.com返回码: 200
这样就把访问异常的页面提前筛选出来,可以提前核实下文件中的内容是否正确。
3、重组数据
重组数据后的数据比较简单,只是将路径那一列删除了,没什么鸟用,当然不删也行,就是单纯的为了好看些。不过这个数据需要存储在.txt获取.log文件中,否则后面无法读取,格式是这样的站点名称1,http://cs.aaa.com 站点名称2,http://bwb.aaa.com 站点名称3,http://wy.aaa.com
我将这个文件放到了/usr/lib/zabbix/customscripts中,下面需要用到的脚本文件也都放到了这个目录中,这里一定要注意,文件中不要有重复数据 。
4、配置自动发现和页面状态检测脚本
首先配置自动发现脚本cd /usr/lib/zabbix/customscripts vim web_discovery.sh #脚本内容如下: #!/bin/bash WEB_SITE=($(grep -v "^#" /usr/lib/zabbix/customscripts/sd_url.txt | awk -F "," "{print $1}")) WEB_URL=($(grep -v "^#" /usr/lib/zabbix/customscripts/sd_url.txt | awk -F "," "{print $2}")) length=${#WEB_SITE[@]} printf "{ " printf " """data":[" for ((i=0;i<${#WEB_SITE[@]};++i)) do printf " {" printf ""{#URLNAME}":"${WEB_SITE[$i]}","{#URL}":"${WEB_URL[$i]}"}" if [ $i -lt $[$length-1] ];then printf "," fi done printf " ] " printf "} "
接着来配置页面状态检测脚本,这个脚本完全照搬网上的vim web_status.sh #脚本内容如下: #!/bin/bash url=$1 status=$2 http_code () { /usr/bin/curl -o /dev/null -s -w %{http_code} $url } time_total () { /usr/bin/curl -o /dev/null -s -w %{time_total} $url|awk "{print $1*1000}" } time_connect () { /usr/bin/curl -o /dev/null -s -w %{time_connect} $url|awk "{print $1*1000}" } time_starttransfer () { /usr/bin/curl -o /dev/null -s -w %{time_starttransfer} $url|awk "{print $1*1000}" } speed_download () { /usr/bin/curl -o /dev/null -s -w %{speed_download} $url|awk "{print $1/1024}" } case $status in http_code) http_code ;; time_total) time_total ;; time_connect) time_connect ;; time_starttransfer) time_starttransfer ;; speed_download) speed_download ;; *) echo "Usage:$0 {[URL] http_code|time_total|time_connect|time_starttransfer|speed_download}" ;; esac
5、zabbix agent配置
在安装有zabbix agent的主机上创建配置文件cd /etc/zabbix/zabbix_agentd.d vim url.conf #添加如下内容 UserParameter=web.discovery,/usr/lib/zabbix/customscripts/web_discovery.sh UserParameter=web.status[*],/usr/lib/zabbix/customscripts/web_status.sh $1 $2 #修改agent配置文件,默认为0,修改为1,否则可能会不能正确执行脚本 vim /etc/zabbix/zabbix_agentd.conf UnsafeUserParameters=1 #修改后重启agent systemctl restart zabbix-agent
6、zabbix 服务端配置
修改zabbix配置文件,不是完全必要,但建议修改下#执行脚本可能会超时,可以调大一下超时时间,默认3 Timeout=15
在页面中添加自动发现规则,可以添加成模板,我这里直接在zabbix server中进行添加
这里注意箭头标识的地方,一定要和上一步中url.conf中键值一致
接下来就是添加监控原型了,示例如下,注意和url.conf中的键值,以及web_status.sh中的字段对应起来。
将其他四个依次添加上。
7、结果查看
执行自动发现后,结果是这样的后面配置告警和图形就不说了,比较通用。
后面配置告警和图形就不说了,比较通用,大家自行配置即可。
2022年最值得回忆的声音暨HiFi随身器材双十二推荐本来这篇文章的题目应该是双十一推荐,结果没想到2022年真的成了最难的一年。参加TAS2022上海展的第二天,家里老人出了交通意外,急诊骨折大手术康复毫无准备下不得不连轴转,心力憔
红尘滚滚,往事如风,眼前飞扬着一个个熟悉的面容寒冬已至,偎着暖炉,窗外熟悉的喧嚣变成一派岑寂,木叶萧萧,长夜漫漫,且来听一听这红尘世间的往事。古老往昔的时光,犹如童话中沉睡的公主,在逝去的时空之梦中,时时发出轻声的呢喃,那是历
40岁往事怪老头和他的狗文楚千骑(1)11月20日,2022卡塔尔世界杯在万众瞩目中开幕,东道主对战厄瓜多尔。坐在餐馆里,远远看着林立的高楼,穿行的汽车,我发现,现在我有很多时间观察这个世界,这并不是说之
克罗地亚狂想曲三扑点球的奇迹世界杯观察终场哨音响起,克罗地亚队球员挥舞双臂奔向场地中央。6日凌晨,在卡塔尔世界杯八分之一决赛通过点球大战42击败日本队后,格子军又一次通过加时赛获胜,加时赛之王名副其实。被替换
那些初中往事你还记得吗前两天刷到一张初中校园的照片,记忆瞬间就把我拉回到十几年前。不由感慨时间过得真快,一切仿佛发生在昨天一样。如果不是岁月留下了痕迹,还以为是做了场梦。看着上移的发际线,细微的眼角纹,
世界杯18决赛摩洛哥VS西班牙,雄狮拿下斗牛士,制造奇迹?头条创作挑战赛2022年卡塔尔世界杯2022年卡塔尔世界杯18决赛最后一个比赛日,北京时间2022年12月6日晚上2300,首先由F组第一迎战E组第二,摩洛哥VS西班牙,亚特拉斯雄
记忆中的美丽镇平冬日生活打卡季镇平县,隶属河南省南阳市,位于河南省西南部,南阳盆地西北侧,伏牛山南麓。是国家出口食品质量安全示范县屋顶分布式光伏开发试点县全国义务教育发展基本均衡县中国玉兰之乡。镇
倾听北交所上市公司声音润农节水董事长薛宝松北交所为公司高速发展注入强劲动力公司2011年成立,历经新三板创新层精选层北交所上市,公司的一步步发展都离不开资本市场的支持,机动灵活的融资政策,为公司持续高速发展注入了强劲动力。在北交所开市一周年之际,润农节水
向不规范网络用语说不巨量引擎强化治理与引导每个字都认识,放在一起就不知所言了。面对层出不穷的网络语言,不少网友有这样的感受。互联网在传承发扬汉字之美的同时,衍变出内牛满面YYDSduck不必等网络用语,甚至一些网络低俗用语
资讯加速布局储能业务,国轩高科491兆瓦时海外储能项目量产发货文懂车帝原创魏微懂车帝原创行业近日,懂车帝从官方了解到,国轩高科491兆瓦时(MWh)海外大型储能电站首批集装箱正式发货。据悉,此次交付的大型储能集装箱采用国轩高科自主研发和生产的
ST大集,炒起来的妖股,凉掉的业务文虚渊玄上周四,22天19个板的ST大集(000564。SZ)终于进小黑屋了。11月30日晚,ST大集发布公告称,因近期公司股价异动,自12月1日开市起停牌,自披露核查公告后复牌。