CentOS Minimal系統日志管理指南
CentOS Minimal系統的日志管理依賴三個核心工具:
/var/log/messages
),支持日志轉發至遠程服務器。journalctl是查看systemd管理日志的便捷工具,常用命令如下:
journalctl
(需root權限)。journalctl -n 100
。journalctl -f
(類似tail -f)。journalctl -u sshd
。journalctl -b
;查看上一次啟動的日志:journalctl -b -1
。journalctl --since "today"
;按關鍵詞搜索(如“error”):journalctl | grep 'error'
。CentOS Minimal的日志仍存儲在/var/log
目錄下,常見文件及用途:
/var/log/messages
:系統一般信息日志(如內核消息、服務啟動信息)。/var/log/secure
:安全相關日志(如SSH登錄嘗試、權限變更)。/var/log/boot.log
:系統啟動過程日志。/var/log/dmesg
:內核環緩沖區日志(硬件檢測、驅動加載信息)。常用查看命令:
cat /var/log/messages
(全量查看)、less /var/log/messages
(分頁查看)。tail -f /var/log/messages
(適合故障排查)。grep "error" /var/log/messages
(篩選特定錯誤信息)。日志輪轉可自動管理日志文件大小,避免磁盤空間耗盡。CentOS Minimal默認已安裝logrotate,配置步驟如下:
/etc/logrotate.conf
(定義全局規則,如默認輪轉周期、壓縮方式)。/etc/logrotate.d/
目錄下創建新文件(如myapp
),針對特定日志文件配置輪轉規則。/var/log/myapp.log
為例)/var/log/myapp.log {
daily # 每天輪轉一次
rotate 7 # 保留7個舊日志文件
compress # 壓縮舊日志(如myapp.log.1.gz)
delaycompress # 延遲壓縮(下一次輪轉時才壓縮myapp.log.1)
missingok # 日志文件丟失時不報錯
notifempty # 日志為空時不輪轉
create 640 root adm # 創建新日志文件,權限640,屬主root,屬組adm
}
sudo logrotate -f /etc/logrotate.d/myapp
(強制輪轉,即使未達到條件)。tail -f /var/log/messages
(監控logrotate的操作記錄)。logrotate默認通過/etc/cron.daily/logrotate
每天自動運行,無需額外配置。
若需將日志發送至遠程服務器(如日志服務器),可編輯/etc/rsyslog.conf
,取消以下行注釋并修改目標服務器IP:
*.* @192.168.1.100:514 # UDP轉發(514端口)
*.* @@192.168.1.100:514 # TCP轉發(更可靠)
重啟rsyslog服務使配置生效:sudo systemctl restart rsyslog
。
sudo yum install logwatch
,啟動服務:sudo systemctl enable --now logwatch
。若需監控系統調用、文件訪問等安全事件,可安裝auditd:
sudo yum install audit
。sudo systemctl enable --now auditd
。ausearch -m avc
(查看SELinux審計日志)、aureport -i
(生成審計報告)。