LoginSignup
0

More than 5 years have passed since last update.

VMware 5.1 の vCenter Server Appliance で ログを外部の syslog サーバーに送った話

Posted at

VMware 5.1 の vCenter Server Appliance で ログを外部の syslog サーバーに送った話

このエントリは

  • VMware 6 より前の VMware vCenter Server Appliance (VCSA) は、標準/GUI で syslog にログを送り出す設定ができない。
  • が、VMware 5.1 でも、VCSA に内蔵している syslog-ng に設定を追加して 送り出すための設定情報があった(後述:英語)。 それを参考に設定してみた記録である。
  • なお /var/log/messages も送り出したいので、不要な文字列をフィルタしながら送出することにする。

概要

手順

  1. root で VCSA に ssh 接続
  2. /etc/syslog-ng/syslog-ng.conf を バックアップを取った後、後述のように編集
  3. syslog-ng -s で ファイルの文法チェック
  4. service syslog reload で サービスの設定再読み込み
  5. logger -p warn -t "MY_TEST" "TEST MESSAGE on `hostname` with logger command" などで テストのログを書き込み
  6. 送り出した先で テストのログが受信できていることを確認

設定内容

  • VCSA の syslog-ng に、vCenter Server の出力するログファイル群を監視させて、外部に送り出させる。
  • 一緒に VCSA の OS 部分のログ /var/log/messages も同様に送り出す。1
  • 設定のうち、 /var/log/messages 分については、下記のように 除外用のフィルタ定義を行っている。
    • "/cron" ‥‥‥ 頻発している crond 関連の出力
    • " lsassd" ‥‥ ActiveDirectory 関連のログ (当該環境では未使用) (1文字目の l の前に 半角スペースを含む)
    • "Log statistics;" ‥‥ 定期的に syslog-ng が出力する情報

注意点

  • 受け側 (当方では rsyslog だった) では、全てのログが なぜか kern.emerg 扱いになってしまい、facility と level が消えてしまった。未解決 だが受容した。

参照情報:

設定内容

編集箇所:

  • syslog-ng.conf の末尾に 下記を追記した
/etc/syslog-ng/syslog-ng.conf
###
###  LOCAL SETTINGS
###
# Please check syntax with this command before restart service..
# syslog-ng -s

#### see also: http://www.virtuallyghetto.com/2012/08/forwarding-vcenter-server-logs-to.html
#### see also: https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2078751

# vpxd source log
source vpxd {
       file("/var/log/vmware/vpx/vpxd.log"                follow_freq(1) flags(no-parse));
       file("/var/log/vmware/vpx/vpxd-alert.log"          follow_freq(1) flags(no-parse));
       file("/var/log/vmware/vpx/vws.log"                 follow_freq(1) flags(no-parse));
       file("/var/log/vmware/vpx/vmware-vpxd.log"         follow_freq(1) flags(no-parse));
       file("/var/log/vmware/vpx/inventoryservice/ds.log" follow_freq(1) flags(no-parse));
};
source local_messages {
       file("/var/log/messages" follow_freq(1) flags(no-parse));
};

# filter low-level
## messages 内で不要なエントリを除外するフィルタ
filter f_notneed_str1   { not match("/cron") and not match(" lsassd") and not match("Log statistics;"); } ;
## レベルを絞るフィルタ
filter f_remote_error   { level( err..emerg)     ; } ;
filter f_remote_warning { level( warning..emerg) ; } ;
filter f_remote_notice  { level( notice..emerg)  ; } ;


# Remote Syslog Host
destination remote_syslog {
   #    udp("[他のsyslogサーバIP]" port (514));
        tcp("[他のsyslogサーバIP]" port (514));
};

# Log vCenter Server vpxd to remote log server
log {
        source(vpxd);
        filter(f_remote_warning);
        destination(remote_syslog);
};
# Log vCenter Server's /var/log/messages to remote log server, with some filterring
log {
        source(local_messages);
        filter(f_remote_warning);
        filter(f_notneed_str1);
        destination(remote_syslog);
};

以上


  1. 標準の設定で /var/log/messages をカバーしている記載もあるが、単純化のため別の source を定義した。 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0