【FFmpeg 智慧园区场景应用】4.企业微信 / 钉钉机器人告警配置(替换邮件告警)

企业微信/钉钉机器人告警配置(替换邮件告警)

以下提供 企业微信/钉钉机器人告警 的完整配置流程,含机器人创建、Shell脚本改造、定时任务设置,适配园区运维实时接收存储告警,操作简单可直接复用。


一、企业微信群机器人配置(推荐,无安全关键词限制)

1. 创建机器人并获取Webhook

  1. 打开企业微信群,点击右上角 群设置群机器人添加机器人
  2. 选择 新建一个机器人 ,输入名称(如"园区存储告警机器人"),点击 添加
  3. 复制生成的Webhook地址(格式:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx),保存备用。
  4. (可选)设置IP白名单(群机器人→配置→IP白名单),填入服务器公网IP,提升安全性。

2. Shell脚本改造(替换邮件告警为企微机器人)

修改 disk_monitor_alert.sh 中告警配置,新增企微发送函数:

bash 复制代码
#!/bin/bash
# 磁盘监控告警脚本(企业微信机器人版)
# 核心配置(重点修改)
MONITOR_DIR="/data/park/record"
ALERT_THRESHOLD=85
LOG_FILE="/data/park/logs/disk_monitor.log"
WECHAT_WEBHOOK="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的企微机器人key"  # 替换为实际Webhook
ENABLE_WECHAT_ALERT=1  # 启用企微告警:1=启用,0=禁用

# 新增:发送企微告警函数
send_wechat_alert() {
    local alert_msg=$1
    # 构造企微Markdown消息体
    local payload=$(cat <<EOF
{
    "msgtype": "markdown",
    "markdown": {
        "content": "### ⚠️ 智慧园区存储告警\n\n**时间**:$(date +'%Y-%m-%d %H:%M:%S')\n**磁盘分区**:${DISK_PART}\n**总空间**:${DISK_TOTAL}\n**剩余空间**:${DISK_FREE}\n**使用率**:${DISK_USAGE}%\n**阈值**:${ALERT_THRESHOLD}%\n**影响**:可能导致录制失败、AI预处理中断,请及时清理!"
    }
}
EOF
)
    # 发送POST请求
    curl -s -X POST -H "Content-Type: application/json" -d "${payload}" ${WECHAT_WEBHOOK} >> ${LOG_FILE} 2>&1
    echo "$(date +'%Y-%m-%d %H:%M:%S') - 企微告警已发送至群聊" >> ${LOG_FILE}
}

# 以下为原有逻辑,仅修改告警触发部分
# ...(磁盘使用率获取等原有代码不变)

# 触发告警时调用企微函数
if [ ${DISK_USAGE} -ge ${ALERT_THRESHOLD} ]; then
    alert_msg="【告警】磁盘使用率超过阈值..."
    # 写入告警日志(不变)
    # ...
    # 调用企微告警(替换邮件)
    if [ ${ENABLE_WECHAT_ALERT} -eq 1 ]; then
        send_wechat_alert "${alert_msg}"
    fi
fi

3. 测试与验证

  1. 赋予权限:chmod +x disk_monitor_alert.sh
  2. 手动执行测试:./disk_monitor_alert.sh,查看企微群是否收到告警。
  3. 查看日志:tail -f /data/park/logs/disk_monitor.log,确认发送状态。

二、钉钉群机器人配置(备选,需设置关键词)

