← 返回首页
📊

Linux系统监控入门

📂 devops ⏱ 2 min 299 words

Linux系统监控入门

为什么需要系统监控

系统监控可以帮助我们:

CPU监控

top命令

# 启动top
top

# 常用快捷键
# P - 按CPU排序
# M - 按内存排序
# 1 - 显示每个CPU核心
# q - 退出

top输出解读:

top - 14:30:00 up 10 days,  2:15,  1 user,  load average: 0.50, 0.75, 0.60
Tasks: 150 total,   1 running, 149 sleeping,   0 stopped,   0 zombie
%Cpu(s):  5.0 us,  2.0 sy,  0.0 ni, 92.0 id,  1.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  16000.0 total,   8000.0 free,   4000.0 used,   4000.0 buff/cache
MiB Swap:   4000.0 total,   4000.0 free,      0.0 used.  11000.0 avail Mem

htop命令

# 安装htop
sudo apt-get install htop  # Debian/Ubuntu
sudo yum install htop      # CentOS/RHEL

# 启动htop
htop

htop提供了更友好的界面,支持鼠标操作。

mpstat命令

# 查看每个CPU核心使用率
mpstat -P ALL 1 5

内存监控

free命令

# 查看内存使用
free -h

# 输出解释
# total: 总内存
# used: 已使用
# free: 空闲
# shared: 共享内存
# buff/cache: 缓冲/缓存
# available: 可用内存

vmstat命令

# 每秒采样一次,共采样5次
vmstat 1 5

# 输出关键列
# r: 运行队列中的进程数
# b: 阻塞的进程数
# swpd: 使用的交换空间
# free: 空闲内存
# buff: 缓冲区使用
# cache: 缓存使用
# si: 从磁盘换入
# so: 换出到磁盘

磁盘监控

df命令

# 查看磁盘空间使用
df -h

# 查看inode使用
df -i

# 查看特定文件系统
df -h /home

iostat命令

# 安装sysstat
sudo apt-get install sysstat

# 查看磁盘IO统计
iostat -x 1 5

# 输出关键列
# %util: 磁盘使用率
# await: 平均IO等待时间
# r/s, w/s: 每秒读写次数

iotop命令

# 安装iotop
sudo apt-get install iotop

# 查看IO最高的进程
sudo iotop

网络监控

iftop命令

# 安装iftop
sudo apt-get install iftop

# 监控网络流量
sudo iftop -i eth0

nethogs命令

# 安装nethogs
sudo apt-get install nethogs

# 按进程监控网络
sudo nethogs

netstat/ss命令

# 查看网络连接
netstat -tulpn
ss -tulpn

# 查看连接统计
netstat -s

综合监控工具

sar命令

# CPU使用率
sar -u 1 5

# 内存使用
sar -r 1 5

# 磁盘IO
sar -d 1 5

# 网络流量
sar -n DEV 1 5

实践:编写监控脚本

#!/bin/bash
echo "=== 系统监控报告 ==="
echo "时间: $(date)"
echo ""
echo "--- CPU使用 ---"
uptime
echo ""
echo "--- 内存使用 ---"
free -h
echo ""
echo "--- 磁盘使用 ---"
df -h | grep -E "^/dev/"
echo ""
echo "--- 网络连接 ---"
ss -tulpn | head -10

总结

系统监控是运维工程师的日常技能。通过这些工具,可以及时了解系统状态,发现和解决问题,确保系统稳定运行。