我们有 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 并通过管道传输到记录器。