Apache-2.2

Apache httpd:將錯誤日誌發送到系統日誌和本地磁碟?不接觸 /etc/syslog.conf?

  • November 25, 2014

我有一個 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

但是對於錯誤日誌,要做到這一點並不容易。以下配置不起作用,因為錯誤日誌僅使用最後一個 ErrorLog 節。第一個 ErrorLog 節被忽略。

ErrorLog logs/error_log
ErrorLog syslog:local4.error

如何確保將 Apache 錯誤日誌寫入本地磁碟並發送到 syslog?

是否可以在不觸摸的情況下做到這一點/etc/syslog.conf?如果我的使用者想要管理他們自己的 Apache 配置文件,我很好,但我不希望他們接觸系統文件,例如/etc/syslog.conf

嘗試將所有 ErrorLog 發送到管道,例如 perl 腳本。這個 perl 腳本可以指向 syslog 和本地磁碟。

您可以使用:

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

去做你想做的事。

引用自:https://serverfault.com/questions/385414