背景:某公司基于 Nginx 服务器搭建的网站,需要监控页面响应耗时的数据,因此该公司搭建了zabbix开源监控系统,当监控到页面响应时间超过3000ms阈值时,就进行告警通知。本文将通过日志关键字的监控来实现对页面响应时间感知,示例Zabbix版本:5.0.9。
监控日志的两种key(log和logtr),本文只针对log 进行介绍。
log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>]
名称: 自定义。
类型: Zabbix客户端(主动式)。(日志类型监控必须使用主动式)
键值: log[/itops/nginx/logs/nginx.log,页面响应耗时:,UTF-8,,skip,]
键值含义:
/itops/nginx/logs/nginx.log # 日志绝对路径
页面响应耗时: # 正则表达式,匹配日志中包含“页面响应耗时:”行。
UTF-8 # 日志文件编码
skip # 跳过旧数据的处理 (仅影响新创建的监控项)。
信息类型: 选择“日志”。
表达式:
{192.168.3.28:log[/itops/nginx/logs/nginx.log,页面响应耗时:,UTF-8,,skip,].iregexp("(?<=页面响应耗时:)([3-9]\d{3,}|[1-9]\d{4,})")}=1
参数含义:
iregexp("(?<=页面响应耗时:)([3-9]\d{3,}|[1-9]\d{4,})") # 当监测到符合正则表达式条件(页面响应耗时大于3000)时,触发器将设置为触发。
测试方法:
echo [24-7-9 14:31:29:100 CST] 页面响应耗时:3000 >> nginx.log
成功触发告警
测试完成。
错误信息