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
}

おすすめ記事