四、Zabbix监控-Web

1.1 web监测的概述

使用zabbix对网站进行多方面可用性监控,比如下载速度,响应时间,响应状态码等;

1.访问资源
2.登录资源
3.检查登录是否成功
4.退出登录
5.检查是否成功退出

1.2 web检测如何实现

要使用web监控,需要先定义web场景,web场景包括一个或者多个HTTP请求步骤。zabbix server会周期性执行这些不走

从zabbix 2.2 开始,web场景和监控项,触发器一样,是依附在主机/模版上的。 这就意味着web场景也可以创建到一个模版里,然后应用于多个主机。

1.3 web场景检测-crul

在实现web站点检测之前,我们需要了解curl命令如何实现web站点登录,因为zabbix监控web站点底层使用的是curl命令来实现的,那使用curl命令登录站点如何实现。

    1. 请求服务端,获取sessionID
    1. 请求服务端,携带sessionID+UserName+Password登录验证
    1. 可以之间访问服务器登录后的页面
#1. 使用curl命令请求服务端,获取sessionID,并将其保存
[root@web01 ~]#   curl -L -c cook -b cook 'http://zabbix.panpancar.com/index.php'

#2.携带sessionID+用户名+用户密码登录网站
[root@web01 ~]# curl -L -c cook -b cook -d 'name=Admin&password=zabbix&autologin=1&enter=Sign+in' http://zabbix.panpancar.com/index.php

#3.请求服务端,携带session即可,然后访问我们需要访问登录后的资源
[root@web01 ~]# curl -L -c cook -b cook  'http://zabbix.panpancar.com/hosts.php'

1.4 web场景监测实践

使用zabbix web监控zabbix的web界面,我们想知道它是否可用,是否正常工作以及其相应速度。
首先需要添加场景来监控zabbix的web界面,该场景需要执行多个步骤

1.4.1 第一步: 创建新的web场景

配置→主机→选择主机→单击web监测→创建web监测
在新的场景中, 我们将场景命名为监控zabbixweb,并为其创建一个新的应用,在新的场景中,我们将场景命名为监控zabbixweb,并为其创建一个新的应用
在这里插入图片描述

1.4.2 第二步:步骤1-访问zabbix站点

定义场景的步骤→点击步骤→点击添加按钮
步骤1,首先检查第一页响应是否正确,返回HTTP响应代码200,并包含文本Zabbix SIA
在这里插入图片描述
在这里插入图片描述

1.4.3 第二步:步骤2-登录zabbix站点

登录Zabbix,提交用户名与密码
name=Admin&password=zabbix&autologin=1&enter=Sign+in
使用正则提取会话ID:regex:name=“csrf-token” content=“([0-9a-z]{16})” 。后续退出时需要使用;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4.4 第二步:步骤3-验证是否登录成功

登录后需要验证是否成功。为此检查一个仅在登录后可见的字符串,例如:管理
在这里插入图片描述
在这里插入图片描述

1.4.5 第二步:步骤4-退出zabbix站点

验证后需要退出zabbix,否知zabbix数据库会被大量的开放会话记录所污染。
退出的URL地址
http://zabbix.panpancar.com/index.php?reconnect=1
在这里插入图片描述
在这里插入图片描述

1.4.6 第二步:步骤5-检查是否退出成功

我们可以通过查找Username字符串来检查我们是否已经注销
在这里插入图片描述
在这里插入图片描述

1.4.7 第二步:步骤6-完成web场景配置

完成配置web场景步骤,完成配置如下所示
在这里插入图片描述

1.4.8 第三步:检查整体监控结果

在这里插入图片描述

在这里插入图片描述

1.5 web场景触发器

1.5.1 监控web站点失败场景

要创建“web 场景失败”触发器,可以定义触发器表达式

#触发器名称(提供有用的问她描述)
web 检测 “zabbix web” failed:{ITEM.VALUE}

#触发器表达式
{Zabbix server:web.test.fail[监控zabbixweb].last()}<>0

#恢复表达式
{Zabbix server:web.test.fail[监控zabbixweb].last()}=0

1.5.2 监控web站点响应时间

监控项key:web.test.time[Scenario,Step,resp](以秒为单位)

#触发器名称(并提供有用的问题描述)
web"响应时间大于1s" timeout: {ITEM.VALUE}

#触发器表达式
{Zabbix server:web.test.time[监控zabbixweb,访问zabbix,resp].last(#3)}>1 or {Zabbix server:web.test.time[监控zabbixweb,登录zabbix,resp].last(#3)}>1 or {Zabbix server:web.test.in[监控zabbixweb,验证是否登录zabbix,bps].last(#3)}>1 or {Zabbix server:web.test.time[监控zabbixweb,退出zabbix,resp].last(#3)}>1 or {Zabbix server:web.test.time[监控zabbixweb,检查是否退出,resp].last(#3)}>1

#恢复表达式
{Zabbix server:web.test.time[监控zabbixweb,访问zabbix,resp].last()}<1 or {Zabbix server:web.test.time[监控zabbixweb,登录zabbix,resp].last()}<1 or {Zabbix server:web.test.in[监控zabbixweb,验证是否登录zabbix,bps].last()}<1 or {Zabbix server:web.test.time[监控zabbixweb,退出zabbix,resp].last()}<1 or {Zabbix server:web.test.time[监控zabbixweb,检查是否退出,resp].last()}<1

压测脚本:

[root@localhost ~]# cat ab.sh
for i in {1..100}
do
ab -n 1000 -c 200
http://zabbix.panpancar.com/index.php
sleep 0.5
done

1.5.3 监控web站点响应代码

监控项key: web.test.rspcode[Scenario,Step]用于收集监控项步骤的响应代码。

关闭zabbix的php-fpm来测试

#触发器表达式
{Zabbix server:web.test.rspcode[监控zabbixweb,访问zabbix].last()}<>200 or {Zabbix server:web.test.rspcode[监控zabbixweb,登录zabbix].last()}<>200

恢复表达式
{Zabbix server:web.test.rspcode[监控zabbixweb,访问zabbix].last()}=200 or {Zabbix server:web.test.rspcode[监控zabbixweb,登录zabbix].last()}=200
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值