栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Zabbix5系列-钉钉告警(Webhook) (十九)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Zabbix5系列-钉钉告警(Webhook) (十九)

Zabbix5系列-钉钉告警-Webhook
        • 一、参考
        • 二 、配置钉钉群机器人
        • 三、创建报警媒介类型
        • 四、测试
        • 五、配置钉钉告警
        • 六、创建动作

一、参考
  • Zabbix5系列
  • Zabbix5专栏
  • Centos7安装Docker
  • Centos8安装Docker
  • Debian10安装Docker
  • Zabbix5系列-Docker安装zabbix5.4 (一)
  • Zabbix5系列-监控华为、H3C交换机(snmpv2c/snmpv3/snmptrap) (二)
  • Zabbix5系列-监控Windows主机 (三)
  • Zabbix5系列-监控Linux主机 (四)
  • Zabbix5系列-Linux/Windows磁盘SMART监控 (五)
  • Zabbix5系列-监控惠普服务器iLO管理口 (六)
  • Zabbix5系列-监控海康威视摄像头 (七)
  • Zabbix5系列-使用SNMP监控Linux (八)
  • Zabbix5系列-监控docker (九)
  • Zabbix5系列-监控mysql(5.7/5.8/mariadb) (十)
  • Zabbix5系列-监控redis (十一)
  • Zabbix5系列-监控nginx (十二)
  • Zabbix5系列-制作拓扑图 (十三)
  • Zabbix5系列-声音告警、邮件告警 (十四)
  • Zabbix5系列-钉钉告警 (十五)
  • Zabbix5系列-创建自动发现模板 (十六)
  • Zabbix5系列-接入Grafana面板 (十七)
  • Zabbix5系列-报表工具ZbxTable (十八)
  • 用户手册: https://www.zabbix.com/documentation/current/zh/manual
  • 官方模板参考: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates?at=refs%2Fheads%2Frelease%2F5.4
  • Zabbix模板库: https://share.zabbix.com
  • Zabbix容器: https://hub.docker.com/u/zabbix
  • Zabbix Agent下载页: https://www.zabbix.com/cn/download_agents
  • MIB浏览器下载: http://www.ireasoning.com/download.shtml
  • 华为MIB查询: https://support.huawei.com/mibtoolweb/enterpriseMibInfo/zh
  • 华为 VRP V200R021C00SPC100 MIB文件: https://support.huawei.com/enterprise/zh/software/253350229-ESW2000397776
  • H3C Comware MIB文件: https://www.h3c.com/cn/d_200905/635750_30003_0.htm
  • 华为图标 百度云盘 提取码mzhx: https://pan.baidu.com/s/1S6p96p3gNrv78Z2yJxrhaQ
  • zabbix报表工具: https://zbxtable.cactifans.com/
  • Grafana面板: https://grafana.com/docs/grafana/latest/installation/docker/
  • Grafana-cn面板: https://hub.docker.com/r/w958660278/grafana-cn
二 、配置钉钉群机器人

2.1 点击群的设置按钮

2.2 点击智能群助手

2.3 点击添加机器人

2.4 点添加

2.5 选择自定义机器人

2.6 点添加

2.7 配置名称和安全设置 具体安全设置参考 钉钉机器人自定义机器人安全设置

2.8 记录下webhook地址

三、创建报警媒介类型

3.1 管理 - 报警媒介类型 - 创建媒体类型

3.2 配置媒介参数

Webhook脚本:

var Ding = { 
    url: null, //带access_token的URL
    at_all: true, //是否@所有人
    message: null, //消息内容
    user_info: null, //@的用户
    proxy: null,  //代理
    sendMessage: function(){ 
        // 提交数据
        var params = {
            msgtype: 'text',
            text: {
                content: Ding.message
            },
            at: {
                atMobiles: [
                    Ding.user_info,
                ],
                isAtAll: Ding.at_all
            }
        },
        data, //格式化后的提交数据
        response, //响应对象
        request = new HttpRequest(); //新建http请求
        
        if(Ding.proxy){ //判断代理
            request.setProxy(Ding.proxy);
        }
        request.addHeader('Content-Type: application/json; charset=UTF-8'); //添加http头

        // 格式化数据
        data = JSON.stringify(params);
        Zabbix.log(4, "url: " + Ding.url);
        Zabbix.log(4, "params: " + data);
        
        response = request.post(Ding.url, data); //发送请求
        Zabbix.log(4, "http code: " + request.getStatus());
        // 格式化响应
        try{
            response = JSON.parse(response);
        }catch(error){
            response = null;
        }
        // 判断http响应是否为200   钉钉服务器响应是否无错误
        if(request.getStatus() !== 200 || response.errcode !== 0){
            if(typeof response.errmsg === "string"){
                Zabbix.log(4, "error: " + JSON.stringify(response));
                throw JSON.stringify(response);
            }else{
                throw "unknown error.";
            }
        }
    },
};
try{
    var params = JSON.parse(value); //格式化脚本参数

    if(typeof params.URL === "undefined"){ //验证URL参数
        throw 'parameter "URL" is missing';
    }
    if(typeof params.To === "undefined"){ //验证To参数
        throw 'parameter "To" is missing';
    }
    if(typeof params.Message === "undefined"){  //验证Message参数
        throw 'parameter "Message" is missing';
    }

    // 验证All参数 判断是否@所有人
    if(params.All){
        Ding.at_all = true;
    }else{
        Ding.at_all = false;
    }
    // 验证代理 是否添加代理
    if(params.HTTPProxy){
        Ding.proxy = params.HTTPProxy;
    }
    // 参数赋值
    Ding.url = params.URL;
    Ding.message = params.Message;
    Ding.user_info = params.To;
    // 发送请求
    Ding.sendMessage(); 
    return "OK"; 
}catch(error){
    Zabbix.log(4, "sending failed: " + error);
    throw "sending failed: " + error + ".";
}

3.3 切换到Message templates页 添加消息模板

3.4 添加告警消息模板
主题:

收到告警: {EVENT.NAME}

消息(注意:如果安全验证使用关键字模式 保证消息内容里包含关键字):

收到告警
ID: {EVENT.ID}
主机: {HOST.NAME}
告警: {EVENT.NAME}
时间: {EVENT.DATE} {EVENT.TIME}
级别: {EVENT.SEVERITY}
数据: {EVENT.OPDATA}


3.5 添加告警恢复模板
主题:

告警恢复: {EVENT.NAME}

消息(注意:如果安全验证使用关键字模式 保证消息内容里包含关键字):

告警已恢复
ID: {EVENT.ID}
主机: {HOST.NAME}
告警: {EVENT.NAME}
时间: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
级别: {EVENT.SEVERITY}
持续时间: {EVENT.DURATION}

四、测试

4.1 点击报警媒介后面的测试按钮

4.2 消息内容输入安全设置关键字 点击测试

4.3 成功收到消息

五、配置钉钉告警

5.1 User settings - Profile - 报警媒介 - 添加

5.2 配置告警(收件人就是钉钉@的手机号)

六、创建动作

6.1 配置 - 动作 - Trigger actions - 创建动作

6.2 输入名称

6.3 切换到操作页 添加告警操作和恢复操作

6.4 告警操作 选择用户组或用户 仅送到钉钉

6.5 恢复操作 选择用户组或用户 仅送到钉钉

6.6 手动shutdown一个接口测试成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/880543.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号