日誌輪換的好處

日誌輪換的好處

我已經使用 logrotation 多年了,從來沒有想過太多它是一個問題,直到我在 stackoverflow 上遇到了一個問題(https://stackoverflow.com/questions/1508734/disable-java-log-rotation/)有人想要停用日誌輪替。

對我來說,有手動清理構建伺服器甚至生產伺服器的經驗,因為日誌沒有輪換,光碟用完,機器突然停止運行,這一切看起來都很瘋狂,但我突然想到,也許在之後情況並不那麼明顯全部。

那麼日誌輪轉有什麼好處呢?缺點是什麼(例如可能更難以調試/分析)?您發現哪些工具對於處理輪換日誌檔案很有用?我猜是 Splunk,但是還有什麼呢?

答案1

我認為日誌輪換的好處是顯而易見的:

  1. 您可以輕鬆管理較小的日誌文件,而不是一個巨大的日誌文件。
  2. 如果您根據容量限制進行適當配置,則不會突然耗盡磁碟空間。 (size選項)
  3. 可以壓縮較舊的日誌文件,使日誌文件的大小變得更小,從而節省更多的磁碟空間。 (compress選項)。
  4. 您可以以特定方式/時間輪換文件。例如,每個日誌檔案僅包含與特定日期相關的資訊。如果您知道日期,這將使搜尋變得更容易。當您不知道日期時,您可以只搜尋所有文件或其中的子集。 (dailymonthly, ETC)。
  5. 您會自動刪除非常舊的檔案。例如,您最多可以保留 30 個檔案。 ( rotate 30)。
  6. 您可以添加您喜歡的擴展名,例如輪換日期。 ( dateext)。
  7. 您可以在輪換之前/之後執行特定腳本。 ( prerotate, postrotate)。

編輯:我向清單中添加了更多項目,並在適用時包含了選項。欲了解更多詳情,man logrotate可洽詢。

答案2

好處:

  • 如果日誌檔案很大,可以壓縮或刪除舊資料以避免佔滿磁碟
  • 如果您知道某件事發生的時間,那麼 grep 一天的日誌檔案比單一永久日誌檔案更快

缺點:

  • 如果要處理整個歷史記錄,則必須指定多個檔案名稱
  • 有些程式不支援旋轉,如果您使用 logrotate 這樣的實用程式來旋轉它,則需要注意一些邊緣情況(例如,您必須使用截斷選項,我認為這意味著您可能會丟失少量資料)

答案3

如果您考慮一下日誌的用途,其好處就會變得更加明顯。撇開其他人和你自己提到的顯而易見的觀點不談。對我來說,最大的好處是我可以控制日誌如何輸入離線分析工具。

我有各種各樣的自製腳本用於分析日誌 - 但是,據我所知,splunk 和各種 webloog 分析工具是唯一可用的現成「標準」工具。 (不包括像fail2ban這樣的即時日誌檔案分析器)。

相關內容