如何用本地时间戳替换 rsyslog 服务器上收到的消息的时间戳?

如何用本地时间戳替换 rsyslog 服务器上收到的消息的时间戳?

我有一个将其日志转发到 rsyslog 服务器的路由器,我想配置 rsyslog 服务器以将时间戳替换为本地时间戳。消息格式如下所示:

Jan  1 00:00:47 192.168.1.254 kernel: br0: port 1(eth0) entered forwarding state

对于来自该路由器 (192.168.1.254) 的所有消息执行此操作的最佳方法是什么?

答案1

处理此问题的最简单方法是编写一个模板,该模板是您已使用的模板的副本,并将属性更改timestamp为该timegenerated属性。例如,假设您正在写入文件并使用默认值RSYSLOG_TraditionalFileFormat 模板,然后您可以创建myFileFormat、测试 IP 地址并输入您的匹配规则。在旧格式中,规则使用日志文件名,后跟;模板名称:

template(name="myFileFormat" type="string" string="%timegenerated% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp% %msg:::drop-last-lf%\n") 
if $fromhost-ip == "192.168.1.254" then {
   *.* /my/logfile;myFileFormat
   stop
}

相关内容