今回は、ESXi と Syslogサーバ(rsyslog)とで
ログ出力時間をJSTに合わせる方法を説明します。
ESXiでSyslogサーバにログ転送した場合、
ESXi側が協定世界時(UTC)で、Syslogサーバ側が日本標準時(JST)設定だと、
Syslogサーバ側のログファイルに2種類のタイムスタンプをもつログが出力されてしまいます。
たとえば現在、日本時間で19:00だったとします。
この時、JST設定のサーバと、ESXiとで、
Syslogサーバのログファイルのタイムスタンプにズレが発生します。
- ESXi から受信したログは、UTCで 10:00 と出力される。
- ESXi 以外から受信したログファイルは、19:00と出力される。
(地域設定が日本としてある、Syslogサーバ自身のログや、Linuxサーバなど)
こういった場合、ログ受信するSyslogサーバが rsyslog であれば、
ログのタイムスタンプをすべて日本時間(JST)に合わせることが可能です。
rsyslog は、だいぶ前からUNIX/Linuxで使われているSyslogの後継とされる
Syslogサーバソフトウェアです。Redhat6.x 、OEL6.x 、CentOS6.x などでは、
デフォルトでrsyslogが使用されています。
具体的には、
rsyslogのログ出力フォーマットの設定を変更して、
Syslogメッセージ自体もつタイムスタンプ(ログの生成時間)ではなく、
Syslogサーバ側での 受信時間 を出力するようにします。
rsyslgoの設定を、
UTCのまま syslog に時刻出力してしまう設定である %TIMESTAMP% から、
%timeenerated% というパラメータに変更します。
以上、ESXi のSyslogをJSTに合わせる方法でした。
具体的な設定方法についても、紹介したいと思います。