Logging

Apache 日誌記錄不起作用

  • July 13, 2014

從 2.2.7 升級到 Apache 2.4.9 後,日誌似乎無法正常工作。只有記錄的內容是 modsecurity 和 fcgid 事件,但 Apache 沒有任何類似文件未找到錯誤的內容。檢查 Apache error_log,特別是在重新啟動後,我注意到了這一點:

[Sun Jul 13 05:16:10.482003 2014] [log_config:warn] [pid 30283:tid 140001085970176] (32)Broken pipe: [client 125.166.227.47:26260] AH00646: Error writing to |/usr/local/cpanel/bin/splitlogs --main=server.mysite.com --suffix=-bytes_log
[Sun Jul 13 05:16:10.482047 2014] [log_config:warn] [pid 30283:tid 140001085970176] (32)Broken pipe: [client 125.166.227.47:26260] AH00646: Error writing to |/usr/local/cpanel/bin/splitlogs --main=server.mysite.com --mainout=/usr/local/apache/logs/access_log

我不知道“破管子”是什麼意思。我已啟用管道日誌記錄(在升級 Apache 之前已啟用)。嘗試禁用它,但得到了同樣的結果,沒有任何記錄。在日誌部分檢查了 httpd.conf 文件,與舊的 conf 文件進行比較,但似乎找不到任何不同的地方:

<IfModule mod_log_config.c>
   LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedvhost
   LogFormat "%v %{%s}t %I .\n%v %{%s}t %O ." bytesvhost
   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
   LogFormat "%h %l %u %t \"%r\" %>s %b" common
   LogFormat "%{Referer}i -> %U" referer
   LogFormat "%{User-agent}i" agent

   CustomLog "|/usr/local/cpanel/bin/splitlogs --main=server.mysite.com --suffix=-bytes_log" bytesvhost
   CustomLog "|/usr/local/cpanel/bin/splitlogs --main=server.mysite.com --mainout=/usr/local/apache/logs/access_log" combinedvhost

</IfModule>

如果有人能對此有所了解,我將不勝感激。謝謝。

更新:已通過將 access_log 和 error_log 的權限更改為 777 來消除損壞的文件錯誤。但主要問題仍然存在,因為沒有記錄任何與 Apache 相關的錯誤(404、403 等)。

好吧,我想我已經想通了!解決方法是在 httpd.conf 中更改以下指令:

LogLevel warn

新值:

LogLevel info

顯然,Apache 2.4.9 中的一些錯誤日誌的重要性已經改變,因此像 404 這樣的錯誤日誌現在處於資訊級別,如下所述:http ://httpd.apache.org/docs/current/mod/core.html#loglevel

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