zabbix 5.0 使用内置监控项实现日志监控告警

zabbix 5.0 监控日志

除了灵活的使用自定义监控项的方式,这里使用zabbix自带的日志监控。本文使用的是zabbix-5.0版本

使用条件

项目要求
zabbix_agent配置主动式参数
时间同步zabbix_server和zabbix_agent
监控项类型zabbix客户端(主动式)
被监控日志文件zabbix用户需要可读权限

注意点:

其中,zabbix_agent.conf内关于zabbix客户端(主动式)的配置有以下2个

  1. ServerActive=192.168.1.101 #填写zabbix_server的地址
  2. Hostname=Zabbix server #填写本机主机名,要求一套监控系统内唯一,且要和web端配置的主机名一项保持一致。建议填写zabbix_agent的ip地址

日志文件的权限问题,可以用这条测试

sudo -u zabbix cat /usr/local/nginx/logs/access.log

监控项说明

内置的监控项

log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]
日志文件监控。返回日志,是一条记录一行日志内容
log.count[file,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]
监控日志文件行数统计。返回整数
logrt[file_regexp,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]	
日志文件监控与轮转服务。返回日志
logrt.count[file_regexp,<regexp>,<encoding>,<maxproclines>,<mode>,<maxdelay>,<options>]	
日志文件监视中匹配行的计数与日志轮换支持。 返回整型

参数说明

  1. file或file_regexp

日志文件所在的路径或者绝对路径名,后者可以使用正则匹配分割日志,比如/usr/local/nginx/logs/access.log*

  1. regexp

匹配正则表达式,可以使用关键词,比如ERROR

  1. encoding

在Linux/unix系统下默认编码为UTF-8,在Windows系统下默认编码为ANSI

  1. maxlines

每次给zabbix-server或者zabbix-Proxy发送的日志的最大行数,此参数会高于zabbix-agent.conf中的MaxLinesPerSecond参数值,通过此参数,可以控制一次发送的日志的数据条数,如果发送次数过多,可能会对zabbix-agnet的负载和I/O有很大的影响

  1. mode
  • all

为默认参数,表示匹配所有的日志,包括以前存的日志也会进行匹配

  • skip

表示跳过已存在的日志数据,只有新的日志才会进行匹配,一般使用此项

  1. output

表示匹配输出的正则表达式,\1~\9表示返回的匹配的第几个字符串,\0表示返回匹配的全部字符串,全部输出为默认值

  1. maxdelay

以秒为单位的最大延迟,用于忽略老的日志数据,及时获取当前的日志数据。(4.0+)当处理日志过多,在更新周期内达到maxlines的发送上限,但还有日志未发送时,会导致大量堆积,在严重的情况下,会造成日志处理速度跟不上,使用此参数忽略过期的日志发送0是默认值,永远不会忽略日志文件行输入可以是浮点数(float)>0.0,忽略较旧的行,以获得在maxdelay秒内分析最新行,会丢弃在规定时间内的无法发送的数据

  1. options

日志轮询、切割方式(4.0+)rotate,日志轮询、切割,默认值copytruncate,先拷贝文件,然后清空日志的轮询方式,copytruncate不能与maxdelay一起使用,如使用此参数,maxdelay必须为0或者未指定[size=12.0000pt]

使用实例

新建监控项

image

logrt[/tmp/error.log,"error",,,,skip,,]
# 表示监控的日志文件为/tmp/error.log,正则匹配关键词error,模式选择跳过旧日志,不使用的其他参数需要留空

查看最新数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gtNVHRjy-1624503689926)(https://files.catbox.moe/glwzzi.png)]
通过echo模拟日志写入,之后根据【更新间隔】时间的不同,可以在【监控】–【最新数据】内看到模拟的报错信息

新建触发器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3Rhyff5-1624503689927)(https://files.catbox.moe/a10i1i.png)]

{192.168.1.100:logrt[/tmp/error.log,"error",,,skip,,,].str(error)}=1
and
{192.168.1.100:logrt[/tmp/error.log,"error",,,skip,,,].nodata(60s)}=0
# 实测这样的表达式可以实现,日志内出现error关键词即告警,在60秒内未收到新的error信息视为故障恢复

写在最后

zabbix作为开源的监控系统,社区和官方文档还是相对丰富的,很多问题都可以通过查官方文档来解决。附上zabbix常用链接

  1. zabbix 5.0用户手册

  2. zabbix 5.0触发器函数

  3. zabbix 脚本分享

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值