天天看點

zabbix監控-企業微信webhook告警并使用markdown格式

zabbix監控-企業微信webhook告警并使用markdown格式

最終告警樣式:

zabbix監控-企業微信webhook告警并使用markdown格式

markdown格式與text格式的優點:文字排版清晰,可對不同文字辨別顔色,大小等。

此方法使用zabbix提供的webhook方式,不需要建立腳本檔案。

zabbix版本:Zabbix 5.2.3

一、建立企業微信群聊機器人

zabbix監控-企業微信webhook告警并使用markdown格式

點開群聊,右上角更多,輸入名字,建立完成即可

二、建立報警媒介類型

zabbix監控-企業微信webhook告警并使用markdown格式

名稱随意,類型選擇webhook

參數設定:

Message {ALERT.MESSAGE}
Subject {ALERT.SUBJECT}
To {ALERT.SENDTO}
Token 群聊機器人webhook位址的key

Token複制群聊機器人KEY=後面的字元(滑鼠移動到群聊機器人頭像就能看到)

zabbix監控-企業微信webhook告警并使用markdown格式

腳本(腳本參考網絡上大神的,不是我原創):

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, '<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 + '\n' + 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

zabbix監控-企業微信webhook告警并使用markdown格式

主題:

### 【監控告警】主機: <font color="warning">{HOST.NAME}</font> IP位址:<font color="warning">{HOST.IP}</font>

消息:

>主機名稱:**<font color="comment">{HOST.NAME}</font>**

>主機IP:<font color="comment">{HOST.IP}</font>

>告警時間:<font color="comment">{EVENT.DATE}-{EVENT.TIME}</font>

>問題名稱:<font color="warning">{EVENT.NAME}</font>

>問題詳情:<font color="comment">{ITEM.NAME}:{ITEM.VALUE}</font>

>目前狀态:<font color="comment">{TRIGGER.STATUS}</font>

>操作資料:<font color="comment">{EVENT.OPDATA}</font>

我隻配置了問題發送,如需配置問題解決消息,也可同樣在這裡添加,類型選“問題恢複”,這裡我沒有加markdown格式的參數配置。

zabbix監控-企業微信webhook告警并使用markdown格式

三、zabbix添加動作

名稱:随意命名

條件:添加與下圖一緻,表示當告警等級大于“警告”才會觸發這個動作。

zabbix監控-企業微信webhook告警并使用markdown格式

添加操作:

操作類型:發送消息

步驟和持續時間:可與下方圖檔設定一緻。

發送的使用者:我這裡添加到admin使用者。

僅送到:選擇已建立好的報警媒介webhook

條件:與下方一緻

zabbix監控-企業微信webhook告警并使用markdown格式

想要具體知道步驟和持續時間含義,請閱讀下方圖檔内容釋義(轉發):

zabbix監控-企業微信webhook告警并使用markdown格式

需要恢複操作和更新操作的消息提醒,可自行添加,這裡我沒有添加了。

四、設定使用者

進入使用者admin

zabbix監控-企業微信webhook告警并使用markdown格式

選擇報警媒介,類型選webhook

收件人:随意名字就行

其他資訊與下方圖檔内容一緻

zabbix監控-企業微信webhook告警并使用markdown格式

設定完成,消息告警就接受到了。

zabbix監控-企業微信webhook告警并使用markdown格式

添加報警媒介時可以測試能否發送:

zabbix監控-企業微信webhook告警并使用markdown格式

繼續閱讀