运维工程师必备的 Linux 系统监控与故障排查命令大全

内容分享1周前发布
1 1 0

以下整理了常用的Linux监控命令,按功能分类并附使用示例:


一、系统概览信息

命令

功能

示例输出

hostname

查看主机名

web-server-01

uname -a

系统内核信息

Linux db01 5.4.0-131-generic #148-Ubuntu SMP

cat /etc/os-release

操作系统版本

PRETTY_NAME=”Ubuntu 20.04.4 LTS”

uptime

运行时间与负载

18:05:01 up 45 days, 3:21, 1 user, load average: 0.08, 0.03, 0.05

date

系统时间

Thu Aug 18 18:05:24 CST 2023


二、CPU监控

命令

功能

关键指标

lscpu

CPU架构信息

核心数/线程数/型号

top -bn1

实时CPU使用率

%Cpu(s): 12.3 us, 6.2 sy

mpstat -P ALL

多核CPU详细统计

各核心的user/sys/idle占比

sar -u 2 5

周期性CPU采样

平均使用率趋势

vmstat 1

综合性能监控

r(运行队列)/b(阻塞进程)

高级技巧

# 按CPU使用率排序进程
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -n 10

三、内存监控

命令

功能

关键指标

free -m

内存总量与使用

Mem: 32042 29582 2460

vmstat -s

详细内存统计

active/inactive memory

cat /proc/meminfo

内存详细信息

MemTotal/Cached/Swap

slabtop

内核slab缓存

内核对象缓存使用

内存泄漏排查

# 监控进程内存变化
watch -n 1 "ps -eo pid,cmd,rss --sort=-rss | head -n 5"

四、磁盘监控

命令

功能

关键指标

df -h

磁盘空间使用

/dev/sda1 98G 45G 48G 49% /

iostat -dx 2

磁盘IO性能

await(ms)/util(%)

iotop

实时IO进程

进程级读写速率

du -sh /* | sort -hr

目录大小排序

快速定位大文件

lsblk

块设备信息

磁盘分区/挂载点

IO瓶颈诊断

# 定位高IO进程
pidstat -d 1

五、网络监控

命令

功能

关键指标

ifconfig/ip addr

网络接口信息

IP地址/RX/TX包量

netstat -tulnp

端口监听状态

服务端口/PID

ss -s

连接统计

Total: 987 (kernel 0)

tcpdump -i eth0

网络包捕获

实时流量分析

iftop -P

带宽使用排名

主机级流量统计

连接分析

# 查看ESTABLISHED连接数
netstat -an | grep ESTABLISHED | wc -l

六、进程与服务监控

命令

功能

关键指标

ps aux

进程列表

CPU/MEM使用率

pidstat 1

进程资源统计

%CPU/%MEM

systemctl status

服务状态

Active(running)

journalctl -u nginx

服务日志

服务运行日志

lsof -p <PID>

进程打开文件

文件描述符

进程树查看

# 显示进程树关系
pstree -ap

七、高级监控工具

  1. 实时监控面板
  2. htop:增强版top(支持鼠标操作)
  3. glances:全能监控面板(需安装)
  4. nmon:专业性能监控工具
  5. 日志分析
  6. # 查看包含ERROR的最新日志
    tail -f /var/log/syslog | grep -i error

    # 统计404错误次数
    awk '$9==404 {print $7}' access.log | sort | uniq -c | sort -nr

  7. 性能分析
  8. perf top:CPU热点函数分析
  9. strace -p <PID>:系统调用跟踪
  10. dstat:综合性能统计工具

八、最佳实践提议

  1. 命令组合使用
  2. # 单行获取关键指标
    echo “Load:$(uptime | awk -F'load average: ' '{print $2}') | Mem:$(free -m | awk '/Mem/{print $3″/”$2″MB”}')”
  3. 监控自动化
  4. 使用cron定期收集指标
  5. 通过tee同时输出到屏幕和文件
  6. 编写脚本格式化输出(如本文示例)
  7. 安全注意事项
  8. 避免在生产环境直接修改配置
  9. 使用nohup执行长时间任务
  10. 敏感命令添加-i交互确认

运维箴言:掌握这些命令如同获得系统”听诊器”,但真正的价值在于理解数据背后的意义。提议建立自己的命令手册,定期练习形成肌肉记忆。

通过熟练使用这些命令,运维工程师可以快速诊断系统瓶颈,有效处理故障,保障业务稳定运行。记住:好的运维不是救火队员,而是通过监控提前发现隐患的守护者。

© 版权声明

相关文章

1 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    豆蔻宏刊 读者

    收藏了,感谢分享

    无记录