系統負載(Load Average)是反映Ubuntu系統繁忙程度的核心指標,主要記錄在系統日志(如/var/log/syslog
、/var/log/kern.log
)和journal日志(systemd管理的日志)中。以下是通過日志監控系統負載的具體方法:
journalctl
是systemd的日志管理工具,可直接查看包含系統負載信息的日志條目。
journalctl -f
(-f
表示實時跟蹤),日志中會包含load average
字段(如load average: 0.15, 0.10, 0.05
),分別代表1分鐘、5分鐘、15分鐘的平均負載。journalctl --since "2025-09-20 10:00:00" --until "2025-09-20 11:00:00"
,可查看指定時間段內的負載日志,便于分析負載峰值時段。kern.log
)會記錄硬件和系統底層事件,運行journalctl -k
或journalctl -t kernel
,可獲取內核級別的負載信息(如CPU調度、磁盤I/O等)。Ubuntu的/var/log/syslog
文件記錄了系統常規運行日志,其中包含負載平均值信息。
tail -f /var/log/syslog
,日志中會出現類似kernel: [12345.678901] load average: 0.20, 0.15, 0.10
的條目,實時反映系統負載變化。grep
命令篩選syslog中的負載信息,例如grep "load average" /var/log/syslog
,可獲取過去一段時間內的負載記錄,便于回溯分析。logwatch
是一款日志分析工具,可定期匯總系統負載信息并生成易讀的報告。
sudo apt install logwatch
(Ubuntu默認倉庫提供)。/etc/logwatch/conf/logwatch.conf
,設置Detail = High
(詳細程度)和Range = yesterday
(報告時間范圍),確保包含Service = system
(系統服務日志)。sudo logwatch
,終端會輸出包含系統負載、CPU使用率、內存占用等的報告;也可通過郵件發送報告(修改MailTo
參數)。若需要更靈活的負載監控,可通過rsyslog轉發日志到自定義腳本,提取并分析負載信息。
/usr/local/bin/monitor_load.sh
,內容如下:#!/bin/bash
LOG_FILE="/var/log/syslog"
OUTPUT_FILE="/tmp/load_report.txt"
echo "===== System Load Report =====" > $OUTPUT_FILE
grep "load average" $LOG_FILE | tail -n 5 >> $OUTPUT_FILE # 提取最近5條負載記錄
echo "Last updated: $(date)" >> $OUTPUT_FILE
mail -s "Ubuntu System Load Report" your_email@example.com < $OUTPUT_FILE # 發送郵件(需配置郵件服務)
crontab -e
,添加0 * * * * /usr/local/bin/monitor_load.sh
,每小時自動運行腳本并發送負載報告。glances
是一款跨平臺系統監控工具,可實時顯示負載信息,并將警報發送到syslog。
sudo apt install glances
。/etc/glances/glances.conf
,設置notify_syslog = True
(啟用syslog通知)和syslog_level = warning
(警報級別)。sudo glances -w
(web模式)或sudo glances
(終端模式),實時查看負載信息;當負載超過閾值時,glances會將警報發送到syslog(/var/log/syslog
),便于集中管理。通過以上方法,可充分利用Ubuntu日志系統監控系統負載,及時發現性能瓶頸(如高負載導致的響應變慢)。結合實時工具(如journalctl、glances)和定期報告工具(如logwatch),可實現全面的負載監控與管理。