问题:
在将应用程序日志通过rsyslog服务推送到远程日志服务器上时,在几小时之后发现磁盘大量消耗,并发现/var/log/messages 文件超过10G。会什么会这样呢?
配置如下:
注意最后两行的发送规则:
programname == '${APP_NAME}' then @@XXX:PORT;logline_${APP_NAME}
if \$programname == '${APP_NAME}' then stop
实验发现if \$programname == '${APP_NAME}' then stop 他会不停的将access_log.log文件内容写入到/var/log/messages(centos),导致系统日志文件不停增长。
解决办法:
将最后一条规则修改:
将if \$programname == '${APP_NAME}' then stop
修改为:
if \$programname == '${APP_NAME}' then ~ (注意“~”中文字符)
在rsyslog中"~" 表示将匹配到的项目字符丢弃,不会被再次记录到系统日志文件中。
配置修改后需重启rsyslog服务。