Linux FetchLinux如何监控系统状态
导读:Linux 系统状态监控实用指南 一 快速巡检命令 资源总览与负载 查看整体资源与负载:uptime、free -h、df -h、vmstat 1 5 CPU 与进程 实时进程与资源:top/htop 单核/多核占用快照:运行 t...
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 获取更详细输出
- 变更回滚
- 若近期变更引发异常,优先尝试回滚到上一个稳定版本或配置
以上流程覆盖服务状态核验、日志定位、网络连通与配置/依赖检查,适合定位 FetchLinux 运行期问题。
- 若近期变更引发异常,优先尝试回滚到上一个稳定版本或配置
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux FetchLinux如何监控系统状态
本文地址: https://pptw.com/jishu/755748.html
