一、收集系統日志:確定核心日志文件位置
CentOS系統的日志集中存儲在/var/log
目錄下,關鍵日志文件包括:
/var/log/messages
:全局系統日志,涵蓋內核、服務及應用程序的常規信息(如啟動、停止、錯誤);/var/log/secure
:安全相關日志(如SSH登錄嘗試、用戶認證失?。?;/var/log/cron
:定時任務執行日志;/var/log/boot.log
:系統啟動過程日志;/var/log/httpd/
、MySQL的/var/log/mysql/
):記錄特定服務的運行狀態。二、使用journalctl查看實時與歷史日志
journalctl
是CentOS 7及以上版本管理systemd日志的核心工具,支持實時監控、過濾和檢索:
journalctl -n 100
(顯示最近100條)、journalctl -xe
(顯示詳細錯誤日志);journalctl -f
(類似tail -f
,實時滾動顯示新日志);journalctl --since "2025-09-20" --until "2025-09-24"
(查看指定時間段的日志);journalctl -u httpd.service
(僅顯示Apache服務的日志);journalctl -p err
(僅顯示錯誤級別日志)。三、過濾關鍵性能相關信息
通過grep
、awk
等命令提取日志中的性能關鍵詞,快速定位瓶頸:
grep -i "error\|fail\|warning" /var/log/messages
(查找系統錯誤、失敗或警告信息);grep "high CPU usage" /var/log/messages
或journalctl | grep "cpu overload"
(識別CPU占用過高的進程或時間段);grep "out of memory" /var/log/messages
(查找內存耗盡的記錄)、grep "oom" /var/log/messages
(OOM Killer觸發的日志);grep "iowait" /var/log/messages
(查看磁盤等待時間過長的記錄)、journalctl | grep "disk error"
(識別磁盤硬件問題);grep "connection refused" /var/log/messages
(網絡連接失?。?、grep "packet loss" /var/log/messages
(丟包問題)。四、借助工具自動化分析與可視化
/etc/logwatch/conf/logwatch.conf
(如設置郵件接收地址),運行logwatch
即可生成每日/每周報告(包含CPU、內存、磁盤使用情況)。/var/log/messages
、應用程序日志等數據;五、監控系統性能指標(結合日志與命令)
日志需與命令行工具結合,全面掌握系統性能:
top
(實時顯示進程CPU占用)、vmstat 1
(每秒顯示CPU、內存、I/O統計)、sar -u 1 3
(查看1分鐘內CPU平均使用率);free -h
(查看內存總量、使用量、緩存)、vmstat 1
(si/so
列表示磁盤交換頻繁,可能內存不足)、sar -r 1 3
(內存使用趨勢);iostat -x 1
(查看磁盤讀寫延遲、吞吐量,await
值高表示I/O瓶頸)、dstat -d
(實時磁盤活動);netstat -tulnp
(查看網絡連接狀態)、ss -s
(統計socket數量)、iftop
(實時網絡流量)。六、日志輪轉與管理(避免日志膨脹)
使用logrotate
工具自動輪換日志,防止日志文件過大占用磁盤空間:
/etc/logrotate.conf
(全局設置,如保留日志天數rotate 7
);/etc/logrotate.d/
下創建文件(如httpd
),內容示例:/var/log/httpd/*.log {
daily
rotate 30
compress
missingok
notifempty
sharedscripts
postrotate
systemctl reload httpd
endscript
}
上述配置表示:每天輪換Apache日志,保留30天,壓縮舊日志,輪換后重啟Apache服務。七、設置性能警報(主動響應問題)
通過監控工具設置閾值警報,及時處理性能異常:
cpu_usage > 80% for 5m
)發送郵件、短信或Slack通知;