Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3805

ESXi 5.x で Syslog転送。rsyslogで受信。

$
0
0

ESXi からSyslogを飛ばしてみます。
今回は、rsyslogサーバ(Oracle Linux 6.2) に対して、UDPでSyslogを飛ばしてみます。

 

参考

ESXi 5.0におけるsyslogの構成
http://kb.vmware.com/kb/2014699


Syslogサーバは、こんな感じです。
デフォルトで入っているrsyslogを使用しています。


[root@oel62 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.2
[root@oel62 ~]# rsyslogd -v
rsyslogd 4.6.2, compiled with:
        FEATURE_REGEXP:                         Yes
        FEATURE_LARGEFILE:                      No
        FEATURE_NETZIP (message compression):   Yes
        GSSAPI Kerberos 5 support:              Yes
        FEATURE_DEBUG (debug build, slow code): No
        Atomic operations supported:            Yes
        Runtime Instrumentation (slow code):    No

See http://www.rsyslog.com for more information.

 

ちなみに、今回は Syslogサーバ側のファイアウォールはすべて無効にしてあります。

[root@oel62 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

 


ESXi 5.0 からSyslogを飛ばします。(ESXi 5.1 でもやり方は同じです。)

~ # vmware -v
VMware ESXi 5.0.0 build-623860

 

 

1. まず、Syslogサーバ側の受信設定をします。


設定ファイルを編集します。
リモートのサーバからのUDPの514番ポートにむけたSyslogを受信できるように、
設定ファイル(/etc/rsyslog.conf)から、下記のコメントを外します。

[root@oel62 ~]# vi /etc/rsyslog.conf

 

# Provides UDP syslog reception
#$ModLoad imudp.so
#$UDPServerRun 514
↓(コメント「#」を削除する。)
# Provides UDP syslog reception
$ModLoad imudp.so
$UDPServerRun 514

 

そして、rsyslogのデーモンを再起動です。

[root@oel62 ~]# service rsyslog restart
システムロガーを停止中:                        [  OK  ]
システムロガーを起動中: -r option only supported in compatibility modes 0 to 2 - ignored
                                                         [  OK  ]

 

 

2. ESXi で、Syslogに対するファイアウォール解放します。

これをしないと、ESXiからの送信もブロックされてしまいます。


まず、現状の設定を確認。

~ # esxcli network firewall ruleset list | grep syslog
syslog                 false

 

ちなみに、ファイアウォールのルールはこんな感じです。

~ # esxcli network firewall ruleset rule list | grep syslog
syslog              Outbound   UDP       Dst               514       514
syslog              Outbound   TCP       Dst               514       514
syslog              Outbound   TCP       Dst              1514      1514

 

ファイアウォールを開放します。

~ # esxcli network firewall ruleset set --ruleset-id=syslog --enabled=true

 

Syslog転送が許可されました。

~ # esxcli network firewall ruleset list | grep syslog
syslog                 true

 


3. つぎは、ESXi 側で、Syslogの転送設定をします。


デフォルトの設定状態を確認しておきます。

~ # esxcli system syslog config get
   Default Rotation Size: 1024
   Default Rotations: 8
   Log Output: /scratch/log
   Log To Unique Subdirectory: false
   Remote Host: <none>

 

 

設定を変更します。
UDPプロトコルで、192.168.0.192 のSyslogサーバにログを転送します。
デフォルトなので 514番ポートにむけて転送することになります。

~ # esxcli system syslog config set --loghost="udp://192.168.0.192"

 

確認すると、転送先のSyslogサーバが設定されています。

~ # esxcli system syslog config get
   Default Rotation Size: 1024
   Default Rotations: 8
   Log Output: /scratch/log
   Log To Unique Subdirectory: false
   Remote Host: udp://192.168.0.192

 

ESXi側で、Syslogサービスを再読み込みするとログ転送が開始されます。

~ # esxcli system syslog reload

 


4. 転送されたログを確認します。


ESXiは絶えずログ転送しているので、成功していればすぐわかりますが、
あえてテストメッセージを送ってみます。

Syslogサーバは、デフォルトの /var/log/messages ファイルにログを出力します。

 

(ESXi側)
~ # esxcli system syslog mark --message="SyslogTest `date`"; date
Thu Nov 29 14:52:29 UTC 2012

 

(Syslogサーバ側)
[root@oel62 ~]# date
2012年 11月 29日 木曜日23:51:10 JST
[root@oel62 ~]# grep SyslogTest /var/log/messages

Nov 29 14:52:25 esx01.local shell[853546]: esxcli system syslog mark --message="SyslogTest `date`"; date
Nov 29 14:52:26 esx01.local mark: SyslogTest Thu Nov 29 14:52:25 UTC 2012

 

実行したテストコマンド自体と、テストメッセージがSyslogサーバで受信できてました。

 

ESXiは、UTC(世界協定時)で動作するため、
基本的にJST(日本時間)から マイナス9時間表示になってしまいます。

Syslogサーバ自体の時間がちょっとずれているのでアレですが・・・

 

Syslogは、送信したメッセージにタイムスタンプ情報を持っているため、

受信したログの時刻が、Syslogサーバ自体の時刻とは マイナス9時間ずれています。


Viewing all articles
Browse latest Browse all 3805

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>