zabbix日志监控

通常状况下,日志最早反映出应用当前的问题,在海量日志里面找到咱们异常记录,例如监控系统日志、nginx、Apache、业务日志,而后记录下来,而且根据状况报警。 nginx

一、日志监控项介绍 正则表达式

最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。 数据库

在配置Item的时候,Type选择Zabbix agent (active),这里主要须要配置的是Key。下面是监控日志的两种key——log和logtr。 网络

log[/path/to/some/file,<regexp>,<encoding>,<maxlines>,<mode>,<output>] 编码

logtr[/path/to/some/filename_format,<regexp>,<encoding>,<maxlines>,<mode>,<output>] spa

◆ regexp:要匹配内容的正则表达式,或者直接写你要检索的内容也能够,例如我想检索带ERROR关键词的记录 日志

◆ encoding:编码相关,留空便可 regexp

◆ maxlines:一次性最多提交多少行,这个参数覆盖配置文件zabbxi_agentd.conf中的'MaxLinesPerSecond',咱们也能够留空 orm

◆ mode:默认是all,也能够是skip,skip会跳过老数据 server

◆ output:输出给zabbix server的数据。能够是\一、\2一直\9,\1表示第一个正则表达式匹配出得内容,\2表示第二个正则表达式匹配错的内容。

若是仔细看能够发现,第一个参数不同,logrt的第一个参数可使用正则表达式。针对日志回滚用得,例如咱们天天都切割nginx日志,日志名为www.a.com_2015-01-01.log、www.a.com_2015-01-02.log等等,使用log确定不合适,若是文件名使用正则,那么新增的日志文件会当即加入监控。

备注:无论新日志、老日志,只要他们有变动,zabbix都会监控。

只要配置了<regexp>,Zabbix会根据<regexp>的正则表达式来匹配日志中的内容。注意,必定要保证Zabbix用户对日志文件有可读权限,不然这个Item的状态会变成"unsupported"。

 

二、监控原理及注意事项

Zabbix Server和Zabbix Agent会追踪日志文件的大小和最后修改时间,而且分别记录在字节计数器和最新的时间计数器中。

Agent会从上次读取日志的地方开始读取日志。

字节计数器和最新时间计数器的数据会被记录在Zabbix数据库,而且发送给Agent,这样可以保证Agent从上次中止的地方开始读取日志。

当日志文件大小小于字节计数器中的数字时,字节计数器会变为0,从头开始读取文件。

全部符合配置的文件,都会被监控。

一个目录下的多个文件若是修改时间相同,会按照字母顺序来读取。

到每一个Update interval的时间时,Agent会检查一次目录下的文件。

Zabbix Agent每秒发送日志量,有一个日志行数上限,防止网络和CPU负载太高,这个数字在zabbix_agentd.conf中的MaxLinePerSecond。

在logtr中,正则表达式只对文件名有效,对文件目录无效。

 

示例:监控zabbix server日志

三、建立日志监控项

配置——>主机,找到zabbix server,监控项——>建立监控项

类型:必须选择zabbix客户端(主动式),由于数据是zabbix被监控的主动提交给server

键值:自定义,参数为日志文件的路径等

信息类型:日志

应用集:日志

查看最新数据

 

四、建立触发器

例如当重启服务的时候进行报警,原理是经过过滤关键字进行报警

配置——>主机,找到zabbix server,触发器——>建立触发器

过滤关键字添加生成表达式

设置报警严重性级别为"严重"

日志监控至此完成,接下来就是触发报警了

相关文章
相关标签/搜索