zabbix监控日志关键字和日志文件

日志监控的功能

Zabbix-Agent支持对日志文件的监控,可以对日志的关键字进行监控,然后告警。日志监控支持普通的日志文件,也支持日志轮询、切割的文件。当日志中出现特殊的字符串(列如,警告、报错等字符串)时,可以发送通知给用户。为了使日志监控能够正常使用,必须满足以下条件:

  1. Zabbix-Agent必须运行,且工作方式为主动模式
  2. 日志的Item必须设置,必须指定文件名
  3. Zabbix-Agent有读取日志权限,如日志位于/home/用户名/文件中,则会因为权限的问题而导致无法读取到文件


注意:zabbix日志监控必须工作于主动模式下,在web前端配置的主机名(宏为{HOST.HOST})必须和Zabbix-Agent端zabbix_agentd.conf中的Hostname值是一致的,并且这个Hostname值具有唯一性:否则,在主动模式下是无法正常采集到数据的。

日志监控的监控指标

log[/path/to/file/file_name,,,,,,,]

logrt[/path/to/file/reqexp_describing_filename_pattern,,,,,,,]

log.count[/path/to/file/file_name, ,,,,,]

logrt.count[/path/to/file/reqexp_describing_filename_pattern, ,,,,,]

参数

含义

file_name

日志文件所在的路径或绝对路径文件名

regexp

匹配的正则表达式

encoding

在Linuxunix系统下默认编码为UTF-8,在windows系统下默认编码为ANSI

maxlines

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

mode

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

skip表示跳过已经存在的日志数据,只有新的日志才会进行匹配

output

表示匹配输出的正则表达式,1~9表示返回匹配的第几个字符串,表示返回匹配的全部字符串。Zabbix3.2版本以后支持

maxdelay

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

options

日志轮询、切割的方式。从zabbix4.0版本开始支持
rotate,日志轮询、切割,默认值
copytruncate,先拷贝文件,然后清空日志的轮询方式。请注意:copytruncate不能与maxdelay一起使用,如使用此参数,maxdelay必须为0或未指定

日志监控ltem的配置

添加一个日志监控Item
zabbix监控日志关键字和日志文件_第1张图片
 

日志监控的权限问题

如果zabbix用户对日志没有读取权限,则会提示权限拒绝导致数据获取失败(将zabbix_agentd进程开启调试模式,就可以看到读取日志权限被拒绝)。来查看这个文件的权限,由于普通用户并没有读取权限,所以zabbix用户也无法读取到数据。


在这里,为了演示如何解决这个问题而改变文件的权限,使用如下命令:

[root@localhost log]# chown zabbix.root /var/log/secure

在最新数据中查看自定义log的Iten,可以看到所有获取到的数据
zabbix监控日志关键字和日志文件_第2张图片


配置触发器

zabbix监控日志关键字和日志文件_第3张图片

测试功能 

将报警信息发送到企业微信群

zabbix监控日志关键字和日志文件_第4张图片

 


通过docker安装的zabbix_agent自定义监控项 

https://blog.csdn.net/wszll_Alex/article/details/77001686

你可能感兴趣的:(Liunx)