跳转至

19. 硬盘监控

本章节指导在 RHEL 9(主机名 LinuxDC)上使用 SecureCRT 配置硬盘监控,配合 SecureFX 传输监控日志。内容涵盖磁盘健康检查(smartmontools)、性能监控(sysstat)、第三方工具(HDSentinel)以及 Prometheus 集成,以监控磁盘状态和性能为例,全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 LinuxDC 环境中测试,确保实验一致性。


19.1 前提条件

  • RHEL 9 已安装(参考第 1 章),主机名设置为 LinuxDC
  • 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 9 章)。
  • 使用 SecureFX 传输文件(SFTP 协议)。
  • 具有 root 或 sudo 权限。
  • 系统已订阅并启用 RHEL 和 EPEL 仓库(参考第 2 和第 5 章)。
  • 防火墙和 SELinux 启用(参考第 12 章)。
  • 网络连接正常,时间同步配置完成(参考第 4 章)。
  • 磁盘设备(如 /dev/sda)支持 SMART(验证:smartctl --scan)。

💡 提示:硬盘监控应结合警报系统,定期检查以防数据丢失。在 RHEL 10 中,监控工具如 smartmontools 支持更多 NVMe SSD 指标和自动化健康报告,提升预测性维护。


19.2 硬盘监控配置

19.2.1 磁盘健康检查(smartmontools)

  • 安装 smartmontools:

    dnf install -y smartmontools  # 安装 SMART 工具
    systemctl enable --now smartd  # 启用并启动 smartd 服务
    

  • 检查磁盘健康:

    smartctl -i /dev/sda  # 查看磁盘信息
    smartctl -H /dev/sda  # 检查整体健康(PASSED/FAILED)
    smartctl -A /dev/sda  # 查看属性(如温度、通电时间)
    smartctl -t long /dev/sda  # 启动长测试(需数小时)
    smartctl -l selftest /dev/sda  # 查看测试结果
    

🧠 知识点:SMART 属性包括 Reallocated_Sector_Ct(坏扇区)和 Temperature_Celsius。配置 /etc/smartd.conf 自定义监控。

检查点smartctl -H /dev/sda 输出 PASSED。

19.2.2 性能监控(sysstat)

  • 安装 sysstat:

    dnf install -y sysstat  # 安装 sysstat 工具
    systemctl enable --now sysstat  # 启用并启动 sysstat 服务
    

  • 配置历史记录(30 天):

    vim /etc/sysconfig/sysstat
    # 修改:
    HISTORY=30
    systemctl restart sysstat
    

  • 监控 I/O 性能:

    iostat -dx 5  # 每 5 秒显示扩展磁盘统计
    sar -d -f /var/log/sa/sa<day>  # 查看历史磁盘数据
    

💡 提示:sysstat 收集每日数据(/var/log/sa/)。查看 CPU/内存:sar -usar -r

19.2.3 第三方工具(HDSentinel)

  • 安装 HDSentinel(社区版):

    dnf install -y https://www.hdsentinel.com/hdslin/hdsentinel-017-x64.rpm  # 下载并安装 RPM(调整版本)
    

  • 运行检查:

    hdsentinel  # 查看所有磁盘状态
    hdsentinel /dev/sda  # 检查特定磁盘
    

🧠 知识点:HDSentinel 提供图形化健康评分和温度监控。配置 cron 定期运行:crontab -e 添加 0 * * * * hdsentinel > /var/log/disk-health.log

检查点:输出显示 Health: 100%,无警报。

19.2.4 Prometheus 集成

  • 安装 node-exporter:

    dnf install -y golang-github-prometheus-node-exporter  # 安装 node-exporter
    systemctl enable --now node-exporter  # 启用并启动
    

  • 配置防火墙:

    firewall-cmd --permanent --add-port=9100/tcp
    firewall-cmd --reload
    

  • 配置 Prometheus 告警(示例规则):

    vim /etc/prometheus/alert.rules.yml
    # 添加:
    groups:
    - name: disk_alerts
      rules:
      - alert: HighDiskUtilization
        expr: 100 - (node_filesystem_avail_bytes{mountpoint="/"} * 100 / node_filesystem_size_bytes{mountpoint="/"}) > 80
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: "High Disk Usage on {{ $labels.instance }}"
    

  • 重启 Prometheus(假设已安装):

    systemctl restart prometheus
    

💡 提示:访问 http://localhost:9100/metrics 查看指标。在 RHEL 10 中,Prometheus 支持更多内置磁盘指标,如 RAID 状态监控。

检查点curl http://localhost:9100/metrics | grep node_disk 显示磁盘指标。


19.3 常见问题与排查

🔍 故障排查

  • 问题 1:SMART 测试失败
    解决:检查磁盘类型(smartctl -i),权限(sudo),日志(journalctl -u smartd)。

  • 问题 2:sysstat 无数据
    解决:确认服务(systemctl status sysstat),历史文件(ls /var/log/sa/)。

  • 问题 3:HDSentinel 未检测磁盘
    解决:验证安装,运行以 root(sudo hdsentinel)。

  • 问题 4:Prometheus 无指标
    解决:检查端口(ss -tuln | grep 9100),防火墙(firewall-cmd --list-ports)。

  • 生成 SOS 报告sos report --only-plugins=block,scsi 用于诊断。


19.4 实践任务

  1. 使用 SecureCRT 通过 SSH(端口 2222)登录 LinuxDC,安装 smartmontools 并检查 /dev/sda 健康状态。
  2. 配置 sysstat 记录 30 天磁盘性能数据。
  3. 安装 HDSentinel 并验证磁盘状态。
  4. 配置 Prometheus node-exporter 并检查指标。

检查点:健康检查 PASSED,历史数据生成,指标可用。


19.5 自测问题

  • 问题 1:如何查看磁盘通电时间?
    答案smartctl -A /dev/sda | grep Power_On_Hours

  • 问题 2:如何检查磁盘 I/O 性能?
    答案iostat -dx 5

  • 问题 3:如何配置 Prometheus 磁盘告警?
    答案:编辑 /etc/prometheus/alert.rules.yml,添加 HighDiskUtilization 规则。


🧾 总结
本章完整介绍了 RHEL 9 硬盘监控的配置,包括健康检查、性能监控和集成工具的使用。这些技能确保存储可靠性,与备份恢复和日志分析相结合,形成完整的数据管理架构。