通过zabbi做web监控不仅仅可以监控到站点的响应时间,还可以根据站点返回的状态码,或者响应时间做报警
1、对需要监控的主机添加web监控
在configuration—hosts 中打开主机列表,选择需要添加监控主机的web,创建application
选择web项,再单击右上角的Create web scenario
在Name中输入监控的名称,Agent是选择测试站点的浏览器类型
在Steps选项卡添加测试步骤
Name是测试步骤的名称,URL监控站点的真实url,Required status colder是监控时要求页面返回的状态码,通常设置200
添加完成后可以在monitor—web 看到刚才添加的监控
2、报警设置
添加完web监控后再次打开configuration—hosts主机列表,选择Triggers
点击 右上角的create triggers
在Name中输入Triggers的名称
点击 Add
点击Item 上的select
在添加完web 监控后回自动创建相应的Keys,在添加完web 监控后回自动创建相应的Keys,但是要选择已经定义web的相应主机
在Function中 选择相应的表达式,这里是设置返回的状态码不等于变量 N 时触发报警,N的值在下面设置成200
表达式:如果最近连续4次取到的response_code值不是200,则触发报警
{192.168.3.86:web.test.rspcode[3.86_http_status,3.86_http_status].last(0)}<>200 and {192.168.3.86:web.test.rspcode[3.86_http_status,3.86_http_status].last(1)}<>200 and {192.168.3.86:web.test.rspcode[3.86_http_status,3.86_http_status].last(2)}<>200 and {192.168.3.86:web.test.rspcode[3.86_http_status,3.86_http_status].last(3)}<>200
测试,将目标机器3.86上的index.html改名为index,即可看到触发的报警,当报警后,我们可以对目标机器进行操作,报警、触发重新启动脚本等,详见:
Zabbix3.0实现自动触发zabbix-agent端shell脚本任务
备注:
一旦我们创建好web监控之后,我们便可以查看web站点的性能状况。zabbix一共给我们提供了6个item key,实际上就三个,分别针对单个阶段和整个阶段,三个item分别为web.test.in、web.test.fail、web.test.error,下面看看它的具体用法。
web方案监控项当web监控项创建好之后,下面的key会被自动添加好
key描述
web.test.in[Scenario,,bps]整个阶段中的下载速度,单位字节/秒
类型: Numeric(float)
web.test.fail[Scenario]整个检测阶段,失败的阶段个数,如果所有的阶段(step)都成功,那么返回0
类型: Numeric(unsigned)
web.test.error[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方案阶段监控项
key描述
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)名称
web监控项数据保留时间web监控历史数据数据保存30天,趋势数据保存90天,老数据将被清除