注意
让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都会监控。
只要配置了
- 信息类型:日志
- 数据更新时间: 10
- 历史数据保留时长: 90
- 日志时间格式: pppppp:yyyyMMdd:hhmmss
查看最新数据
补充
如果日志的格式类似这样catalina-2016-03-03.out,文件名每天都不一样的话那么就要用到logtr这个键值了。使用正则匹配日志文件。比如这样,简单粗暴。也不用去匹配什么时间格式化了
1 | logrt[/usr/local/tomcat/logs/catalina.*\.out,,,,skip] |