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 -u、sar -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 实践任务
- 使用 SecureCRT 通过 SSH(端口 2222)登录
LinuxDC,安装smartmontools并检查/dev/sda健康状态。 - 配置
sysstat记录 30 天磁盘性能数据。 - 安装 HDSentinel 并验证磁盘状态。
- 配置 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 硬盘监控的配置,包括健康检查、性能监控和集成工具的使用。这些技能确保存储可靠性,与备份恢复和日志分析相结合,形成完整的数据管理架构。