2026-10-28 01:12:57
通过日志监控Linux服务器负载可结合实时监控工具、日志文件查看、系统状态监控工具、高级日志分析平台及自定义脚本实现,以下为具体方法:
一、实时监控工具直接查看负载top/htop
top:直接运行可实时显示系统进程资源占用(CPU、内存等),按1查看各CPU核心使用率,按Shift+P按CPU排序。
htop:增强版工具,支持鼠标操作、颜色高亮和横向滚动,需安装(如yum install htop或apt install htop)。
uptime运行命令后输出包含系统运行时间、当前登录用户数及1/5/15分钟平均负载(Load Average),负载值超过CPU核心数可能表示过载。
系统通用日志
/var/log/messages(CentOS/RHEL)或/var/log/syslog(Ubuntu/Debian):记录内核、服务、安全等事件。
实时查看最新日志:tail -f /var/log/messages(按Ctrl+C退出)。
搜索关键词:grep "error" /var/log/messages。
/var/log/dmesg:内核启动时硬件检测信息,使用dmesg | less分页查看,排查硬件故障(如磁盘错误)。
服务专属日志
例如Web服务日志(/var/log/nginx/access.log)或数据库日志(/var/log/mysql/error.log),需根据服务类型定位文件。
CPU监控
vmstat 1:每秒刷新虚拟内存、CPU使用(us用户态、sy内核态、id空闲比例)。
mpstat -P ALL 1:显示每个CPU核心的详细使用率(需安装sysstat包)。
内存监控
free -h:查看总内存、已用、缓存及可用空间,-h参数以易读格式显示。
磁盘I/O监控
iostat -x 1:每秒更新磁盘读写速度、IOPS、等待时间等,重点关注%util(设备利用率)和await(平均I/O延迟)。
综合监控
sar 1 5:每秒收集一次系统数据(CPU、内存、磁盘、网络),共5次,生成报告用于趋势分析。
ELK Stack
Elasticsearch:存储和索引日志数据。
Logstash:采集、解析日志并传输到Elasticsearch。
Kibana:可视化界面,通过仪表盘实时展示负载趋势、异常告警。
示例流程:配置rsyslog将日志发送到Logstash,再由Kibana分析。
Splunk
商业工具,支持快速搜索、关联分析,适合企业级日志管理,提供预建的负载监控仪表盘。
监控CPU使用率并记录日志
#!/bin/bashwhile true; do cpu_usage=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *([0-9.]*)%* id.*/1/" | awk '{print 100 - $1}') echo "$(date) CPU Usage: ${cpu_usage}%" >> /var/log/cpu_usage.log sleep 60done脚本说明:每分钟采集一次CPU使用率,写入日志文件,可通过tail -f /var/log/cpu_usage.log实时查看。
扩展建议:结合awk设置阈值告警(如超过90%时触发邮件通知)。
监控内存并告警
#!/bin/bashthreshold=90 # 设置阈值(%)while true; do mem_used=$(free | awk '/Mem/{printf("%.0f"), $3/$2*100}') if [ $mem_used -gt $threshold ]; then echo "$(date) WARNING: Memory usage ${mem_used}% exceeds threshold!" >> /var/log/mem_alert.log # 可添加邮件或短信告警命令 fi sleep 300done总结:根据需求选择工具组合,小型系统可用top+日志文件,大型环境建议ELK或商业工具,自定义脚本适合灵活监控特定指标。