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


 

 

寫在前面的話

 

目前換了幾家公司,且最近幾家都是以釘釘作為公司 OA 聊天工具,總的來說還是很不錯的。最近去了新公司,由於公司以前沒有運維,所以監控,做自動化等方面都沒有實施,恰逢這個機會把最近做的關於用到釘釘機器人的一些東西寫出來,希望能夠幫到和我有同樣需求的兄弟,少走一些彎路!

目前個人釘釘機器用在了兩個方面:

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

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

 

 

添加釘釘機器人

 

目前個人已知的釘釘機器人只能存在於釘釘群,釘釘群的建群需求是至少 3 人,當然,你建群之后可以把其它人踢出去,我就是這樣干的,誰讓我們只有兩個人呢 ...

 

【1】首先,我們進入一個釘釘群創建我們的機器人:

 

 

 【2】目前釘釘已經存在了一些項目的機器人,你可以根據自己的選,當然,我們本次就用自定義的,添加一個名為 HELLO ROBOT 機器人:

 

 

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

 

【4】添加完成后,機器人會在群里發送一條消息,還有點闊愛:

 

 

 

發送消息腳本(Linux Shell)

 

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

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 腳本腳本也發出來,希望能夠幫到各位! 

 


免責聲明!

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



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