zabbix监控-企业微信webhook告警并使用markdown格式

zabbix监控-企业微信webhook告警并使用markdown格式


最终告警样式:



markdown格式与text格式的优点:文字排版清晰,可对不同文字标识颜色,大小等。


此方法使用zabbix提供的webhook方式,不需要建立脚本文件。


zabbix版本:Zabbix 5.2.3


一、创建企业微信群聊机器人



点开群聊,右上角更多,输入名字,创建完成即可


二、新建报警媒介类型



名称随意,类型选择webhook


参数设置:


Message

{ALERT.MESSAGE}

Subject

{ALERT.SUBJECT}

To

{ALERT.SENDTO}

Token

群聊机器人webhook地址的key


Token复制群聊机器人KEY=后面的字符(鼠标移动到群聊机器人头像就能看到)



脚本(脚本参考网络上大神的,不是我原创):


var Wechat = {
    token: null,
    to: null,
    message: null,
    parse_mode: null,

    sendMessage: function() {
        var params = {
            msgtype: "markdown",
            chat_id: Wechat.to,
            markdown: {
                content:Wechat.message
            },
            disable_web_page_preview: true,
            disable_notification: false
        },
        data,
        response,
        request = new CurlHttpRequest(),
        url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=' + Wechat.token;

        if (Wechat.parse_mode !== null) {
            params['parse_mode'] = Wechat.parse_mode;
        }

        request.AddHeader('Content-Type: application/json');
        data = JSON.stringify(params);

        // Remove replace() function if you want to see the exposed token in the log file.
        Zabbix.Log(4, '[Wechat Webhook] URL: ' + url.replace(Wechat.token, ''));
        Zabbix.Log(4, '[Wechat Webhook] params: ' + data);
        response = request.Post(url, data);
        Zabbix.Log(4, '[Wechat Webhook] HTTP code: ' + request.Status());
        Zabbix.Log(4, '[Wechat Webhook] response: ' + response);

        try {
            response = JSON.parse(response);
        }
        catch (error) {
            response = null;
            Zabbix.Log(4, '[Wechat Webhook] response parse error');
        }

        if (request.Status() !== 200 ||  response.errcode !== 0 || response.errmsg !== 'ok') {
            if (typeof response.errmsg === 'string') {
                throw response.errmsg;
            }
            else {
                throw 'Unknown error. Check debug log for more information.'
            }
        }
    }
}

try {
    var params = JSON.parse(value);

    if (typeof params.Token === 'undefined') {
        throw 'Incorrect value is given for parameter "Token": parameter is missing';
    }

    Wechat.token = params.Token;

    if (['Markdown', 'HTML', 'MarkdownV2'].indexOf(params.ParseMode) !== -1) {
        Wechat.parse_mode = params.ParseMode;
    }

    Wechat.to = params.To;
    Wechat.message = params.Subject + '
' + params.Message;
    Wechat.sendMessage();

    return 'OK';
}
catch (error) {
    Zabbix.Log(4, '[Wechat Webhook] notification failed: ' + error);
    throw 'Sending failed: ' + error + '.';
}


添加报警模板:


模板类型选择问题,内容如下,根据个人喜好配置,也可直接复制下方内容。


企业微信markdown参考手册地址:群机器人配置说明 - 接口文档 - 企业微信开发者中心

https://developer.work.weixin.qq.com/document/path/91770



主题:

### 【监控告警】主机: {HOST.NAME} IP地址:{HOST.IP}

消息:

>主机名称:**{HOST.NAME}**
>主机IP:{HOST.IP}
>告警时间:{EVENT.DATE}-{EVENT.TIME}
>问题名称:{EVENT.NAME}
>问题详情:{ITEM.NAME}:{ITEM.VALUE}
>目前状态:{TRIGGER.STATUS}
>操作数据:{EVENT.OPDATA}


我只配置了问题发送,如需配置问题解决消息,也可同样在这里添加,类型选“问题恢复”,这里我没有加markdown格式的参数配置。



三、zabbix添加动作


名称:随意命名


条件:添加与下图一致,表示当告警等级大于“警告”才会触发这个动作。



添加操作:


操作类型:发送消息


步骤和持续时间:可与下方图片设置一致。


发送的用户:我这里添加到admin用户。


仅送到:选择已创建好的报警媒介webhook


条件:与下方一致


想要具体知道步骤和持续时间含义,请阅读下方图片内容释义(转发):


需要恢复操作和更新操作的消息提醒,可自行添加,这里我没有添加了。


四、设置用户


进入用户admin



选择报警媒介,类型选webhook


收件人:随意名字就行


其他信息与下方图片内容一致



设置完成,消息告警就接受到了。



添加报警媒介时可以测试能否发送:


展开阅读全文

页面更新:2024-04-30

标签:格式   媒介   机器人   脚本   名称   类型   消息   操作   内容   用户   企业

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top