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

 

 

寫在前面的話

 

目前換了幾家公司,且最近幾家都是以釘釘做爲公司 OA 聊天工具,總的來講仍是很不錯的。最近去了新公司,因爲公司之前沒有運維,因此監控,作自動化等方面都沒有實施,恰逢這個機會把最近作的關於用到釘釘機器人的一些東西寫出來,但願可以幫到和我有一樣需求的兄弟,少走一些彎路!web

目前我的釘釘機器用在了兩個方面:shell

一是 Zabbix 監控告警,使用的是 Python 編寫的腳本,且目前也在寫關於 Zabbix 的文檔,有興趣的小夥伴能夠到我主頁看看!json

二是 Jenkins 自動發佈,在構建後執行 Shell 過程當中加入一系列的釘釘機器人消息提醒!bash

 

 

添加釘釘機器人

 

目前我的已知的釘釘機器人只能存在於釘釘羣,釘釘羣的建羣需求是至少 3 人,固然,你建羣以後能夠把其它人踢出去,我就是這樣乾的,誰讓咱們只有兩我的呢 ...app

 

【1】首先,咱們進入一個釘釘羣建立咱們的機器人:運維

 

 

 【2】目前釘釘已經存在了一些項目的機器人,你能夠根據本身的選,固然,咱們本次就用自定義的,添加一個名爲 HELLO ROBOT 機器人:curl

 

 

【3】 機器人添加完成,會生成一個 webhook,這是你上傳數據接口,同時這個接口也表明着該機器人的身份標識,至關重要!ide

 

【4】添加完成後,機器人會在羣裏發送一條消息,還有點闊愛:工具

 

 

 

發送消息腳本(Linux Shell)

 

對於消息在釘釘羣中的顯示格式以及更多的關於釘釘機器人的開發文檔說明,能夠查看官方給的開發者文檔:post

https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.oAAN7T&treeId=257&articleId=105733&docType=1

如下是 Linux Shell 腳本,我的選擇的是釘釘消息的 ActionCard 格式: 

#!/bin/bash 

function SendMessageToDingding(){ 
    Dingding_Url="這就是剛剛機器人的 webhook xxxxxxxx" 
    # 發送釘釘消息
    curl "${Dingding_Url}" -H 'Content-Type: application/json' -d "
    {
        \"actionCard\": {
            \"title\": \"$1\", 
            \"text\": \"$2\", 
            \"hideAvatar\": \"0\", 
            \"btnOrientation\": \"0\", 
            \"btns\": [
                {
                    \"title\": \"$1\", 
                    \"actionURL\": \"\"
                }
            ]
        }, 
        \"msgtype\": \"actionCard\"
    }"
} 

Subject="$1" 

Body="$2"

SendMessageToDingding $Subject $Body

 

備註:咱們這裏傳遞了兩個參數,固然,你也能夠根據本身的需求選擇消息類型,定製參數,都是 Shell 的基礎知識,比較簡單! 

最後,咱們能夠放在機器上面測試一下,下面是個人效果: 

 

注意,因爲 Linux 多行的值賦值給一個變量的時候,換行符須要轉義,還有就是 Zabbix 觸發動做裏面內容必定不定有空格,這都是 shell post json 的大坑! 

 

Zabbix 監控告警的效果:

 

 

小結

 

使用 Shell 發送很簡單,其實就是提交 JSON 數據,可是 Shell 提交 JSON 感受有點噁心,後續我會把 Python 腳本腳本也發出來,但願可以幫到各位! 

相關文章
相關標籤/搜索