Skip to content

存储监控代理设置

sonmi-stor-monitor 是专门为 SonmiHPC 开发的一个集群存储监控代理。该程序可以以极低的资源占用运行在存储节点上,通过与底层固件交互实现对RAID及物理磁盘的故障感知,同时原生集成了OS挂载点容量与ZFS存储池健康度巡检。

核心特性

  • 全栈监控边界: 从底层 PCIe 阵列卡硬件,一路贯穿至操作系统层面的文件系统容量 (Filesystem) 与逻辑卷管理 (ZFS Pool),实现统一聚合监控。
  • 带自愈能力的防暴刷机制: 内置智能状态机,无论是容量超阈值还是 ZFS 降级,仅在“故障发生”与“故障恢复”的边缘触发两次告警,彻底杜绝疲劳轰炸与告警风暴。
  • 无侵入式边缘代理: 作为独立的 Sidecar/Daemon 运行,容量抓取采用微秒级底层系统调用,与 HPC 客户算力完全隔离。包含严格的 Systemd CGroup 资源限制与只读沙箱保护。
  • 智能增量采集: 告别传统的定时全量拉取。内置本地持久化 Checkpoint 机制,支持异构数据结构(序列号、文件系统状态、ZFS 状态)的断点续传。
  • 多集群身份动态嗅探: 静态配置集群名称,动态嗅探操作系统主机名,跨机房部署仅需同一份配置,告警精准定位到机柜与节点。
  • 全渠道告警路由: 内置高并发分发器,支持 gRPC(集中管控)、Email(邮件抄送)、Aliyun SMS(紧急短信)以及 MOTD(本地终端极客弹窗)的多路并发路由。

安装与配置

新版本的SonmiHPC镜像自动集成了该程序的rpm包,集群部署完成直接进行配置启动即可。既有的集群可以通过额外安装rpm包来使用该程序。

shell
rpm -ivh sonmi-stor-monitor-1.0.0-1.el10.x86_64.rpm
rpm -ivh sonmi-stor-monitor-1.0.0-1.el10.x86_64.rpm

主要的配置文件路径为 /etc/sonmi/stor-monitor.yaml ,主要的配置项如下:

agent:
  data_dir: "/var/lib/sonmi/stor-monitor"
  log_level: "info"
  cluster_name: "ExampleCluster"      # 静态配置:客户/集群标识
  # node_name: ""                     # 留空:程序将自动抓取系统 Hostname 作为节点名

collector:
  enabled: true                       # 是否开启raid卡硬件故障监测,没有配置raid卡的设备请设置为false
  storcli_path: "/opt/MegaRAID/storcli/storcli64"
  controllers: ["/c0"]                # 支持多卡,如 ["/c0", "/c1"]
  event_interval: 60                  # 增量日志抓取频率(秒)
  status_interval: 120                # 全量状态轮询频率(秒)

evaluator:
  min_alert_level: "CRITICAL"         # 触发告警的最低阈值 (WARNING/CRITICAL/FATAL)
  ignore_bbu: true                    # true: 屏蔽无电池节点的 BBU 缺失/禁用告警

filesystem:
  enabled: true                       # OS 层面挂载点容量监控总开关
  check_interval: 300                 # 检查间隔(秒),建议 300s 避免过度调用系统底座
  mounts:
    - path: "/"                       # 监控根分区
      threshold_percent: 85           # 达 85% 触发告警
    - path: "/share"                  # 监控 HPC 业务数据盘
      threshold_percent: 90           # 达 90% 触发告警

zfs:
  enabled: false                      # ZFS 存储池健康监控总开关,如果设备使用的ZFS存储请设置为true
  zpool_path: "/sbin/zpool"           # zpool 驱动工具路径
  check_interval: 60                  # 状态轮询频率(秒)

