運維利器:釘釘機器人指令碼告警(Linux Python 篇)
寫在前面的話
在前面的部落格中已經具體提到了如何獲取對的機器人的 Token 等操作,不清楚的可以參考之前寫的 ofollow,noindex">【運維利器:釘釘機器人指令碼告警(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 掃碼!