解决rsyslog日志分发过滤问题

Posted l5623064

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决rsyslog日志分发过滤问题相关的知识,希望对你有一定的参考价值。

问题描述:

服务器B从远端接收来自服务器A的消息网关日志,按照配置要求,需要将这些日志按照消息标签分类写入不同的文件中。

例如有这样一条日志:

Sep 12 08:00:03 192.100.6.3 Monster-CMPP20MO[37518]: 20180912080002SMS0000999L00100000000cc515275,0,00,,,09120800018510260295,,,,xxxxxxxxxxx,,,1,xxxxxxxxxx,,,,,,,,,,,,0,6,DM302J,

我们希望可以按照“Monster-CMPP20MO”这样的消息标签来写入到monster-cmppmo.log文件中。

但是,按照以前的配置无法实现日志过滤的效果,服务器B会将接收到的所有日志全部写到每一个文件中。根本没有做分类处理。

解决办法:

首先加入模板

$template TraditionalFormat, "%timegenerated% %HOSTNAME% %syslogtag%%msg:::drop-last-lf%
"

ps:drop-last-lf 表示写入所有日志

添加完模板后,需要配置一下将模板利用起来

if ($syslogtag startswith Monster-CMPP20MT)
then {
*.=info  /xxx/xxx/monster-cmppmt.log;TraditionalFormat
}
if ($syslogtag startswith Monster-MM7MT)
then {
*.=info  /xxx/xxx/monster-mm7mt.log;TraditionalFormat
}
......

重启rsyslog,解决。

以上是关于解决rsyslog日志分发过滤问题的主要内容,如果未能解决你的问题,请参考以下文章

系统日志服务rsyslog

使用 rsyslog 的 Python 日志记录级别

rsyslog日志基础介绍

rsyslog

Rsyslog系统日志服务

Rsyslog系统日志服务