专注于操作系统、网络、存储、安全、大数据与云计算、集群、基础组件等

理想很美好,现实很残酷,坚持在路上,只因初心仍存

ZABBIX全栈级监控实践——(九)面向业务行为的监控

一、概述 

在之前的分享中,和大家聊过监控的广度。

一个完整的监控链路应该至少由一下几部分构成:

1、底层的硬件(服务器、网络设备、UPS电源、环境温度等)

2、存储(磁盘阵列、集中式存储、分布式存储等)

3、操作系统(包括虚拟化操作系统,以及在虚拟化层之上的操作系统,如windowslinuxaix等)

4、中间件(TomcatNginxApache等)

5、数据库(MySQLSQLServerRedis等)

6、应用(B端、C端应用,也包括移动端等)

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

 

 

对于IT专业人员而言,更关注的是操作系统这一层上下的监控(主要是操作系统,中间件和数据库)。那么有一个问题,如果这些组建能够正常运作,对应的应用和业务真的没有问题吗?

 

在软件测试领域,常常会使用Selenium来模拟用户的行为(鼠标操作、键盘操作、截图等),进行UI测试,确认相应的功能能否正常运作。

Zabbix虽然没有SeleniumUI测试功能,但本身也提供了一个模拟Web场景的操作功能——Web Scenario

 

二、需求分析

先想一个问题:如何确保Zabbix平台正常运行?

如果监控CPU、内存等系统指标,只能确保Zabbix所在的服务器系统面正常;

如果监控端口和进程,只能确保Zabbix在指定端口上提供了服务;

但这些仍然无法确保用户可以正常使用这些平台。

 

事实上,此时需要以结果为导向,模拟用户的正常操作,并确保这些操作能够达到我们的预期。

 

以用户访问Zabbix平台为例,用户需要实现一下几个步骤:

1、需要打开ZabbixURL,确保能够正常访问

2、需要使用正确的用户名和密码登陆Zabbix,确保能够正常登陆

3、需要登陆后访问某个内部页面(如Configuration下面的Hosts页面),确认能够正常打开

4、需要做一些查询操作(如查询127.0.0.1这台zabbix server本机),确保能够正确查询

5、需要登出Zabbix,确保能够正常登出

在上述过程中,也可以添加一些自定义的步骤(用户使用Zabbix的行为,如添加hosts等),确保Zabbix相应的功能可以被使用正常。

 

三、通过Zabbix Web Scenario实现面向业务行为的监控

那么在Zabbix平台中,我们该如何通过Web Scenario来实现?

1、首先在一台可以访问Zabbix Web页面的服务器上创建一个Web Scenario,本例中这个Web Scenario创建在了Zabbix Server本机

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

 

在这里,我们使用了Variables变量,由于登陆的用户名密码在后续的步骤中会用到,可以在这里指定(也可以在后面步骤中书写,可以理解为全局变量和局部变量的区别)。

其他选项保持默认。接下来我们需要模拟需求分析部分的各个业务场景。

 

2、第一步:需要打开ZabbixURL,确保能够正常访问

Steps中添加Open Zabbix Website的步骤,如下图:

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

简单来说,就是让监控所在的服务器去访问这个url,如果在15s内能够访问到这个页面,且状态码为200(正常),同时返回的信息包含Zabbix这个关键词(用于确认Zabbix页面能被正常打开,而不是空白页),那么这一步就是成功的。需要注意的是,当你访问http://localhost/zabbix的时候,实际是通过跳转访问到了index.php页面,所以需要勾选Follow redirects

 

3、第二步:需要使用正确的用户名和密码登陆Zabbix,确保能够正常登陆。

Steps中添加Sign in的步骤,如下图:

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

 

这里之所以添加了Post Field,是因为当我们登陆Zabbix的时候,其实是对于这个URL进行了Post,具体post了那些字段,可以通过浏览器的抓包看到。

同样的,我们要求状态码为200,返回页面包含zabbix关键词。

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

 

 

4、第三步:需要登陆后访问某个内部页面(如Configuration下面的Hosts页面),确认能够正常打开。

同样,创建一个Visit “HOSTS” menustep,返回值config,状态码200

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

 

5、第四步:需要做一些查询操作(如查询127.0.0.1这台zabbix server本机),确保能够正确查询

创建Search “127.0.0.1”step,查询search这个字段,value127.0.0.1,由于能找到这台服务器,所以返回字段中也要求包含127.0.0.1,状态码200.

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

 

 

6、第五步:需要登出Zabbix,确保能够正常登出

创建一个Sign OutStep,确保能登出,具体的URLfield均可以通过抓包或者浏览器debug模式获得。

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

 

 

四、总结

通过Zabbix Web Scenario的监控,可以实现面向业务的监控,并通过postget请求模拟了一些常用的操作,验证了相应的功能。具体的解决思路如下:

1、URL处,填写用户实际访问的地址

2、Query Field处,填写Get方法对应的参数

3、Post Filed处,填写Post方法对应的参数

4、按需配置返回页面包含的关键词(Required string)以及状态码(Required status codes,一般为200

 

最终的监控效果如下,可以返回失败在哪一个步骤,以及对应页面的访问速度和响应时间。

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

 

 

《ZABBIX全栈级监控实践——(九)面向业务行为的监控》

点赞

发表评论