Apache httpd:将错误日志发送到系统日志和本地磁盘?不接触/etc/syslog.conf?

Ste*_*ski 2 security logging web-server syslog apache-2.2

我有一个 Apache httpd 2.2 服务器。我想使用 syslog 记录所有消息,以便将请求发送到我们的中央 syslog 服务器。我还想确保所有日志消息都发送到本地磁盘,以便系统管理员可以轻松访问本地系统上的日志文件。

很容易将 HTTP 访问日志发送到本地磁盘和系统日志。一种常用的方法是:

LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
CustomLog "|/usr/bin/logger -t httpd -i -p local4.info" combined
Run Code Online (Sandbox Code Playgroud)

但是对于错误日志要做到这一点并不容易。以下配置不起作用,因为错误日志仅使用最后一个 ErrorLog 节。第一个 ErrorLog 节被忽略。

ErrorLog logs/error_log
ErrorLog syslog:local4.error
Run Code Online (Sandbox Code Playgroud)

如何确保将 Apache 错误日志写入本地磁盘并发送到 syslog?

是否可以在不接触的情况下做到这一点/etc/syslog.conf?如果我的用户想要管理他们自己的 Apache 配置文件,我很好,但我不希望他们接触系统文件,例如/etc/syslog.conf

小智 6

您可以使用:

ErrorLog "| tee -a /var/log/httpd/error_log | /usr/bin/logger -t httpd -i -p local4.error"

做你想做的事。