notifier:
  enabled_channels: ["grpc", "email", "motd", "aliyun_sms"] # 按需启用通知通道,正常不接入主控中心可以去掉grpc通知
  cooldown_seconds: 300               # 全局防暴刷冷却时间

  grpc:
    target_addr: "192.168.10.100:50051"

  email:
    smtp_host: "smtp.exmail.qq.com"
    smtp_port: 465                    # 465 端口自动启用隐式 TLS
    username: "[email protected]"
    password: "your-auth-password"
    from: "[email protected]"
    to: ["[email protected]", "[email protected]"]

  motd:
    mode: "append"                    # 仅追加文件,不使用 wall 弹窗打扰用户
    motd_path: "/etc/motd.d/sonmi-stor-alert"

  aliyun_sms:
    access_key_id: "LTAI5txxxxxxxxxxxxxxxx"
    access_key_secret: "yOxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    sign_name: "sonmi"
    template_code: "SMS_123456789"
    phone_numbers: ["13800138000"]
agent:
  data_dir: "/var/lib/sonmi/stor-monitor"
  log_level: "info"
  cluster_name: "ExampleCluster"      # 静态配置:客户/集群标识
  # node_name: ""                     # 留空:程序将自动抓取系统 Hostname 作为节点名

collector:
  enabled: true                       # 是否开启raid卡硬件故障监测,没有配置raid卡的设备请设置为false
  storcli_path: "/opt/MegaRAID/storcli/storcli64"
  controllers: ["/c0"]                # 支持多卡,如 ["/c0", "/c1"]
  event_interval: 60                  # 增量日志抓取频率(秒)
  status_interval: 120                # 全量状态轮询频率(秒)

evaluator:
  min_alert_level: "CRITICAL"         # 触发告警的最低阈值 (WARNING/CRITICAL/FATAL)
  ignore_bbu: true                    # true: 屏蔽无电池节点的 BBU 缺失/禁用告警

filesystem:
  enabled: true                       # OS 层面挂载点容量监控总开关
  check_interval: 300                 # 检查间隔(秒),建议 300s 避免过度调用系统底座
  mounts:
    - path: "/"                       # 监控根分区
      threshold_percent: 85           # 达 85% 触发告警
    - path: "/share"                  # 监控 HPC 业务数据盘
      threshold_percent: 90           # 达 90% 触发告警

zfs:
  enabled: false                      # ZFS 存储池健康监控总开关,如果设备使用的ZFS存储请设置为true
  zpool_path: "/sbin/zpool"           # zpool 驱动工具路径
  check_interval: 60                  # 状态轮询频率(秒)

notifier:
  enabled_channels: ["grpc", "email", "motd", "aliyun_sms"] # 按需启用通知通道,正常不接入主控中心可以去掉grpc通知
  cooldown_seconds: 300               # 全局防暴刷冷却时间

  grpc:
    target_addr: "192.168.10.100:50051"

  email:
    smtp_host: "smtp.exmail.qq.com"
    smtp_port: 465                    # 465 端口自动启用隐式 TLS
    username: "[email protected]"
    password: "your-auth-password"
    from: "[email protected]"
    to: ["[email protected]", "[email protected]"]

  motd:
    mode: "append"                    # 仅追加文件,不使用 wall 弹窗打扰用户
    motd_path: "/etc/motd.d/sonmi-stor-alert"

  aliyun_sms:
    access_key_id: "LTAI5txxxxxxxxxxxxxxxx"
    access_key_secret: "yOxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    sign_name: "sonmi"
    template_code: "SMS_123456789"
    phone_numbers: ["13800138000"]

修改完成后通过下面的命令重启程序即可:

shell
systemctl restart stor-monitor
systemctl restart stor-monitor

程序的日志文件路径为:/var/log/sonmihpc/stor-monitor.log

motd通知默认路径为:/etc/motd.d/sonmi-stor-alert

当发生报警后,处理完毕就可以删除motd通知文件。

本站内容未经授权禁止转载
联系邮箱: [email protected]