Vmware ESXi5xは無償で利用できますが、再起動の度にログがクリアーになってしまう仕様のため何かあった際トレースすることができません。
そこで今回はESXiのログを外部のSyslogサーバーに転送してログを管理する方法をご紹介します。

まず、外部にSyslogサーバーを立てていることが条件となりますLinuxの標準のSyslogdでもいいですが管理が楽なsyslog-ng fluentd等を強くおすすめします。今回はSyslogサーバーの構築は割愛させていただきあくまでESXiの設定のみ紹介します。

Vmware公式のドキュメントで参考になるのはこちら

ESXiのFirewallでTCP UDPの514 TCPの1514を開放する

ESXiのFirewallの設定・確認

SSHでESXiにログイン後まずはFirewallの設定を確認します。

syslog                 false

※この状態はsyslogのポートがFirewallで無効になっていることを意味します。

FireWallでポート開放

再度Firewallの状態を確認

syslog                 true

※このようにtrueとなっていれば開放が完了しています。

syslogサーバーに転送する設定

次にSyslogサーバーにログを転送する設定を行います。まずは現状の設定を確認します。

   Default Rotation Size: 1024
   Default Rotations: 8
   Log Output: /scratch/log
   Log To Unique Subdirectory: false
   Remote Host: <none>

デフォルトでは転送設定がされていません。

転送設定を有効

※こちらの方法ではUDP514番で転送されるようになります。ポート番号を指定したい場合はIPアドレスの後に:ポート番号を指定します。
例;tcp://IPアドレス:1514

再度設定を確認するとSyslogサーバーのIPアドレスが設定されたことが確認できます。

   Default Rotation Size: 1024
   Default Rotations: 8
   Log Output: /scratch/log
   Log To Unique Subdirectory: false
   Remote Host: udp://SyslogサーバーのIPアドレス

サービスの再起動

設定が完了したらサービスの再起動をします。

無事にSYSLOGサーバーにESXIのログが転送されているはずです。かなりのログがリアルタイムに蓄積されます。

勿論コンソールにログインしたユーザーの情報なども出力されるためセキュリティ対策にも有効です。通常の無料版パッケージですとSyslogサーバーへの転送は有償版のみ可能というのが多いですがESXiはCentosベースなだけあり色々とカスタムが可能なところがいいですね。