CentOS系統的核心日志文件均集中存儲在/var/log/目錄下,涵蓋系統運行、安全認證、服務狀態等多個類別。常見日志文件及用途如下:
/var/log/messages:記錄系統通用信息(如內核消息、服務啟動/停止等),是排查系統整體問題的基礎日志;/var/log/secure:存儲安全相關事件(如用戶登錄/注銷、SSH認證、sudo使用記錄等),是安全審計的關鍵依據;/var/log/boot.log:記錄系統啟動過程中的日志信息(如內核加載、服務初始化等);/var/log/cron:記錄定時任務(cron)的執行情況(如任務啟動、失敗提示等);/var/log/maillog:記錄郵件服務(如Postfix、Sendmail)的收發日志;/var/log/dmesg:記錄內核環緩沖區信息(如硬件檢測、驅動加載等),可通過dmesg命令查看;/var/log/httpd///var/log/nginx/:分別存儲Apache、Nginx等Web服務的訪問日志(access_log)和錯誤日志(error_log);/var/log/audit/audit.log:記錄系統安全審計事件(如文件訪問、權限變更等),由auditd服務生成。日志文件長期積累會占用大量磁盤空間,需定期清理。CentOS提供了以下幾種常用方式:
journalctl命令(Systemd系統專用)CentOS 7及以上版本默認使用systemd作為初始化系統,其日志由journald服務管理,可通過journalctl命令清理:
journalctl --disk-usage(例如顯示“Archived and active journals take up 1.2G in the file system”);journalctl --vacuum-time=2weeks;journalctl --vacuum-size=100M;journalctl --vacuum-by service ssh.service。若需徹底清理,可直接刪除/var/log/目錄下的日志文件(需root權限):
sudo rm /var/log/messages(謹慎操作,避免刪除正在使用的日志);sudo rm -rf /var/log/*(執行前需確認無重要日志需保留)。logrotate工具(自動輪轉與回收)logrotate是CentOS默認的日志輪轉工具,可自動壓縮、刪除舊日志,避免手動操作。
/etc/logrotate.conf(定義默認輪轉規則,如rotate 7表示保留7個舊日志);/etc/logrotate.d/目錄下的文件(如/etc/logrotate.d/syslog管理messages、secure等日志的輪轉);/var/log/myapp.log):/var/log/myapp.log {
daily # 每天輪轉
rotate 7 # 保留7個舊日志
compress # 壓縮舊日志(如myapp.log.1.gz)
delaycompress # 延遲壓縮(下一次輪轉時壓縮上一次的舊日志)
missingok # 日志文件丟失時不報錯
notifempty # 日志為空時不輪轉
create 640 root adm # 創建新日志文件(權限640,屬主root,屬組adm)
}
sudo logrotate -f /etc/logrotate.conf(強制立即輪轉,即使未達到條件)。sudo cp -r /var/log /var/log_backup),避免誤刪導致問題排查困難;logrotate配置后,可通過sudo logrotate -d /etc/logrotate.d/your_config測試配置是否正確(-d表示調試模式,不實際執行);trash-cli),需參考其文檔查看回收日志的存儲位置(通常不在系統日志目錄中)。