zabbix监控日志

注意

让zabbix客户端支持主动式必须确保以下几点

  • agent配置文件ServerActive是要指向zabbix_server端的IP,并保证能够正常通讯
  • agent配置文件Hostname必须要和Server端添加主机时的主机名称保持一致,这样Server端接收到数据才能找到对应关系。
  • 修改了配置文件之后记得重启zabbix_agentd。
    1
    2
    3
    /etc/init.d/zabbix_agentd restart
    Stopping Zabbix Agent: [ OK ]
    Starting Zabbix Agent: [ OK ]

zabbix 用户对日志文件还有有可读权限,这里我们以监控Linux的登陆日志为例,授权zabbix用户读的权限

1
setfacl -m u:zabbix:r-- /var/log/secure

添加监控项

配置-主机-选择你要监控日志的主机的监控项-添加监控项(右上角)

  • 名称:自定义
  • 类型:Zabbix客户端(主动式)
  • 键值:log[/var/log/secure,,,,skip]

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

logtr[/path/to/some/filename_format,,,,,]

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

encoding-编码相关,留空即可

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

code-默认是all,也可以是skip,skip会跳过老数据

output-自定义格式化输出,默认输出regexp匹配的整行数据。转义字符’\0’表示regexp
匹配的数据,转义字符’\N’(N=1..9)表示regexp里第N个分组匹配到的数据。如果填其他字符串就会覆盖掉regexp匹配的数据。

如果仔细看可以发现,第一个参数不一样,logrt的第一个参数可以使用正则表达式。针对日志回滚用得,例如我们每天都切割nginx日志,日志名位www.a.com_2015-01-01.log、www.a.com_2015-01-02.log等等,使用log肯定不合适,如果文件名使用正则,那么新增的日志文件会立即加入监控。
备注:不管新日志、老日志,只要他们有变更,zabbix都会监控。

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

  • 信息类型:日志
  • 数据更新时间: 10
  • 历史数据保留时长: 90
  • 日志时间格式: pppppp:yyyyMMdd:hhmmss

查看最新数据

补充

如果日志的格式类似这样catalina-2016-03-03.out,文件名每天都不一样的话那么就要用到logtr这个键值了。使用正则匹配日志文件。比如这样,简单粗暴。也不用去匹配什么时间格式化了

1
logrt[/usr/local/tomcat/logs/catalina.*\.out,,,,skip]

参考

http://wangzan18.blog.51cto.com/8021085/1694597

http://qicheng0211.blog.51cto.com/3958621/1624155

坚持原创技术分享,您的支持将鼓励我继续创作!