
zabbix添加web监测
1.Web场景监测概述
1.Web网站中什么是动态网站,什么是静态网站
- 静态网站: 纯静态网站就是服务器的源代码和客户端的源代码一致。
- 动态网站:
每次用户访问的时候,html都是在内存中动态生成的,支持登陆,支持用户交互,所以动态网站登陆需要有东西存下来,那么动态网站会给客户端下发sessionID,客户端会将SessionID保存至cookie中。
演示例子: 禁用IE浏览器的cookie验证,检查是否能登录网站。2.当用户访问Web网站时,session和cookie是如何进行工作的
- 1.当用户首次访问网站,是不会携带cookie信息,那么在服务端返回网页的时候,会给该用户分配一个sessionID
- 2.当用户再次访问网站时,会携带网站对应的cookies信息,服务端接收后会通过session校验用户的cookid
- 3.使用curl模拟用户访问网站
- 1.模拟登陆curl -L -c cook -b cook -d '原始数据' 请求URL
- 2.登陆成功后再次使用curl -c cook -b cook Url >test.html保存获取的内容
1.curl命令行模拟登录:
1.查看curl命令参数[root@zabbix01 html]#curl --help |grep cook -b, --cookie STRING/FILE String or file to read cookies from (H) -c, --cookie-jar FILE Write cookies to this file after operation (H) -j, --junk-session-cookies Ignore session cookies read from file (H)2.curl首页静态页面配合浏览器F12调试功能
[root@zabbix01 html]#curl -X GET -b cookie -c cookie "http://10.10.40.9/zabbix/" >index.html % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 3431 100 3431 0 0 52273 0 --:--:-- --:--:-- --:--:-- 52784 [root@zabbix01 html]#mkdir js [root@zabbix01 html]#mkdir styles [root@zabbix01 html]#cd js/ [root@zabbix01 js]#wget http://10.10.40.9/zabbix/js/browsers.js --2019-06-05 07:39:32-- http://10.10.40.9/zabbix/js/browsers.js Connecting to 10.10.40.9:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1582 (1.5K) [application/javascript] Saving to: ‘browsers.js’ 100%[==============================================================================================================================================>] 1,582 --.-K/s in 0s 2019-06-05 07:39:32 (139 MB/s) - ‘browsers.js’ saved [1582/1582] [root@zabbix01 js]#ls browsers.js [root@zabbix01 html]#cd styles/ [root@zabbix01 styles]#curl -O http://10.10.40.9/zabbix/styles/blue-theme.css % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 128k 100 128k 0 0 66.3M 0 --:--:-- --:--:-- --:--:-- 125M [root@zabbix01 styles]#ls blue-theme.css [root@zabbix01 html]#mkdir img [root@zabbix01 img]#curl -O http://10.10.40.9/zabbix/img/icon-sprite.svg % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 58981 100 58981 0 0 36.5M 0 --:--:-- --:--:-- --:--:-- 56.2M [root@zabbix01 html]#3.模拟登录,跟随跳转
3.1查找失败登录字段
3.2查看源码字段
使用curl传递密码,-L 跟随跳转
[root@zabbix01 html]#curl -X POST -L -b cookie -c cookie -d 'name=Admin&password=zabbix&autologin=1&enter=Sign+in' "http://10.10.40.9/zabbix/" >login.html % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 52 0 0 100 52 0 414 --:--:-- --:--:-- --:--:-- 416 0 0 0 21094 0 0 99k 0 --:--:-- --:--:-- --:--:-- 99k4.使用新的url,F12查看页面请求方式为GET
[root@zabbix01 html]#curl -X GET -L -b cookie -c cookie "http://10.10.40.9/zabbix/hosts.php?ddreset=1" >host.htmlcurl成功看到此页面
5.curl模拟浏览器客户端
[root@zabbix01 ~]#curl --help|grep User-Agent -A, --user-agent STRING User-Agent to send to server (H)
2.Web场景监测实战
1.使用curl命令模拟登陆 zabbix
curl -b -c参数同时使用表示当前目录下的cook文件读取cook数据,如果接收新的到的cook就写到同一个文件里去# 访问zabbix,取得cookies, 保存至cook文件中 [root@m01 ~]# curl -L -c cook -b cook 'http://10.0.0.30/zabbix/index.php' # 第二次带着cook进行数据提交,模拟登陆 [root@m01 ~]# curl -L -c cook -b cook -d 'name=Admin&password=zabbix&autologin=1&enter=Sign+in' 'http://10.0.0.30/zabbix/index.php'2.使用curl命令获取zabbix队列信息
[root@m01 ~]# curl -L -c cook -b cook 'http://10.0.0.30/zabbix/queue.php?config=0'
3.使用zabbix进行web页面监控
1.在页面新增web检测
2.填写场景内容
3.查找浏览器客户端代理字符串
4.填写步骤,第一步打开首页
curl -X GET -b cookie -c cookie "http://10.10.40.9/zabbix/" >index.html
5.填写步骤,第二步登录系统
curl -X POST -L -b cookie -c cookie -d 'name=Admin&password=zabbix&autologin=1&enter=Sign+in' "http://10.10.40.9/zabbix/" >login.html
6.填写步骤,第三步查看监控主机
curl -X GET -L -b cookie -c cookie "http://10.10.40.9/zabbix/hosts.php?ddreset=1" >host.html
7.添加完毕
8.在zabbix页面查看监控(检测-web检测)
3.web场景报警
1.web页面响应检测
1.新建触发器
2.选择或者构建表达式
3.压测被监控功能,触发告警
2.网站打开失败场景
1.新建触发器
如果打开网站的其中一个步骤出现问题,那么触发告警。如果恢复正常访问,那么告警消除。表达式为{Zabbix server:web.test.fail[zabbix的web页面监控].last()}<>0
网站的一套流程走不完,那么就触发告警。















