我有一个将其日志转发到 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
}