今回は、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 サーバソフトウェアです。Red Hat 6.x、CentOS 6.x、Oracle Linux 6.x などでは、
デフォルトで rsyslog が使用されています。
具体的には、
rsyslog のログ出力フォーマットの設定を変更して、
Syslog メッセージ自体もつタイムスタンプ(ログの生成時間)ではなく、
Syslog サーバ側での 受信時間 を出力するようにします。
rsyslog の設定を、
UTC のまま syslog に時刻出力してしまう設定である %TIMESTAMP% から、
%timeenerated% というパラメータに変更します。

以上、ESXi の Syslog を JST に合わせる方法でした。
具体的な設定方法についても、紹介したいと思います。
つづく・・・
ESXi の Syslog を日本時間(JST)出力してみる。
Comments