運維利器:釘釘機器人腳本告警(Linux Python 篇)


寫在前面的話

 

在前面的博客中已經具體提到了如何獲取對的機器人的 Token 等操作,不清楚的可以參考之前寫的 【運維利器:釘釘機器人腳本告警(Linux Shell 篇)】這篇博客的前部分。

本文主要給出的 Python 腳本的實現,我記得網上很多腳本給的好像是 go 語言寫的。

雖然現在 go 超級火,運維 docker 和 k8s 以及性能的原因在自動化運維上可能即將取代 Python。

但不可忽視,Python 寫腳本還是挺不錯的,且 Linux 自帶 Python,可以省去很多麻煩!

閑話少說,直接上代碼:

 

 

安裝依賴

 

我用的 CentOS 7,自帶的是 Python 2.7, 不清楚的可以使用命令查看:

python -V

 

其中存在兩個問題,一個是自帶的 Python 沒有 pip,需要安裝,二是沒有 requests 模塊,安裝方法如下:

【1】安裝 pip:

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py

 

【2】安裝 requests 模塊:

pip install requests

 

 

發送腳本

 

【1】腳本內容:我的腳本名稱( SendDingMessage.py

#!/usr/bin/python2
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "xxxxxxxxxxxxxxxxxxxxxxx 這里是你的釘釘機器人 Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

def msg(text, subject):
    json_text= {
        "actionCard": {
            "title": subject,
            "text": text,
            "hideAvatar": "0",
            "btnOrientation": "0",
            "btns": [
                {
                    "title": subject[:12],
                    "actionURL": ""
                }
            ]
        },
        "msgtype": "actionCard"
    }

    print(requests.post(api_url,json.dumps(json_text),headers=headers).content)

if __name__ == '__main__':
    text = sys.argv[1]
    text = text.replace("\n", "\r")
    subject = sys.argv[2]
    msg(text, subject)

 

【2】測試發送:

python SendDingMessage.py  'test' 'hahahahah'

 

【3】效果圖:

 

【4】Zabbix 配置告警媒介:

 

【5】告警效果:

 

 

小結

 

最近特別忙,快過年了,之前給自己定了很多小目標還沒有實現呢,比如 VUE + DRF 學習,結果中途竄出來了 LayUI,Docker K8S 等等。

Zabbix 系列也沒時間更新,因為個人對於排版要求很嚴,注定沒法高產。

前段時間學了點 Bootstrap + JQuery,第一件事就是把這個博客園的主題自己重寫了,然后現在在做自己的一個個人博客。

現在線上是以前沒學前端時候的版本,前端代碼稀爛,正在重構中。感興趣的可以關注一下。

最后就是,博客園別忘了點個 推薦 再走,給點動力也行啊!

最后的最后,又是右上角 QQ 掃碼!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM