利用Zabbix监控Web性能和可用性

怎么利用Zabbix监控web性能和可用性呢?

我们这边分为几个步骤:打开网站、登陆、登陆验证、退出,一共4个小step,看实例。

检测流程

1. 打开网站:如果http code为200,并且响应的html中包含Zabbix SIA表示打开成功(zabbix页面有这个标示)

2. 登陆后台:post用户名和密码到index.php,如果响应200,那表示post成功。并且通过正则表达式从响应的html中匹配sid,这个sid也就是一个宏变量,退出可以使用到

3. 验证登陆:打开首页,检索html中是否包含Profile(只有登陆成功,才会有Profile出现)

4.退出账号:传递参数sid给index.php即可退出,响应200即表示退出成功。

创建WEB场景

configuration->Host->你的主机->web->右上角Create scenario

Name:监控项的名称

Application:放到哪个应用中,《什么是Application

Authentication:是否有http的基本认证,大部分情况下是None,难不成用户进来还需要经过一次认证?

Update interval:更新周期,默认60秒,多久跑一次

Retries:重试次数

Agetn:模拟浏览器

HTTP proxy:代理,如果你的站点有多台服务器,那么请写上你目标服务器ip和端口,例如http://10.9.0.2:80,默认端口可不是80,别忘记80了

Variables:宏变量,后面会用到。想了解请点《zabbix用户宏macro

web监控阶段1:打开首页

对step做一个说明:

name:当前step名称,item key中可以用到

url:需要检测的网址

POST:你需要post提交上去的内容,例如user=123&password=123456,,或者使用宏变量user={user}&password={password},如果支持GET,那么可以直接写到URL里面

variables:变量,这边定义宏变量后续的step可以使用

Timeout:超时时间,默认15秒

Required string:响应的内容中必须包含的字符串,否则失败

Required status codes:响应代码必须包含在里面,多个响应代码用逗号分隔,例如200,301,302

web监控阶段2:登陆

post账号和密码上去,关于post在前面已经提过了。

Web监控阶段3:登录验证

Web监控阶段4:退出账号

Web网站检测配置完成

记得保存账号

查看结果

monitorning->web->筛选出你的主机->查看“WEB性能监控_FOR_TTLSA”,结果如下图

各个阶段的响应时间、速度、返回状态码以及总的响应时间

下图是下载速度的图表,包含各个阶段

下图是响应时间的图表

以上是没问题的信息,那么出现故障是什么样子呢?我把密码改掉,演示给大家看看下图,在LOGIN IN这个step就出错了,拿不到SID

那么Required String不匹配又是什么样子呢?我们把阶段3Login CHECK的required string的Profile改成Profile1试试。看看结果

创建监控项:

一旦我们创建好web监控之后,我们便可以查看web站点的性能状况。Zabbix一共给我们提供了6个item key,实际上就三个,分别针对单个阶段和整个阶段,三个item分别为web.test.in、web.test.fail、web.test.error,下面看看它的具体用法。
web.test.in[Scenario,,bps]:整个阶段中的下载速度,单位字节/秒  类型:Numer(float)

web.test.fail[Scenario]:整个检测阶段,失败的阶段个数,如果所有的阶段(step)成功,则返回0

web.test.errorl[Scenario]:返回最后一个错误信息(文本)。

web监控项实例创建触发器“Web scenario failed”,表达式如下
{host:web.test.fail[Scenario].last(0)}#0
创建触发器“Web application is slow”,表达式如下
{host:web.test.in[Scenario,,bps].last(0)}<10000
备注:Scenario改成你web方案的名称即可

阶段监控项:

web.test.in[Scenario,Step,bps]:检索指定阶段的下载速度,字节每秒

类型: Numeric(float)

web.test.time[Scenario,Step]:获取指定阶段响应时间,时间计算从开始请求道获取到所有响应信息之后

类型:Numeric(float)

web.test.rspcode[Scenario,Step]:检索指定阶段的http响应代码
                                                        类型: Numeric(unsigned)

step item使用实例创建触发器 “Zabbix GUI login is too slow” trigger, 触发器表达式如下
{zabbix:web.test.time[ZABBIX GUI,Login].last(0)}>3
说明:ZABBIX GUI是web方案的名称,Login为阶段(step)名称

本文参考以下文章,内容有修改。

http://www.iyunv.com/thread-37656-1-1.html

https://www.ttlsa.com/zabbix/zabbix-web-monitor-real-life-scenario/

时间: 04-12

利用Zabbix监控Web性能和可用性的相关文章

