Linux

沒有 .log 的 Apache 輸出

  • October 8, 2019

我正在嘗試解決 apache 日誌填充 /var/log/ 分區的問題。它是 apache2 中的單個日誌,幾乎 4GB。我已將 logrotate 設置為以 3G 輪換,但它沒有輪換日誌。此外,logrotate 在頂部看起來像這樣,

/var/log/apache2/*.log

這似乎意味著它只會旋轉 .log 文件。apache2 中的日誌是 sitename.org,後面沒有 .log。這是正常行為/是日誌無法正常旋轉的原因嗎?有稱為 sitename.org-error.log 的日誌,以及它們的壓縮版本,但老實說,我對 apache 如何處理日誌知之甚少,無法知道這些日誌是否是與占用分區的大文件分開的日誌。

是的,您正在正確閱讀 - 在您的情況下,預設 logrotate 配置只會旋轉名稱以.log.

可以通過使用使其旋轉所有文件,/var/log/apache2/*但這可能會出現問題(因為該萬用字元也會匹配舊的旋轉日誌文件)

您最好的做法是修改 apache 配置,以便呼叫日誌sitename.org.log而不是僅僅呼叫日誌sitename.org(當然,如果有腳本希望準確呼叫日誌,您可能需要修改系統的其餘部分sitename.org

或者,您可以手動指定所有非標準命名的日誌文件,例如:

/var/log/apache2/*.log /var/log/apache2/sitename.org /var/log/apache2/sitename2.org

這將為您節省修復系統其餘部分中硬編碼名稱的時間,但代價是必須手動輸入(然後更新!)所有域的所有日誌文件名(如果很少的話,這沒什麼大不了的)其中,你永遠不會添加新的)。

另請注意,logrotate 通常每天從 cron 執行一次,因此,如果您將 logrotate 設置為 rotate at 3GB,它仍然可能會增長到更多(更多取決於一天產生了多少行日誌條目)

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