前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ZABBIX全栈级监控实践——(九)面向业务行为的监控

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

作者头像
Zabbix
发布2021-02-03 11:41:25
1.3K0
发布2021-02-03 11:41:25
举报
文章被收录于专栏:Zabbix中国官方
Zabbix全栈级监控之面向业务行为的监控

蔡翔华(Shawn沙恩),高效运维社区金牌讲师,国内首批ZCP,Zabbix中文手册及EXIN DevOps手册官方译者。积极投入Zabbix社区建设,在多个技术大会上进行技术分享,有丰富的Zabbix开源监控平台的全栈式监控经验。拥有DevOps Master,Zabbix认证专家,ITIL,MCSE,RHCE,VCP等认证。

概述

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

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

  1. 底层的硬件(服务器、网络设备、UPS电源、环境温度等)
  2. 存储(磁盘阵列、集中式存储、分布式存储等)
  3. 操作系统(包括虚拟化操作系统,以及在虚拟化层之上的操作系统,如windows,linux,aix等)
  4. 中间件(Tomcat,Nginx,Apache等)
  5. 数据库(MySQL,SQLServer,Redis等)
  6. 应用(B端、C端应用,也包括移动端等)

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

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

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

需求分析

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

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

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

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

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

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

  1. 需要打开Zabbix的URL,确保能够正常访问
  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本机

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

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

2. 第一步:需要打开Zabbix的URL,确保能够正常访问。

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

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

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

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

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

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

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

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

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

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

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

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

总结

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

  1. URL处,填写用户实际访问的地址
  2. Query Field处,填写Get方法对应的参数
  3. Post Filed处,填写Post方法对应的参数
  4. 按需配置返回页面包含的关键词(Required string)以及状态码(Required status codes,一般为200)

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Zabbix开源社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档