首页 > 代码库 > Zabbix日志监控

Zabbix日志监控

zabbbix可以用于支持/不支持翻转的日志文件的集中监控与分析。

当一个日志文件包含特定的字符或者字符模式时,zabbix向用户发送报警信息。

要进行日志文件监控,以下是必须的

zabbix客户端代理(Zabbix agent)
设置日志文件监控的监控项
被监控日志文件的大小取决于大文件支持。

配置

确认客户端代理参数

确保在客户端代理文件中:

‘Hostname’这个参数的值跟前端定义的主机名是一样的
‘ServerActive’ 这个参数值中的主机必须指定为主动检测
监控项配置

创建一个日志文件监控的监控项:

164831353.png

要进行日志监控,你必须输入以下内容:

类型(type) 这里选择 Zabbix agent (active)
关键字(Key) 设置为下面两个之一
log[文件名格式:日志文件路径,,,,]
or
logrt[文件名个格式:日志文件路径,,,,]
举个例子:
log[/var/log/syslog]
log[/var/log/syslog,error]
logrt[”/home/user/filelog_.*_[0-9]{1,3}”,”pattern_to_match”,”UTF-8”,100].
最后一个将从文件“filelog_abc_1”或者“filelog__001”中收集信息.
要获得更多细节信息,参考log 和 logrt 全部信息,在 支持的客户端代理监控项关键字这一章.
确保zabbix用户对该文件有读权限否则监控项状态将被设置为’unsupported’.
如果正则表达式存在,zabbix客户端代理将用它来过滤整个日志文件。
信息类型(Type of information) 这里选择Log。
检查更新时间间隔,以秒计(Update interval) (in sec) 这个参数定义了zabbix客户度代理多久检查一次日志文件中的变化。将它设置为1秒确保你尽可能快的获得日志文件改变的新记录。
登录时间格式
(Log time format 支持的占位符:
* y: 年 (0001-9999)
* M: 月 (01-12)
* d: 日 (01-31)
* h: 小时 (00-23)
* m: 分钟 (00-59)
* s: 秒 (00-59)
如果留空时间戳不会被解析
举个例子,分析下面一行来自zabbix客户端代理的日志文件:
” 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211).”
以六个字符开始,作为PID,后面更这日期,时间和其他部分。
这一行的日志文件时间格式将是 “pppppp:yyyyMMdd:hhmmss”.
注意: “p” 和 ”:” 这两个字符仅仅是占位符,它可以是任何字符除“yMdhms”.

重要提醒
服务器端和客户端代理在两次监控之间记录被监控文件大小和最新修改时间(logrt支持)。
客户端代理从它之前停止监控的地方开始监控日志。
已经分析的字节数(大小计数器)和最新修改时间(时间计数器)被存储在zabbix数据库中并发送到客户端代理以确保从该点开始读取日志文件。
一旦日志文件大小小于客户端代理的日志文件计数器中的记录,计数器会被清零。客户端代理从头读取日志文件,并且考虑重设计数器。
在给定的目录中,匹配参数filename格式的所有文件,在zabbix 客户端代理试图从日志文件中获得访问时间时都会被分析。 (logrt支持).
如果目录下面有几个文件明都匹配从参数中指定的并且拥有相同的最后修改时间,那么客户端代理将分析按字典排序排在前面的那个。
zabbix客户端代理(Zabbix agent)在每个更新时间间隔(Update interval seconds)分析一次一个日志文件中的新增记录。
客户端代理(Zabbix agent)一秒内发送的日志条目不会超过maxlines这个参数指定的值。这个限制预防了网络和CPU资源过载以及在客户端代理配置文件中参数MaxLinesPerSecond提供的默认值。
特别注意路径分隔符”\” :如果文件格式是 “file\.log”, 那么路径里面不能有目录存在, 因为不能明确定义 ”.” 被转义了或者是文件名的第一个字符。
logrt 的正则表达式只支持文件名,目录的正则匹配还不支持。

 

说明:我在做日志监控的时候最新数据里一直都得不到数据找人帮忙排查半天也没看出哪的错误,总是纠结是不是日志格式的错误,日志中也无报错 仔细阅读文章后发现 zabbix客户端配置文件中 Hostname(主机名) ServerActive(zabbix服务端servername/ip) 的这两个参数 一般ServerActive这个参数是默认注释掉的  如果没有指定最新数据里是得不到数据的


Zabbix日志监控