命令记不住

登陆

zabbix 添加 web 监测

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调试功能


webf12


[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查找失败登录字段


2


3.2查看源码字段
3


使用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 --:--:-- --:--:-- --:--:--   99k

4.使用新的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.html

curl成功看到此页面


4


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检测


5


2.填写场景内容


7


3.查找浏览器客户端代理字符串


6


4.填写步骤,第一步打开首页

curl -X GET -b cookie -c cookie "http://10.10.40.9/zabbix/" >index.html


8


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


9


6.填写步骤,第三步查看监控主机

curl -X GET -L -b cookie -c cookie "http://10.10.40.9/zabbix/hosts.php?ddreset=1" >host.html


10


7.添加完毕


11


8.在zabbix页面查看监控(检测-web检测)


监控完成


3.web场景报警


1.web页面响应检测
1.新建触发器


13


2.选择或者构建表达式


14


3.压测被监控功能,触发告警


15


2.网站打开失败场景
1.新建触发器
如果打开网站的其中一个步骤出现问题,那么触发告警。如果恢复正常访问,那么告警消除。表达式为

{Zabbix server:web.test.fail[zabbix的web页面监控].last()}<>0


16


网站的一套流程走不完,那么就触发告警。

推荐阅读