Apache ログを syslog で飛ばし,集中管理する.
ErrorLog については
ErrorLog logs/error.log
を
ErrorLog syslog
などとすれば,syslog に飛ばせるようだ.
また,以下のようにして facility の設定も可能だ.
ErrorLog syslog:facility
access_log については logger をかますか,以下のような方法になる. http://www.oreillynet.com/pub/a/sysadmin/2006/10/12/httpd-syslog.html
/opt/apache/bin/apache_syslog を作成
#!/usr/bin/perl use Sys::Syslog qw( :DEFAULT setlogsock ); #setlogsock('unix'); # Linux の場合 setlogsock('inet'); # Solaris の場合 openlog('apache', 'cons,pid', 'local2'); while ($log = <STDIN>) { syslog('notice', $log); } closelog
apache が起動するときに上記のプロセスも起動される.
httpd.conf にて以下の行を*追加する* (CustomLog ディレクティブは複数指定できるみたいなので, ローカルサーバ上にログを置いておくためには,現在の設定も活かしておく)
CustomLog |/opt/apache/bin/apache_syslog combined
同様に ssl.conf にて以下の行を加える.
TransferLog |/opt/apache/bin/apache_syslog
syslog.conf にて
local2.notice @192.168.1.1
あと,余計なところにログが出ないよう "none" エントリも必要かも.