溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

基于markdown消息類(lèi)型實(shí)現(xiàn)釘釘報(bào)警,讓感官更舒服

發(fā)布時(shí)間:2020-09-14 12:41:56 來(lái)源:網(wǎng)絡(luò) 閱讀:11100 作者:bensonzy 欄目:編程語(yǔ)言

        基于釘釘方式報(bào)警,網(wǎng)上普遍存在的是:

         1、報(bào)警腳本中 使用釘釘提供的 "text" 文本方式填充內(nèi)容,報(bào)警內(nèi)容均為黑白字體;

         2、釘釘報(bào)警彩色顯示內(nèi)容,使用github上現(xiàn)成的二進(jìn)制程序,配合x(chóng)ml文本,固定格式報(bào)警,程序有可能對(duì)zabbix版本有些缺陷;

        基于markdown消息類(lèi)型,可以實(shí)現(xiàn)字體彩色顯示,并且報(bào)警格式配置更加靈活,更有利于個(gè)性化定制消息

       

        成品報(bào)警圖

        基于markdown消息類(lèi)型實(shí)現(xiàn)釘釘報(bào)警,讓感官更舒服    基于markdown消息類(lèi)型實(shí)現(xiàn)釘釘報(bào)警,讓感官更舒服


       釘釘報(bào)警各種文章配置大同小異,不再詳細(xì)介紹,只將步驟寫(xiě)出,其他參考網(wǎng)絡(luò)文章即可,著重會(huì)寫(xiě)出markdown類(lèi)型配置。


       后面用到的先在此說(shuō)明:

   zabbix版本:
       V3.4.6
       
   zabbix腳本路徑:
      zabbix_server.conf 文件中 AlertScriptsPath  字段配置
      
   webhook 是什么,機(jī)器人支持的markdown語(yǔ)法是什么?

           https://open-doc.dingtalk.com/docs/doc.htm?treeId=257&articleId=105735&docType=1



        zabbix web配置

          1、 Administrator -- media types  增加釘釘報(bào)警類(lèi)型

基于markdown消息類(lèi)型實(shí)現(xiàn)釘釘報(bào)警,讓感官更舒服


2、Administrator-- users  建立報(bào)警用戶

       此處使用super user , 發(fā)送對(duì)象為 手機(jī)號(hào)


基于markdown消息類(lèi)型實(shí)現(xiàn)釘釘報(bào)警,讓感官更舒服


3、 configure -- action  添加報(bào)警動(dòng)作 【重點(diǎn)說(shuō)明:markdown 內(nèi)容編輯在于此

       在 【options -- default messages】中寫(xiě)入markdown語(yǔ)法內(nèi)容,用html語(yǔ)法可設(shè)置字體顏色,在;

       此處對(duì)應(yīng)腳本中要發(fā)送的內(nèi)容,內(nèi)容使用zabbix內(nèi)置變量即可。

    <font color=#FF0000 size=6 face="黑體">事故等級(jí): {TRIGGER.SEVERITY} </font>        
    ##### **發(fā)生時(shí)間**:  {EVENT.DATE} {EVENT.TIME}      
    ##### **機(jī)器**: {HOST.NAME} - {HOST.IP}      
    **問(wèn)題**: {TRIGGER.NAME}      
    **報(bào)警值**: {ITEM.VALUE}

        在 option details 中 send only to  選中 設(shè)置的釘釘報(bào)警 (詳細(xì)設(shè)置參考網(wǎng)絡(luò)文章,略)


        同理,【recovery options -- default mesages】寫(xiě)入報(bào)警恢復(fù)時(shí)發(fā)送內(nèi)容

    **狀態(tài)**: {TRIGGER.STATUS}        
    **機(jī)器**: {HOST.NAME} - {HOST.IP}    
    **恢復(fù)時(shí)間**: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}          
    **問(wèn)題**: {TRIGGER.NAME}    
    **報(bào)警值**: {ITEM.VALUE}


        以上是頁(yè)面配置中針對(duì)markdown類(lèi)型的語(yǔ)法實(shí)例,效果見(jiàn)文章開(kāi)頭,根據(jù)個(gè)人喜好DIY設(shè)置即可。


        發(fā)送腳本基于網(wǎng)上的python腳本,自己做了一些修改 :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#  https://www.aityp.com
## mobified by benson , remove config file

import requests
import json
import sys
import os
import time
#import configparser

headers = {'Content-Type': 'application/json;charset=utf-8'}
time=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())


log_file = "/var/log/zabbix/zabbix_dingding.log"
api_url = "https://oapi.dingtalk.com/robot/send?access_token=bdd59ba55647c60ea9d63025c2af416fb9bd67d17e351430b0535d4ba55da2d2"


def log(info):
    #注意權(quán)限,否則寫(xiě)不進(jìn)去日志
    if os.path.isfile(log_file) == False:
               f = open(log_file, 'a+')

    f = open(log_file,'a+')
    f.write(info)
    f.close()

def msg(text,user):
    json_text= {
     "msgtype": "markdown",
        "markdown": {
            "title":"zabbix monitor",
            "text": text
        },
        "at": {
            "atMobiles": [
                user
            ],
            "isAtAll": True
        }
    }

    r=requests.post(api_url,data=json.dumps(json_text),headers=headers).json()
    code = r["errcode"]
    if code == 0:
        log(time + ":消息發(fā)送成功 返回碼:" + str(code) + "\n")
    else:
        log(time + ":消息發(fā)送失敗 返回碼:" + str(code) + "\n")
        exit(3)

if __name__ == '__main__':
    text = sys.argv[3]
    user = sys.argv[1]
    msg(text,user)




向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI