RIGHT:[[フリーソフトウェアのコンパイル]]

Apache ログを syslog で飛ばし,集中管理する.

*error_log [#ef2e3767]
ErrorLog については
  ErrorLog logs/error.log
を
  ErrorLog syslog
などとすれば,syslog に飛ばせるようだ.

また,以下のようにして facility の設定も可能だ.
  ErrorLog syslog:facility

*access_log [#wae92d67]
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" エントリも必要かも.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS