iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
自我挑戰組

日誌檢查學習自我挑戰系列 第 8

DAY8: 日誌輪替(Log Rotation)

  • 分享至 

  • xImage
  •  

什麼是日誌輪替?
日誌輪替是一種自動化的過程,用於管理和限制日誌檔案的大小。當一個日誌檔案達到特定大小或時間週期時,系統會對它進行處理,通常包括以下步驟:
壓縮與歸檔: 系統會將當前的日誌檔案重新命名(例如 httpd.log 變成 httpd.log.1),並通常會進行壓縮(變成 httpd.log.1.gz),讓它佔用更少的空間。
建立新檔案: 系統會為當前的日誌記錄建立一個全新的空白檔案(例如,再次建立一個新的 httpd.log)。
刪除舊檔案: 經過一定次數的輪替後,系統會自動刪除最舊的日誌檔案,以釋放儲存空間。
如何設定日誌輪替?
在 Linux 系統中,日誌輪替通常由一個名為 logrotate 的工具來處理。
logrotate 的設定檔位於 /etc/logrotate.conf 和 /etc/logrotate.d/ 目錄下。每個服務通常都有自己的設定檔。
範例:一個網站伺服器(httpd)的日誌輪替設定
假設這是位於 /etc/logrotate.d/httpd 的設定檔:
/var/log/httpd/access.log
/var/log/httpd/error.log
cat logrotate.conf
~# see "man logrotate" for details
~# global options do not affect preceding include directives
~# rotate log files weekly
weekly
~# keep 4 weeks worth of backlogs
rotate 4
~# create new (empty) log files after rotating old ones
create
~# use date as a suffix of the rotated file
dateext
~# uncomment this if you want your log files compressed
#compress
~# packages drop log rotation information into this directory
include /etc/logrotate.d
~# system-specific logs may be also be configured here.
這個設定檔告訴系統:
每週進行一次日誌輪替。
保留過去4 週的日誌副本。
舊的日誌會被壓縮以節省空間。
當輪替完成後,執行一個腳本來重新載入 httpd 服務,以確保它寫入新的日誌檔案。
透過日誌輪替,系統管理員可以確保日誌檔案不會無限增長,同時也能保留足夠的歷史記錄,以便在需要時進行問題追蹤和分析。這就像餐廳老闆每天整理一次記錄簿,並將一週前的記錄存檔,確保辦公室永遠不會被紙本記錄淹沒。


上一篇
Day 7:網路連線與流量日誌
下一篇
DAY 9:使用 cron 排程自動化檢查。
系列文
日誌檢查學習自我挑戰9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言