首页主机资讯Linux FetchLinux如何监控系统状态

Linux FetchLinux如何监控系统状态

时间2025-11-25 17:34:03发布访客分类主机资讯浏览363
导读:Linux 系统状态监控实用指南 一 快速巡检命令 资源总览与负载 查看整体资源与负载:uptime、free -h、df -h、vmstat 1 5 CPU 与进程 实时进程与资源:top/htop 单核/多核占用快照:运行 t...

Linux 系统状态监控实用指南

一 快速巡检命令

  • 资源总览与负载
    • 查看整体资源与负载:uptimefree -hdf -hvmstat 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 -tulnpnetstat -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:htopiotop
    • 网络:iftop(按连接带宽)、nethogs(按进程带宽)、vnstat(按日/月流量统计)
  • 平台化监控
    • 开源平台:ZabbixNagiosCacti(适合多主机、图形化与告警)
      以上工具便于长期观测、图形展示与阈值告警,适合生产环境落地。

四 面向 FetchLinux 的排查与监控

  • 服务与日志
    • 查看服务状态:systemctl status fetchlinux.service
    • 实时日志:journalctl -u fetchlinux.service -f
    • 内核与启动信息:dmesg | grep -i fetchlinux
  • 配置与依赖
    • 校验配置:cat /etc/fetchlinux/config.conf
    • 依赖与动态库:ldd /usr/bin/fetchlinux(路径按实际调整)
  • 连通性与调试
    • 连通性:pingcurl -I http:///traceroute
    • 调试模式:如支持,启用 fetchlinux --debug 获取更详细输出
  • 变更回滚
    • 若近期变更引发异常,优先尝试回滚到上一个稳定版本或配置
      以上流程覆盖服务状态核验、日志定位、网络连通与配置/依赖检查,适合定位 FetchLinux 运行期问题。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux FetchLinux如何监控系统状态
本文地址: https://pptw.com/jishu/755748.html
Linux FetchLinux有哪些高级技巧 Linux FetchLinux有哪些插件

游客 回复需填写必要信息