阅读量:2
Linux 系统状态监控实用指南
一 快速巡检命令
- 资源总览与负载
- 查看整体资源与负载:uptime、free -h、df -h、vmstat 1 5
- CPU 与进程
- 实时进程与资源:top/htop
- 单核/多核占用快照:运行 top -b -n 1,从 Cpu 行读取 us、sy、id、wa、hi、si 等指标
- 内存与交换
- 内存与缓存:free -h
- 交换分区:swapon -s
- 磁盘与 I/O
- 分区使用率:df -h
- 设备 I/O 与等待:iostat -x 1 5
- 网络
- 接口与地址:ip addr
- 路由:route -n
- 连接与端口:ss -tulnp、netstat -tulnp
- 日志与内核
- 系统日志:journalctl -xe
- 内核环形缓冲:dmesg | tail -n 50
以上命令覆盖日常巡检所需的关键维度,适合快速定位瓶颈与异常。
二 一键采集脚本
- 功能
- 一键输出 CPU 利用率、负载、内存、磁盘 I/O、网络接口、连接数 等核心指标,便于排障与归档
- 使用
- 保存为 sysstat.sh,赋权后执行:chmod +x sysstat.sh && ./sysstat.sh
- 示例输出片段
- CPU 利用率:us=5.2%, sy=1.8%, id=92.5%, wa=0.3%, hi=0.1%, si=0.1%
- 负载:1/5/15 分钟=0.12/0.08/0.05
- 内存:总量=15.9G, 已用=7.8G, 可用=7.5G, 缓存=7.4G
- 磁盘 I/O:sda 读=1.2 MB/s, 写=3.8 MB/s, await=1.5 ms, util=12%
- 网络:eth0 RX/TX=1.4 MB/s / 0.6 MB/s, 活动连接=342
#!/usr/bin/env bash
# sysstat.sh - 一键采集 Linux 系统状态
set -o pipefail
# 工具检查
for c in top free vmstat iostat ip ss; do
command -v "$c" >/dev/null 2>&1 || { echo "缺少命令: $c"; exit 1; }
done
# 基本
echo "===== 基本信息 ====="
echo "时间: $(date '+%F %T')"
echo "主机: $(hostname)"
echo "内核: $(uname -r)"
echo "负载: $(uptime | awk -F'load average:' '{print $2}')"
# CPU 利用率(top 批处理模式)
echo -e "\n===== CPU 利用率 ====="
cpu_line=$(top -b -n 1 | awk -F',' '/Cpu\(s\):/ {print $1; exit}')
set -- $cpu_line
us=$(echo "$1" | tr -d ' %us') sy=$(echo "$2" | tr -d ' %sy') \
ni=$(echo "$3" | tr -d ' %ni') id=$(echo "$4" | tr -d ' %id') \
wa=$(echo "$5" | tr -d ' %wa') hi=$(echo "$6" | tr -d ' %hi') \
si=$(echo "$7" | tr -d ' %si')
echo "us=${us}% sy=${sy}% ni=${ni}% id=${id}% wa=${wa}% hi=${hi}% si=${si}%"
# 负载
echo -e "\n===== 负载平均值 ====="
read -r load1 load5 load15 < <(uptime | awk -F'load average:' '{gsub(/,/,"",$2); print $2; gsub(/,/,"",$3); print $3; gsub(/,/,"",$4); print $4}')
echo "1min=${load1} 5min=${load5} 15min=${load15}"
# 内存
echo -e "\n===== 内存与交换 ====="
free -h | awk '/Mem:/ {printf "总量=%s 已用=%s 可用=%s 缓存=%s\n",$2,$3,$7,$6}'
swapon -s | awk 'NR>1 {printf "交换: %s 大小=%s 已用=%s\n",$1,$2,$3}'
# 磁盘 I/O
echo -e "\n===== 磁盘 I/O ====="
iostat -x 1 2 | awk '
BEGIN {first=1}
/Device/ {if (!first) print ""; first=0; printf "%-10s %8s %8s %8s %8s %8s\n","设备","rrqm/s","wrqm/s","r/s","w/s","%util"}
$1 !~ /Device/ && $1 ~ /^[a-z]+/ {printf "%-10s %8.1f %8.1f %8.1f %8.1f %8.1f\n",$1,$2,$3,$4,$5,$14}'
# 磁盘使用
echo -e "\n===== 磁盘使用率 ====="
df -h | awk '$NF=="/"{printf "根分区: 已用=%s 可用=%s 使用率=%s\n",$3,$4,$5}'
# 网络接口
echo -e "\n===== 网络接口 ====="
ip -4 -o addr show | awk '{printf "接口: %s 地址: %s\n",$2,$4}'
# 网络连接
echo -e "\n===== 网络连接 ====="
ss -s | head -n 1
# 可选:按进程查看占用
echo -e "\n===== 占用最高的 5 个进程(CPU) ====="
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head -n 6
三 进阶可视化与告警
- 终端与 Web 工具
- 终端一体化:glances(支持客户端/服务器模式)、nmon
- 进程与 I/O:htop、iotop
- 网络:iftop(按连接带宽)、nethogs(按进程带宽)、vnstat(按日/月流量统计)
- 平台化监控
- 开源平台:Zabbix、Nagios、Cacti(适合多主机、图形化与告警)
以上工具便于长期观测、图形展示与阈值告警,适合生产环境落地。
- 开源平台:Zabbix、Nagios、Cacti(适合多主机、图形化与告警)
四 面向 FetchLinux 的排查与监控
- 服务与日志
- 查看服务状态:systemctl status fetchlinux.service
- 实时日志:journalctl -u fetchlinux.service -f
- 内核与启动信息:dmesg | grep -i fetchlinux
- 配置与依赖
- 校验配置:cat /etc/fetchlinux/config.conf
- 依赖与动态库:ldd /usr/bin/fetchlinux(路径按实际调整)
- 连通性与调试
- 连通性:ping、curl -I http://
/ 、traceroute - 调试模式:如支持,启用 fetchlinux --debug 获取更详细输出
- 连通性:ping、curl -I http://
- 变更回滚
- 若近期变更引发异常,优先尝试回滚到上一个稳定版本或配置
以上流程覆盖服务状态核验、日志定位、网络连通与配置/依赖检查,适合定位 FetchLinux 运行期问题。
- 若近期变更引发异常,优先尝试回滚到上一个稳定版本或配置
以上就是关于“Linux FetchLinux如何监控系统状态”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm