用企業(yè)微信監(jiān)控線上服務(wù)報(bào)警

我們?cè)诒O(jiān)控線上運(yùn)行的項(xiàng)目時(shí),一旦遇到異常,通常的做法會(huì)發(fā)郵件、短信至開發(fā)團(tuán)隊(duì)。

以郵件的方式來說,消息具有滯后性,不可能無時(shí)無刻的都盯著郵箱,盡管可以選擇郵箱客戶端,但總感覺郵件的方式敏感度不高。

以短信的方式來說,更多的可能會(huì)考慮到成本問題。短信都是需要付費(fèi)的,當(dāng)監(jiān)控場景增加或者接受報(bào)警人數(shù)增加時(shí),都會(huì)帶來成本的增加。

這里,推薦一個(gè)比較不錯(cuò)的解決方案 -- 企業(yè)微信。對(duì)于企業(yè)微信來說,優(yōu)點(diǎn)也很明顯,消息實(shí)時(shí)度強(qiáng),成本低,靈活性高,跨平臺(tái)。接入企業(yè)微信后,可以不修改代碼靈活增減被通知人員。

配置企業(yè)微信

  1. 注冊(cè)企業(yè)微信

    個(gè)人也可以注冊(cè)企業(yè)微信,不提交企業(yè)資料可以,可以容納200個(gè)成員。如果團(tuán)隊(duì)不大的話,完全可以不提交企業(yè)資料。

  2. 創(chuàng)建應(yīng)用

    創(chuàng)建一個(gè)應(yīng)用,服務(wù)于你自己的監(jiān)控報(bào)警。每一個(gè)應(yīng)用都包含以下功能。


    監(jiān)控報(bào)警來說,只需要使用發(fā)送消息的功能。每個(gè)應(yīng)用都會(huì)自己的AgentIdSecret,后面調(diào)用API的時(shí)候需要用到。

  3. 添加成員

    向剛才的創(chuàng)建的應(yīng)用中添加被通知人員。當(dāng)然前提是已經(jīng)加入該企業(yè)微信。

接入程序

企業(yè)微信的API,調(diào)用本質(zhì)上就是調(diào)用Http post請(qǐng)求,所以各個(gè)語言平臺(tái)都適用。具體說明可以參照文檔:API文檔。這里以python為例,實(shí)現(xiàn)的是企業(yè)微信的發(fā)送消息接口。

  • 獲取token
tokenUrl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"

def get_token():
    values = {'corpid': 'xxxxx', 'corpsecret': 'xxxxx'}
    req = requests.post(tokenUrl, params=values)
    data = json.loads(req.text)
    return data["access_token"]

這里需要填寫企業(yè)微信的corpidcorpsecret

  • 發(fā)送消息
sendMsg = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="

def send_msg(msg):
    url = sendMsg + get_token()
    values = """{"touser" : "XXX" ,
      "msgtype":"text",
      "agentid":"XXX",
      "text":{
        "content": "%s"
      },
      "safe":"0"
      }""" % msg
    requests.post(url, values)

發(fā)送消息的時(shí)候需要配置touseragentid。touser被通知用戶的賬戶,在企業(yè)通訊錄可以查看用戶的賬戶名,多個(gè)以|間隔。如果是所有用戶則直接填寫@allagentid為應(yīng)用的agentid。

當(dāng)我在程序中中需要捕獲異常時(shí)或者監(jiān)控需要發(fā)送通知時(shí),直接調(diào)用send_msg就可以向我們發(fā)送通知了。

if __name__ == '__main__':
    try:
        1 / 0
    except ZeroDivisionError, e:
        send_msg(e.args[0])

寫完,怎么越看越像企業(yè)微信的軟文...... ㄟ( ▔, ▔ )ㄏ

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,715評(píng)論 19 139
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 12,556評(píng)論 6 13
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,510評(píng)論 0 15
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • 這天早上,肚子有了一點(diǎn)和從前不一樣的感覺。我知道可能要生了。 我緩緩爬起來,在床邊呆坐了一會(huì),看見鏡子里模模糊糊的...
    森妮閱讀 507評(píng)論 0 1

友情鏈接更多精彩內(nèi)容