zabbix web scenario 监控Web站点的可用性

Zabbix也可以监控Web站点的可用性.前提是安装Zabbix时启用了libcurl支持. 要使用Web监控,首先需要定义Web Scenario.而每个Web Scenario有一个或者多个 "Http 请求"或者 "Steps"构成.Zabbix根据定义的顺序定期的执行步骤. 在一个Web Scenario中,搜集到的信息包含一下几种: 1. 整个web场景所有步骤的平均下载速度(每秒) 2. 执行出错的步骤(steps)编号 3. 最近的错误信息 而在每一个

LR如何利用siteScope监控MySQL性能

本次实验,是在自己的电脑上使用APMServ5.2.6部署Discuz2.X论坛下,对该论坛的数据库MySQL5.1进行性能测试的,下面讲述LoadRunner在设计场景时,如何利用siteScope工具监控MySQL数据库性能: 一.在网上下载siteScope 我在网上搜了很久,发现siteScope软件的下载资源很少,毕竟它是收费的,想找个破解版,不过还是有的,哈哈...但是版本旧了点siteScope7.9.5 下载地址:http://download.csdn.net/detail/y

zabbix监控mysql性能

今天来看看zabbix如何监控mysql性能,这边使用mysql自带的模板,可以监控如下内容:OPS(增删改查).mysql请求流量带宽,mysql响应流量带宽,最后会附上相应的监控图! 编写check_mysql.sh脚本 用于获取mysql性能指标数据,你需要修改相应的数据库信息 # vim /usr/local/zabbix-2.4.4/scripts/chk_mysql.sh #脚本如下: #!/bin/bash # -----------------------------------

zabbix监控nginx性能状态

nginx在生产环境中的应用越来越广泛,所以需要对nginx的性能状态做一些监控,来发现出来出现的问题.nginx处理流程图具体如下: 注释:Accepts(接受).Handled(已处理).Requests(请求数)是一直在增加的计数器.Active(活跃).Waiting(等待).Reading(读).Writing(写)随着请求量而增减 名称 描述 指标类型 Accepts(接受) NGINX 所接受的客户端连接数 资源: 功能 Handled(已处理) 成功的客户端连接数 资源: 功能

Zabbix 监控 WEB 应用性能

1.介绍使用 zabbix_sender 发送采集的 WEB 状态值,使用 pycurl 来采集 WEB 状态.2.实现Python 脚本如下: #!/usr/bin/env python #coding=utf-8 import os import sys import fileinput import pycurl import logging hostname = "Zabbix server" zabbix_server = "127.0.0.1" zabb

zabbix监控WEB页面及告警 实战

网站对一个公司来说非常重要,里边包含了公司的业务,介绍和订单等相关信息,网站的宕掉了对公司的影响非常重大,所以要很好的对网站的页面进行监控,zabbix提供了对web页面的监控,具体步骤如下. 一,配置web页面的检测: 1,选择一台能上外网的被监控主机,依次执行:配置---主机---zabbix server---web监测. 2,单击web场景---创建web场景. 3,在场景选项卡中添加名称,应用集.然后调到步骤选项卡来添加监控页面. 4,在步骤选项卡中单击添加按钮,依次添加名称,URL超

利用Zabbix监控mysql主从

mysql主从监控 #脚本如下,截取主从关键字 cat check_mysql_slave.sh  #!/bin/bash # declare -a 定义数组,slave_is 会被视为数组 declare -a slave_is slave_is=($(/data/mysql/bin/mysql -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running:"|awk '{print $2

使用iostat和LLD实现zabbix监控IO性能

最近有一个需求是对系统的IO进行监控,最后决定从iostat获取数据. iostat -x -d -m 1 3 参数简单解析: -x     Display  extended statistics -d     Display the device utilization report -m     Display statistics in megabytes per second instead of blocks or kilobytes per second 那么为什么要 1 3呢?

利用zabbix监控某个目录大小

近期,因为JMS的消息堆积导致ApacheMQ频率故障(消息没有被消费掉,导致其数据库达到1.2G,JMS此时直接挂掉),很是郁闷!刚好自 己在研究zabbix.既然zabbix如此强大,那么它可以监控我的这个目录大小吗?在网上找了很久之后,没有结果. 此时,想起了这前导入的其他模版,于是决定修改模版,改着改着又出问题!但是思路已经有了.于是有了本文. 有了需求,可以直接开工了!为了方便记忆,我会写详细的步骤. 需求: 要监控/usr/local/activemq5.5/data/kahadb