Syslog

如何用本地時間戳替換 rsyslog 伺服器上收到的消息的時間戳?

  • May 27, 2020

我有一個將其日誌轉發到 rsyslog 伺服器的路由器,我想配置 rsyslog 伺服器以用本地時間戳替換時間戳。消息格式如下所示:

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

對此路由器(192.168.1.254)的所有消息執行此操作的最佳方法是什麼?

處理此問題的最簡單方法是編寫一個模板,該模板是您已在使用的模板的副本,並將屬性更改為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
}

引用自:https://unix.stackexchange.com/questions/589225