如何使用zabbix进行URL监控,即专门针对URL监控,比如php应用,只要我们能curl到这个ok.php,就认为这个服务是正常的,zabbix的Web monitoring也具有类似的功能。

如果需要使用这个功能,需要编译的时候加入libcurl的支持。

查看:php -m |grep curl

在开始之前,先介绍zabbix的一个概念——“Web scenarios”,即网络场景,就是用户为了完成某个目标,在网络上进行的一系列操作的过程。比方说,要登录微博,就是一个“网络场景”,在其中的每一个步骤操作——打开页面、发起登录请求、登录成功或者失败,在zabbix中统称为“步骤”。定义一个Web scenarios,我们需要定义其中什么步骤,以及按照什么顺序执行,然后zabbix会定期按照设置的顺序来执行这些“步骤”。

在任何网络场景中收集下列信息:

1、所有步骤的平均下载速度

2、失败的步骤数

3、最后一次出错信息

在所有步骤中收集以下信息:

1、平均下载速度

2、响应时间

3、响应代码

Zabbix可以检查包含一个预先定义的字符串的HTML页面,看看其中是否存在某个字符串。它可以执行一个模拟的登录,并遵循一个模拟鼠标点击的路径。

Zabbix还支持HTTP和HTTPS的Web监控。在一个Web scenarios中,还会报错cookie,做到真实地模拟一次完整的访问。

一、普通web监控创建

1、Configuration->Hosts,选择主机,选择Web scenarios,如下图:

参数讲解:

◆ Name:唯一的场景名称,在zabbix2.2以后可以使用宏,

◆ Application:场景属于哪个应用(可以在application中创建好)

◆ New application:如果没有适合的应用可以填写在这里新建,

◆ Update interval (in sec):执行的时间间隔

◆ attempts:每个步骤在有问题的时候重试几次才认为有问题,

◆ Agent:模拟浏览器客户端,可以选择浏览器版本

◆ HTTP proxy:你可以指定一个HTTP代理,书写格式是:

http://[username[:password]@]proxy.mycompany.com[:port],默认使用1080端口,比如可以使用广东机房的代理去访问某个URL,那么获取到的QOS数据就是广东的了,

◆ Variables:定义Web scenarios中的变量宏,可以在URL、Post等参数中使用,使用格式如下:

针对宏:{macrol}=value1

针对变量:{username}=zbxuser

{password}=kj3h5kJ34bd

{hostid}=regex:hostid is ([0-9]+)

◆ Headers:在请求的时候添加的头部信息,

◆ Enabled:是否启用此监控,

2、增加steps,如下图:

◆ Name:唯一的步骤名次,从zabbix2.2以后支持宏;

◆ URL:需要检查的URL,支持http和https,GET参数可以直接写在URL中,比如:http://www.a.com?time=10;

◆ Post:Post请求中的post变量,例如id=2345&userid={user};

◆ Variables:和Web scenarios的类似,不同的是这里设置的变量,只在这个步骤生效,并且只在GET、POST参数中使用有效;

◆ Headers:和Web scenarios类似,这里添加会覆盖Web scenarios中的Headers;

◆ Follow redirects:标记复选框遵循HTTP重定向;

◆ Retrieve only headers:标记复选框只检索从HTTP响应头;

◆ Timeout:URL的超时时间;

◆ Required string:这里需要配置一个正则表达式,当获取到这个URL的返回内容时,zabbix会根据这个正则表达式在返回的HTML中寻找;

◆ Required status codes:设置期望的HTTP状态码,这里可以写多个,用逗号隔开;

3、展示

Monitoring->Latest data,选择需要展示的服务器,可以看到展示效果,如下图:

在Monitoring->web里面,能够看到图标结构的展示数据

上面是下载速度、下面是响应时间

4、配置Trigger

添加完web监控后再次打开主机列表,选择触发器,点击右上角的创建触发器,填写信息如下:

在添加完web 监控后会自动创建相应的Keys,但是要选择已经定义web的相应主机

在Expression中选择相应的表达式,这里是设置返回的状态码不等于变量 N 时触发报警,N的值在下面设置成200

表达式:如果最后一次获取到的response_code值不是200,则触发报警

{centos6.8:web.test.rspcode[web_tomcat,web_tomcat].last()}<>200

注意:这种监控方法有个弊端,就是被监控的web服务器如果停止,就不能正常返回状态码,不过如果服务停止,可以采用监控端口和进程的方法,如果端口和进程存在,返回的状态码就会发生改变,就适应当前场景

