web-dev-qa-db-ja.com

Apacheアクセスログをsyslogに送信する

IBM HTTP Server(Apache 2.0に基づく)があり、accessログをsyslogに送信したいと考えています。 (機能するエラーログに加えて)

使用している構成は次のとおりです。

ErrorLog "|/HTTPServer/bin/rotatelogs /archive/http/error_log.%Y%m%d 86400 | /usr/bin/logger -t httpd -plocal6.err"
LogLevel warn
LogFormat "%h %{True-Client-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D \"%{Host}i\" %v" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog "|exec /usr/bin/logger -t ptseelm-ax3004 -i -p local6.notice" combined

ただし、ログエントリはローカルのsyslog.outにも表示されません。

プロセスは次のようになります。

ps -ef | grep httpd
Apache  6226000  8388618   0 09:04:01      -  0:00 /HTTPServer/bin/httpd -d /HTTPServer -k start
Apache  6750220  8388618   0 09:04:01      -  0:00 /HTTPServer/bin/httpd -d /HTTPServer -k start
Apache  7602390  8388618   0 09:04:01      -  0:00 /HTTPServer/bin/httpd -d /HTTPServer -k start
root  8388618        1   0 09:04:01      -  0:00 /HTTPServer/bin/httpd -d /HTTPServer -k start
root  9044038  8388618   0 09:04:01      -  0:00 /usr/bin/logger -t httpd -plocal6.err

したがって、子プロセスに接続されたロガーはありません...それは問題ですか?誰かが私を助けることができますか? :)

Syslog.confには次のものがあります。

local6.*        @somerealipaddress
2
Seer

ロガーに直接パイプする代わりに、ファイルに書き込んでから、別のプロセスにそのファイルを読み取らせて、syslogに送信することをお勧めします。

多くのsyslogプログラム、例えばrsyslogおよびsyslog-ngは、ファイルおよび/ dev/logから読み取ることができます。別のオプションは、単にtail-Fを使用してロガーにパイプすることです。

3
Jenny D