将 Apache 访问日志发送到 syslog

将 Apache 访问日志发送到 syslog

我们有 IBM HTTP 服务器(基于 Apache 2.0),并且想要发送使用权记录到系统日志。(除了能起作用的错误日志外)

我们使用的配置如下:

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

答案1

我建议不要直接将其传输到记录器,而是将其写入文件,然后让单独的进程读取该文件并将其发送到系统日志。

许多 syslog 程序(例如 rsyslog 和 syslog-ng)都可以从文件和 /dev/log 读取。另一个选项是简单地使用 tail -F 并通过管道传输到记录器。

相关内容