ZABBIX结合自动发现机制实现站点/hs页面健康监控
ZABBIX结合自动发现机制实现站点/hs页面健康监控
需求:为了防止业务假死,我们需要对服务hs页面进行监控
前提:项目标准化程序较高,已经规划/hs页面的使用
说明:ZABBIX本身也有web监控项,但是不够灵活,每次配置一个域名都需要一连串配置才可以,在微服务站点多切变化频繁时管理将会十分低效
通过自动发现监控的逻辑:
1、zabbix通过脚本或者其他形式首先发现识别json域名列表进行引用
2、当zabbix自动发现完成,将发现的值配置为变量,将变量配置为item中
要点:自动发现需要对发现的内容json化,以便于ZABBIX识别。
亮出配置文件:
UserParameter=webhs.discovery,/bin/cat /etc/zabbix/scripts/domain.list ##用于获取域名列表 UserParameter=webhs[*],/bin/bash /etc/zabbix/scripts/webhs.sh $1 ##用于探测域名是否正常
准备需要被监控的站点json文件:
## 这里的json文件请务必保证格式,建议编写后在http://json.cn/进行测试 ## 获取域名的形式可以通过脚本调CMDB接口获得,也可以自己编写json文件,通过cat命令调用,但输出请严格保证json ## json文件位置与配置文件中cat调用的相对应 [ scripts]# cat domain.list { "data": [ {"{#DOMAIN}":"userinfo.prod.xxxx.com"}, {"{#DOMAIN}":"gateway.xxxx.com"}, {"{#DOMAIN}":"shenjing.xxxx.com"}, {"{#DOMAIN}":"gatewayadmin.prod.xxxx.com"}, ...省略很多,大概一百多个 {"{#DOMAIN}":"ppdquery.prod.xxxx.com"} ] }
测试zabbix-server是否可以正常拿到域名列表信息
[ ~]# zabbix_get -s 10.3.2.105 -k webhs.discovery { "data": [ {"{#DOMAIN}":"userinfo.prod.tarsapi.com"}, {"{#DOMAIN}":"gateway.tarsplus.com"}, {"{#DOMAIN}":"shenjing.tarsplus.com"}, {"{#DOMAIN}":"gatewayadmin.prod.tarsapi.com"}, ...省略很多,大概一百多个 {"{#DOMAIN}":"ppdquery.prod.xxxx.com"} ] }
准备检测域名健康状态的脚本
域名列表可以拿到后配置检测健康状态的脚本。原理就是zabbix拿到域名,然后将域名通过位置变量传递给检测脚本执行得到返回值(失败返回1,成功返回0),zabbix服务器根据返回值制定触发器
[ scripts]# vim webhs.sh ## 保证zabbix有可执行x权限 #!/bin/bash result=`curl -I -m 10 -o /dev/null -s -w %{http_code} ${1}/hs` ##${1}位置变量 if [ $result -eq 200 ];then echo "0" elif [ $result -eq 302 ];then echo "0" elif [ $result -eq 301 ];then echo "0" else echo "1" fi
配置ZABBIX平台方面
一切准备就绪,新建ZABBIX模板(Templates)并配置自动发现(Discovery)
配置发现域名列表
配置自动发现item
配置自动发现的trigger
配置完毕后将模板套用到准备了webhs.sh和domain.list文件的客户端机器上即可,两分钟后会发现已经自动发现并监控了
相关推荐
liuttorrie 2020-07-04
Yakamoz 2020-06-17
Lophole 2020-06-13
liaoxuewu 2020-06-11
技术之博大精深 2020-06-10
Lophole 2020-05-25
gtsjx 2020-05-19
Lophole 2020-05-09
书虫媛 2020-05-03
Lophole 2020-04-29
luvhl 2020-04-10
书虫媛 2020-03-07
Lophole 2020-03-03
SIMONDOMAIN 2020-02-25
SIMONDOMAIN 2020-02-19
zhuakuang0 2020-02-17
书虫媛 2020-02-11