1. 创建机器人并获取Webhook

  1. 打开钉钉群,点击右上角 群设置智能群助手添加机器人自定义机器人
  2. 输入名称,安全设置选择 自定义关键词 ,添加关键词(如"告警""园区"),点击 完成
  3. 复制Webhook地址(格式:https://oapi.dingtalk.com/robot/send?access_token=xxx),保存备用。

2. Shell脚本改造(钉钉版)

修改 disk_monitor_alert.sh,替换为钉钉发送函数:

bash 复制代码
#!/bin/bash
# 磁盘监控告警脚本(钉钉机器人版)
# 核心配置
MONITOR_DIR="/data/park/record"
ALERT_THRESHOLD=85
LOG_FILE="/data/park/logs/disk_monitor.log"
DINGTALK_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=你的钉钉机器人token"  # 替换为实际Webhook
ENABLE_DINGTALK_ALERT=1  # 启用钉钉告警:1=启用,0=禁用

# 新增:发送钉钉告警函数
send_dingtalk_alert() {
    local alert_msg=$1
    # 构造钉钉Markdown消息体(必须包含安全关键词)
    local payload=$(cat <<EOF
{
    "msgtype": "markdown",
    "markdown": {
        "title": "园区存储告警",
        "text": "### ⚠️ 智慧园区存储告警(关键词:告警)\n\n**时间**:$(date +'%Y-%m-%d %H:%M:%S')\n**磁盘分区**:${DISK_PART}\n**总空间**:${DISK_TOTAL}\n**剩余空间**:${DISK_FREE}\n**使用率**:${DISK_USAGE}%\n**阈值**:${ALERT_THRESHOLD}%"
    }
}
EOF
)
    curl -s -X POST -H "Content-Type: application/json" -d "${payload}" ${DINGTALK_WEBHOOK} >> ${LOG_FILE} 2>&1
    echo "$(date +'%Y-%m-%d %H:%M:%S') - 钉钉告警已发送至群聊" >> ${LOG_FILE}
}

# 触发告警时调用钉钉函数
if [ ${DISK_USAGE} -ge ${ALERT_THRESHOLD} ]; then
    # ...(日志记录不变)
    if [ ${ENABLE_DINGTALK_ALERT} -eq 1 ]; then
        send_dingtalk_alert "${alert_msg}"
    fi
fi

三、关键配置与测试要点

1. 依赖与权限

  • 确保服务器安装 curlsudo apt install curl/sudo yum install curl)。
  • 脚本执行用户需有网络访问权限(可访问企微/钉钉API)。
  • 测试网络连通性:curl -I ${WECHAT_WEBHOOK},返回200状态码即正常。

2. 告警效果验证

  1. 手动触发测试(临时修改阈值为1%):

    bash 复制代码
    ALERT_THRESHOLD=1 ./disk_monitor_alert.sh
  2. 检查群聊是否收到Markdown格式告警,日志是否记录发送成功。

3. 定时任务保持不变

bash 复制代码
# 每30分钟执行一次磁盘监控
*/30 * * * * /data/park/scripts/disk_monitor_alert.sh

四、扩展与优化

  1. 告警降噪:新增"静默周期"(如1小时内只告警1次),避免重复通知。
  2. 多渠道联动:同时启用企微+钉钉告警,提升通知可靠性。
  3. 恢复通知:新增磁盘使用率降至阈值以下时的"恢复通知",便于运维确认问题解决。
相关推荐
源雀数智2 天前
源雀AI SCRM开源版重磅升级:AI智能标签库
人工智能·企业微信·流量运营
梦想的旅途22 天前
企业微信API:外部群自动化推送实战指南
大数据·机器人·自动化·企业微信·rpa
vx-bot5556662 天前
企业微信ipad协议的事件驱动架构与实时监听实践
架构·企业微信·ipad
天空属于哈夫克32 天前
基于 Webhook 的企业微信外部群自动化推送集成
运维·自动化·企业微信
JZC_xiaozhong2 天前
企业微信对接泛微OA:实现审批进度实时同步与自动催办
企业微信·etl工程师·泛微oa·数据集成与应用集成·业务流程管理系统·异构系统集成·跨系统流程管理
活捉一个坏小孩3 天前
Nvidia FFmpeg安装说明
ffmpeg
WF_YL3 天前
如何删除 Oracle 过期 key / 数据,删除目的的key
ffmpeg
天空属于哈夫克33 天前
Java 开发|企微外部群主动发送小程序消息实战
开发语言·python·小程序·自动化·企业微信·rpa
浩瀚之水_csdn3 天前
avcodec_find_decoder函数详解
ffmpeg
vx-bot5556663 天前
企业微信ipad协议的标签管理机制与自动化打标实践
自动化·企业微信·ipad