用户信息填写web代码_zabbix监控系列之监控项(8、web监控)相关推荐

  1. php api查询开发,PHP开发API接口(注册、登录、查询用户信息)的实例代码

    本节主要内容: php开发API接口的实现代码 一.PHP API接口的服务端部分 复制代码 代码示例: /** * PHP开发API接口 服务端 * edit: www.jbxue.com */ r ...

  2. 前端监控系列1| 字节的前端监控SDK是怎样设计的

    作者:彭莉,火山引擎 APM 研发工程师,2020年加入字节,负责前端监控 SDK 的开发维护.平台数据消费的探索和落地. 摘要 字节内部监控环境多样( Web 应用.小程序.Electron 应用. ...

  3. 用户信息填写web代码_基于web的自定义表单引擎

    所谓表单引擎 表单引擎,又可称之为表单流程.流程表单.工作流表单,是基于Web界面上可视化编辑的表单设计系统,可设置数据库的字段.属性,设置模块的配置.目前市面上的地带吗无代码表单引擎,可以为企业信息 ...

  4. 用户信息填写web代码_Web前端常见问题汇总

    1.get 和post的区别 1.1数据传输大小:get 传输数据大小限制在1KB,post传输数据大小没有严格限制 1.2缓存和安全:get请求某个url,数据追加到url中发送(http的head ...

  5. 运维监控系列(8)-Prometheus+Grafana监控常用微服务中间件Nacos、Seata、Rocketmq

    Nacos Nacos官方文档 Nacos支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态,目前支持prometheus.elastic search和influxdb. 1. ...

  6. python爬取微博用户信息(六)—— 完整代码

    本节为爬取微博用户信息的完整代码,以及项目结构. 感兴趣的小伙伴可以收藏哦! 另外,关于本代码的效果展示,以及教程,点击以下链接即可. python爬取微博用户信息(一)-- 效果展示 python爬 ...

  7. Dobbo微服务项目实战(详细介绍+案例源码) - 3.用户信息

    想出去旅游,想出去玩,想大吃大喝 0_o 系列文章目录 1. 项目介绍及环境配置 2. 短信验证码登录 3. 用户信息 4. MongoDB 5. 推荐好友列表/MongoDB集群/动态发布与查看 6 ...

  8. springboot+h5页面+微信公众号获取微信用户信息

    springboot项目,h5页面通过微信公众号获取微信用户信息 最近本人有一个项目需求,微信公众号里点击一个菜单进入一个商城购物系统. 对于在微信公众号还是小白的我来说难度有点大,但是做完后发现也就 ...

  9. 微信小程序python解析获取用户手机号_python获取微信小程序openid及用户信息

    填坑记录:1.个人微信公众订阅号是不能申请微信认证的.公众号的类型在注册时一旦选择就不能更改,微信公众号认证的功能除个人订阅号外,都可以申请认证,因而个人订阅号不能申请认证.这句话的意思就是个人订阅号 ...

  10. 安卓Android绘制一个信息填写页面,使用了三种事件监听方法

    先上效果图片: 第一种,匿名内部类 //设置提交按钮监听submitButton.setOnClickListener(new View.OnClickListener() {@Overridepub ...

最新文章

  1. 如何构建基于移动相机的AR系统
  2. 编程中的一个易错点:判断某个点是否超出棋盘边界
  3. dat文件读取_微信dat文件如何查看
  4. 【转】浮点数之间的比较
  5. c语言错误解析-变量声明
  6. kl散度度量分布_数据挖掘比赛技巧——确定数据同分布
  7. 对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是 ()
  8. CentOS7安装minio
  9. 对应猎豹网校的lua 视频教程 做的学习记录 前三课简单介绍1-3
  10. JavaScript 的函数式编程与面向对象编程区别在哪?
  11. 拖拽 开发 easyui php,Easyui-Builder
  12. dom4j解析XML文件(4)—实战
  13. Shell 中常用的if 语句总结
  14. 【记录一下】解决Dataset not found
  15. java实现屏幕自动截屏_使用Java实现静默屏幕截图
  16. 动态规划算法04-最长递增子序列问题
  17. t5810做虚拟服务器,戴尔Precision T5810工作站选用CPU的问题 | 小迪的生产力工具室...
  18. 2.1.6.6 漏洞利用-SSH安全防御
  19. Perl特殊变量(flw等翻译)
  20. mysql 字段类型 负数_MySQL字段类型详解

热门文章

  1. linux BufferedImage.createGraphics()卡住不动
  2. pycharm修改选中字体颜色
  3. Java基础--说集合框架
  4. Java进阶03 IO基础
  5. 支付宝玉伯:我心目中的优秀API
  6. db2 teradata mysql_DB2 DPF VS Teradata选型对比?
  7. C++控制台输出中文时乱码的解决方案
  8. MP(Multi-Link PPP)原理和实验
  9. PPPoE原理和实验
  10. mysql主从复制(原理以及配置)