📁 文件列表

通过WebHooks发送告警信息至SNMP平台

通过 WebHook 发送告警信息至 SNMP 平台

适用场景

一些客户要求备份软件产生的告警(alert)发送至其自己的 SNMP 平台,由此迪备实现了 Webhook 服务端(snmp-webhookd),接收 DBackup3 Webhook 事件,并转化为 SNMP 消息功能。
目前,暂只支持发送作业失败、存储空间告警、池复制作业失败三种类型的告警信息。

部署过程

  1. 下载镜像。镜像下载地址如下:
    ftp://192.168.88.10/product_release/scutech/dbackup/8.0.33656/webhooks/webhooks_snmp
    
  2. 在迪备服务端,导入docker镜像。如:
    docker load -i dingjiasnmp_releaseon211201.tar
    

    导入完成后,可通过以下命令查看镜像
    docker images
    
  3. 运行容器
    docker run -d --restart=always --name dingjiasnmp_webhook -p 50401:50401 -p 162:162 dingjiasnmp:releaseon211201
    

    可通过以下命令查看容器
    docker ps
    
  4. 修改Docker配置使snmp_ip指向snmp平台
    查看配置中映射目录:
    docker container inspect dingjiasnmp_webhook
    

    输出结果:
            "Mounts": [
                {
                    "Type": "volume",
                    "Name": "9d61b6524136a1001431a26f3a7d58a8d1f9e61aa4cd60a15c3adfccbaa19f2b",
                    "Source": "/var/lib/docker/volumes/9d61b6524136a1001431a26f3a7d58a8d1f9e61aa4cd60a15c3adfccbaa19f2b/_data",
                    "Destination": "/etc/opt/dbackup3-webhook-alert",
                    "Driver": "local",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "" 
                },
                {
                    "Type": "volume",
                    "Name": "34be841acec4e1861d4dbb6d90d0e8a937e48e3d057deb4f58ee4c3718d26ac1",
                    "Source": "/var/lib/docker/volumes/34be841acec4e1861d4dbb6d90d0e8a937e48e3d057deb4f58ee4c3718d26ac1/_data",
                    "Destination": "/var/lib/dbackup3-webhook-alert",
                    "Driver": "local",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "" 
                },
                {
                    "Type": "volume",
                    "Name": "6ec6bb2c8f8a92c9a62db03646facc222cdb2c494bf3645db55fb54e53311afd",
                    "Source": "/var/lib/docker/volumes/6ec6bb2c8f8a92c9a62db03646facc222cdb2c494bf3645db55fb54e53311afd/_data",
                    "Destination": "/var/log/dbackup3-webhook-alert",
                    "Driver": "local",
                    "Mode": "",
                    "RW": true,
                    "Propagation": "" 
                }
    

    修改 /etc/opt/dbackup3-webhook-alert 对应的Source路径的config.ini文件
    vi /var/lib/docker/volumes/9d61b6524136a1001431a26f3a7d58a8d1f9e61aa4cd60a15c3adfccbaa19f2b/_data/config.ini
    ...
    # 将[snmp]下的snmp_ip的地址修改为实际snmp平台所在的地址
    snmp_ip=192.168.17.226
    
    # 并记录api_key,后续配置会用到
    api_key = 19c9525118424e9c9c152d2406385787
    
  5. 修改完成后,重启Docker容器
    docker restart dingjiasnmp_webhook
    
  6. 迪备配置WebHooks
    URL:http://127.0.0.1:50401/api/v1/alerts
    令牌:19c9525118424e9c9c152d2406385787(config.ini 文件所记录的)
    下方事件中找到警报并勾选 添加警报 ,最后点击 添加WebHook 按钮提交

  7. 在SNMP平台,导入dbackup.mib文件(内部测试使用MIB Browser模拟snmp平台,直接使用OpenStack上的snmp镜像可省略此导入步骤)。然后在菜单打开接收器:Tools->Trap Receiver

  8. 验证:进入容器,使用自带的function_tests.py触发报警,在snmp平台中可收到告警信息
    # 进入容器
    docker exec -it dingjiasnmp_webhook bash
    # 容器中执行脚本触发报警
    python3 /opt/dbackup3-webhook-alert/tests/functional_tests.py
    

    打开SNMP平台,可以看到刚刚触发的警报信息
  9. 至此,通过WebHooks发送告警信息至SNMP平台的环境部署完毕

备注

  1. 迪备触发告警信息,可以先创建txt文件,在周期备份前删除文件,即可触发迪备的作业失败告警,验证时可使用此方法。
  2. 若snmp未收到信息,请检查防火墙是否关闭
  3. snmp平台,内部测试环境使用微软的MIB Browser搭建。已创建OpenStack镜像:Windows2016_x64-SNMP-MIB_Browser 模拟SNMP平台搭建记录如下:

由 nginx autoindex 提供支持