フリーソフトウェアのコンパイル

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

error_log

ErrorLog については

 ErrorLog logs/error.log

 ErrorLog syslog

などとすれば,syslog に飛ばせるようだ.

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

 ErrorLog syslog:facility

access_log

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
Last-modified: 2009-04-24 (金) 11:37:39