引言

​ 周末因为某些不可描述的原因,机房断电了;导致机房的小UPS撑了2个半小时才耗尽电量.所以我们需要获取UPS的实时状态并集成到Prometheus的SNMP监控采集

采集架构图
image-20250401145400366.png

采集思路

1.获取UPS的MIB文件

2.内网UPS开放public_v2并通过MIB实时获取

3.内网snmp_exporter获取数据

4.开放公网Nat转换

5.prometheus集成内网的SNMP

6.alertmanager 配置告警规则

实现步骤

1.访问UPS SNMP配置页面并使用snmpv2
image-20250401142734236.png

2.通过MIB Brower获取MIB的OID[MIB Brower工具下载链接放在文末]
image-20250401142925473.png
image-20250401143026111.png

image-20250401143316421.png

  1. snmp_exporter配置

    github 下载 snmp_exporter-0.27.0.linux-amd64.tar.gz
    配置snmp.yml
    改完之后启动
    nohup ./snmp_exporter --config.file=snmp.yml &
    默认端口9116,如果浏览器访问不了判断一下是不是服务器防火墙问题或者看看是否存在启动程序报错
    
    modules:
      ups:
        walk:
          -   {{ups的根OID 复制除最前面的小数点的}}
        metrics:
        - name: upsIdentManufacturer  # UPS厂商
          oid: {{厂商的OID}} 
          type: DisplayString  #string 类型,但是因为PRometheus的机制 这个值会体现在tag上面 值永远是1
          help: "UPS manufacturer information"
        - name: upsBatteryStatus # UPS 电池状态
          oid:  {{电池的OID}} 
          type: gauge  # 状态类型
          help: "UPS 电池状态 INTEGER {other(1),none(2),normal(3),bypass(4),battery(5),booster(6),reducer(7)}"
    auths:
      public_v2:
        version: 2
        community: {{配置的团体名称}}
    

image-20250401144612064.png
默认是这样的访问页面 在target Auth(不用改) Module 就是配置文件的UPS
image-20250401144739663.png

当你SUbmit的时候就会看到这个信息了

4.开放公网Nat转换

这个地方就是在路由器或者防火墙开放端口了建议不要全网段放开,合理开放白名单

5.prometheus集成内网的SNMP

prometheus的服务端配置集成
核心是下面一段 根据实际情况更改
改完之后重新或者热加载PRometheus服务端
  - job_name: "ups_snmp"
    static_configs:
    - targets: ['{{NAT转换的公网IP:端口}}']
      labels:
        group: ups_snmp #label自定义即可
    metrics_path: '/snmp' # 固定的
    params:
      target: ["{{内网的UPSIP}}"]
      module: [ups]  # 与snmpyml中的模块名一致

6.alertmanager 配置告警规则 ups.rules

groups:
  - name: ups_alerts
    rules:
    - alert: UpsBatteryStatusWarning
      expr: upsBatteryStatus != 3
      for: 2s  # 如果状态持续5分钟不为2,才触发报警
      labels:
        severity: critical
      annotations:
        summary: "UPS battery status is not normal"
        description: "Ups供电异常!!"

Tips:MIB Browser工具网站下载
https://www.ireasoning.com/mibbrowser.shtml