阅读 156

zabbix日志监控

一般情况下,日志最先反映出应用当前的问题,在海量日志里面找到我们异常记录,例如监控系统日志、nginx、Apache、业务日志,然后记录下来,并且根据情况报警。

1、日志监控项介绍

最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,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>]

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

   ◆ encoding:编码相关,留空即可

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

   ◆ mode:默认是all,也可以是skip,skip会跳过老数据

   ◆ output:输出给zabbix server的数据。可以是\1、\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"。

 

2、监控原理及注意事项

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

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

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

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

   所有符合配置的文件,都会被监控。

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

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

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

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

 

示例:监控zabbix server日志

3、创建日志监控项

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

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

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

信息类型:日志

应用集:日志

查看最新数据

 

4、创建触发器

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

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

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

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

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


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