温馨提示×

debian分卷怎样监控状态

小樊
39
2025-12-26 12:58:03
栏目: 智能运维

Debian 分卷状态监控实用指南

一 快速巡检命令

  • 查看各分卷容量与挂载点使用情况
    • 命令:df -h
    • 关注字段:Filesystem、Size、Used、Avail、Use%、Mounted on
    • 用途:快速发现可用空间不足异常挂载的分卷
  • 查看目录占用,定位大文件/目录
    • 命令:du -sh /var/* | sort -h
    • 用途:找出占用空间最多的目录,便于清理或扩容
  • 查看块设备与分区布局
    • 命令:lsblk -f
    • 用途:核对分区、文件系统类型、UUID、挂载点是否一致
  • 查看 LVM 逻辑卷与卷组使用
    • 命令:sudo lvssudo vgs
    • 用途:监控LV Size、Attr、VG Free等,判断是否需扩容或迁移
    • 提示:若使用 LVM,优先用 LVM 命令核对容量与使用率

二 持续监控与告警

  • 终端实时资源与 I/O
    • 工具:htop(进程)、vmstat 1 5(系统)、iostat -xz 1(磁盘 I/O)
    • 用途:观察CPU、内存、I/O 等待等是否异常,辅助判断分卷压力
  • 轻量综合监控
    • 工具:glances(终端/Web),netdata(实时 Web 仪表盘)
    • 用途:一站式查看CPU、内存、网络、磁盘等,并支持告警历史趋势
  • 企业级与可视化
    • 方案:Prometheus + node_exporter + Grafana
    • 用途:采集磁盘/分卷指标可视化,适合多机统一监控与长期趋势分析
    • 实践:在目标主机部署 node_exporter,Prometheus 配置抓取,Grafana 建立磁盘相关面板

三 日志与故障排查

  • 系统日志与内核消息
    • 命令:tail -f /var/log/syslogjournalctl -xedmesg -T
    • 用途:捕捉磁盘/文件系统错误、I/O 故障、服务异常等线索
  • 文件系统一致性检查
    • 命令:sudo fsck /dev/sdXN(离线执行)
    • 用途:在异常关机或文件系统报错时检查并修复
  • 服务与进程状态
    • 命令:systemctl status <service>ps auxtop
    • 用途:定位因磁盘满/只读导致的服务异常进程卡死
    • 建议:处理前先备份重要数据,避免数据丢失

四 自动化巡检脚本示例

  • 功能:检查根分区与 /var 使用率,超过阈值则输出告警并列出大目录
  • 使用:chmod +x check_fs.sh && ./check_fs.sh
#!/usr/bin/env bash
set -Eeuo pipefail

THRESHOLD=${1:-80}  # 默认阈值 80%
ALERT=0

echo "=== $(date) 分卷容量检查 ==="

# 检查挂载点使用率
for mp in / /var; do
  read -r fs size used avail pct mount <<< "$(df -h | awk -v m="$mp" '$6==m{print $1,$2,$3,$4,$5,$6; exit}')"
  pct_num=${pct%\%}
  printf "%-10s %8s %8s %8s %6s %s\n" "$fs" "$size" "$used" "$avail" "$pct" "$mount"
  if (( pct_num >= THRESHOLD )); then
    echo "  [WARN] $mount 使用率 ${pct_num}% ≥ ${THRESHOLD}%"
    ALERT=1
    echo "  大目录 TOP10(仅 $mount):"
    du -xh "$mount" 2>/dev/null | sort -hr | head -n 10 | sed 's/^/    /'
  fi
done

# LVM 使用率
if command -v lvs >/dev/null 2>&1; then
  echo
  echo "=== LVM 逻辑卷使用率 ==="
  sudo lvs --noheadings -o lv_name,vg_name,lv_size,data_percent | awk '$4+0>0 {printf "%-12s %-10s %8s %6s%%\n", $1, $2, $3, $4}'
fi

exit $ALERT

提示:可将脚本加入 cron(如每 5 分钟)并结合 mail 或企业告警通道发送通知,实现无人值守监控

0