Syslogサーバーでログを保存管理していると、Syslogサーバーが記録する受信時刻と、実際にメッセージ中に含まれるタイムスタンプがズレていることはありませんか?
これは、ネットワークトラフィックが混雑していることによる遅延、あるいはSyslogサーバー自体の処理遅延が原因です。ログ検知アラートを設定していても、通知が遅れてしまっては意味がありませんね。
WinSyslogでは受信時刻と、メッセージ中に含まれるタイムスタンプの両方を出力することができるので、処理遅延がないか?判断しやすくなります。
今回は、WinSyslogで受信時刻とSyslogメッセージ中に含まれるタイムスタンプの両方をファイルに出力する手順を紹介したいと思います。
サービス>Syslogサーバー
受信時の処理設定で、以下のオプションを有効にします。
☑RFC3164の構文解析を有効にする
☑オリジナルのメッセージ・タイムスタンプを使用(RFC3164)
Actions>ファイルログ
このアクションは、受信したログをテキストファイルに保存するアクションですが、デフォルトのファイル出力形式はAdisconフォーマットとなっています。
Adisconフォーマットで出力するプロパティのうち、日付と時間(デバイスのTimestamp)は、送信機器の「報告時刻」(%timereported%)を表しており、上記オプションを有効にすることで、メッセージ中に含まれるタイムスタンプを切り出して出力します。
ちなみに上位にある「日付と時刻」は「作成時刻」(%timegenerated%)で、WinSyslogがSyslogを 受信した時刻になります。
なお、カスタムフォーマットで出力する場合は、
作成時刻(受信時刻):%timegenerated:::localtime%,
%timereported:::localtime%
のように入力することで、それぞれUTCタイムではなく、ローカルタイムでの出力となります。
WinSyslogはマルチスレッドをサポートしておりますので、HWスペックを上げることで、処理能力はUp⬆します!Emailアラート等、処理遅延でお困りの方は、WinSyslogをご検討ください。