有人能帮助我解决这个奇怪的问题吗?
我有一些系统日志服务器将消息转发到中央系统日志服务器 (rsyslogd 7.4.7)。在中央系统日志服务器中,我不想向已经加盖时间戳的消息添加时间戳,因此我创建了一个模板,该模板仅打印整个 %msg%,仅此而已。
$template t_my_log_output,"/var/syslog/cm.MY.%$YEAR%%$MONTH%%$DAY%-%msg:F,32:5%.log"
$template ProxiesTemplate2,"%msg%\n"
:rawmsg, contains, " MYAPP " -?t_my_log_output;ProxiesTemplate2
问题是 rsyslog 没有附加整个消息。它缺少前 %msg% 个字符:
41:52 2016-10-21 10:41:42 APP xxx.yyy.zzz.qqq myproc[14] [_getMsg]: msg
我进行了 tcpdump 只是为了确保两个日期/时间都正确:
11:41:52.311287 IP xxx.yyy.zzz.qqq.43438 > xxx.yyy.zzz.qqq.syslog: [|syslog]
E.....@.<...
.@.
[email protected] 11:41:52 2016-10-21 10:41:42 APP xxx.yyy.zzz.qqq myproc[14] [_getMsg]: msg
................
谢谢您的帮助
亚历克斯
答案1
%msg%
最终通过替换解决了这个问题%rawmsg%