设为首页 收藏本站
查看: 876|回复: 0

[经验分享] zabbix之Web网络监控

[复制链接]

尚未签到

发表于 2019-1-19 08:42:45 | 显示全部楼层 |阅读模式
  一、web监控概述
  在这一节,我们会介绍如何使用zabbix进行URL监控,即专门针对URL监控,比如php应用,只要我们能curl到这个ok.php,就认为这个服务是正常的,zabbix的Web monitoring也具有类似的功能。

  如果需要使用这个功能,需要编译的时候加入libcurl的支持。
  在开始之前,先介绍zabbix的一个概念——“Web scenarios”,即网络场景,就是用户为了完成某个目标,在网络上进行的一系列操作的过程。比方说,要登录微博,就是一个“网络场景”,在其中的每一个步骤操作——打开页面、发起登录请求、登录成功或者失败,在zabbix中统称为“步骤”。定义一个Web scenarios,我们需要定义其中什么步骤,以及按照什么顺序执行,然后zabbix会定期按照设置的顺序来执行这些“步骤”。
  在zabbix2.2中,Web scenarios和Items、Triggers,是依附在主机或者模版上面的,这意味着Web等场景也可以在模板上创建并且可以应用在多个主机上。
  在任何网络场景中收集下列信息:
  1、所有步骤的平均下载速度
  2、失败的步骤数
  3、最后一次出错信息
  在所有步骤中收集以下信息:
  1、平均下载速度
  2、响应时间
  3、响应代码
  Zabbix可以检查包含一个预先定义的字符串的HTML页面,看看其中是否存在某个字符串。它可以执行一个模拟的登录,并遵循一个模拟鼠标点击的路径。
  Zabbix还支持HTTP和HTTPS的Web监控。在一个Web scenarios中,还会报错cookie,做到真实地模拟一次完整的访问。
  二、普通web监控创建
  1、点击: Configuration → Hosts (or Templates)
  2、在host/template列中点击Web
  3、在右上角点击创建scenario

  你可以在其中配置以下参数


  参数讲解:
  ◆ Name:唯一的场景名次,在zabbix2.2以后可以使用宏,
  ◆ Application:场景属于哪个应用,
  ◆ New application:如果没有适合的应用可以填写在这里新建,
  ◆ Update interval (in sec):执行的时间间隔,

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

  ◆ Agent:模拟浏览器客户端,就是nginx日志中的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:是否启用此监控,

  4、下面我们查看Step选项

  配置步骤:

  ◆ 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状态码,这里可以写多个。

  5、下面让我们看看监测的结果,可以在Latest Data里面看到如下监测信息,应该都不难懂,

  在Dashboard中的web里面可以看到图标结构的监测数据

  上面是下载速度,下面是响应时间
  我们还可以针对监测的数据设定报警,并发送邮件,这里不再介绍。
  三、Web认证监控
  上面的监控是比较简单的监控,也是用的比较多的监控,但是有的时候我们访问的页面是需要登录认真的,就比如我们的监控nagios,他是有apache或者nginx提供的web服务,本身nagios没有登录验证功能,这就需要web服务设置验证功能,如果有认证需求,我们还是按照上面的配置两步就会出现问题,比如我做一个nagios认证页面的监控,平时访问网页的时候会跳出如下的认真框。

  如果我们还是按照上面的两步来做的话就会出现如下的问题

  如果我们特意把返回的Required Status codes改为401那也行,但是就没有什么意义了,其实添加认证也很简单,如下

  我们只需在前两步的基础上面在这里添加认证登录的账号密码即可。
  ◆ HTTP authentication:支持三种认证模式,默认是None,还有Basic,就是我们上图,还有NTLM(Windows NT LAN Manager)。
  下面关于几个加密认证的不多介绍,大家可以查看官方文档。
  四、WEB场景监控
  默认我们人登录网站的过程大约有这么几步,打开页面-->登录-->登录验证-->退出。就如我们有些业务页面不是单单只监控一个首页是否正常,还有监控是否可以登录,登录认证等等比较复杂的信息,这些是上面简单配置无法实现的,我们需要通过下面的例子来模拟出来,我监控的是我的zabbix网站,因为zabbix本身是有用户认证功能的。
  检测流程
  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即表示退出成功。
  我们可以使用item key来获取每个step的速度以及响应时间或者说最新的一个错误消息,大家自己去研究吧,不难。
  1、创建Web scenarios

  在这里我们填写好登录zabbix的用户名密码,设定为变量。

  2、打开首页

  3、登录

  4、登录验证

  5、退出登录

  6、全部填写完成之后记得保存

  7、查看结果
monitorning->web->筛选出你的主机->查看“zabbix性能监控”,结果如下图
各个阶段的响应时间、速度、返回状态码以及总的响应时间

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

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

  好了,web监控的实例就完成了。
  参考文档:https://www.zabbix.com/documentation/2.4/manual/web_monitoring?s[]=web




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-665008-1-1.html 上篇帖子: 构建报警平台为减轻zabbix负载压力大及智能收敛信息 下篇帖子: zabbix配置报错
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表