系统负载(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),可实现全面的负载监控与管理。