国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Linux Shell > 正文

shell 操作釘釘機器人實現告警提醒的方法

2020-07-26 23:25:20
字體:
來源:轉載
供稿:網友

我們知道,之前的運維告警多通過mail 等方式通知到相應的人員,難以實現隨時隨地的查看。隨著手機APP的發展,很多告警開始發送到IM軟件上去。目前比較常用的是發送到微信和釘釘上,今天我們將重點放在釘釘上。群機器人是釘釘群的高級擴展功能,群機器人可以將第三方服務的信息聚合到群聊中,實現自動化的信息同步。借助釘釘機器人,通過官方提供的API,可以很方便的post數據到相應的接收人 。群機器人支持Webhook協議的自定義接入,支持更多可能性,例如:你可將運維報警通過自定義機器人聚合到釘釘群實現提醒功能。

Shell 腳本語言是實現Linux系統管理及自動化所必須的重要工具。熟練地編寫Shell語言可以提升運維人員的工作效率,適應復雜的工作環境。

在本文,我們聚焦通過shell腳本語言實現借助釘釘機器人發送告警信息。

1: 了解更多群機器人的信息,大家可登入官網學習

https://ding-doc.dingtalk.com/doc

2.給自己的機器人起個好聽的名字

操作如下:

3.使用命令行工具curl

curl是一個命令行工具,通過指定的URL來上傳或下載數據,并將數據展示出來。curl中的c表示client,而URL,就是URL。

3.1 與curl一起使用的協議,最多的還是HTTP

在每一個HTTP請求中,都有一個對應的方法,常用的方法有:GETPOSTHEADPUT。如果在一個curl命令中不指定具體的方法,那么默認的就是使用GET方法。對于其它的方法,可以在curl命令中指定:

method option
POST -d或-F
HEAD -I
PUT -T

POST是HTTP中向服務端提交數據的一種方法。在瀏覽器中,可以在表單中填寫完數據后,瀏覽器就會默認將填寫的數據使用key=value串的形式進行轉化。在curl中,我們可以使用-d--data選項來指定具體的數據。

3.2 釘釘使用curl工具主要相關的兩個參數

參數(短形式) 參數(長形式) 解釋 具體描述
-d --data  HTTP POST data (H) 把指定的數據發送到服務器上.
-H --header Custom header to pass to server (H)

當使用POST方法提交數據時,對于提交的數據主要有如下四種形式:

  • application/x-www-form-urlencoded:默認的形式,即key1=value1&key2=value2的形式;
  • multipart/form-data:使用表單上傳文件時使用這個形式;
  • application/json:提交JSON格式的數據;
  • text/xml:提交XML格式的數據。

Content-Type是一個Header,如果不指定的話,默認使用application/x-www-form-urlencoded形式傳輸數據,當需要使用別的形式進行數據傳輸的話,需要指定Header。

3.3 調用格式(案例)

curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' /  -H 'Content-Type: application/json' /  -d '{"msgtype": "text",     "text": {       "content": "我就是我, 是不一樣的煙火"    }   }'

測試過程中,請將上面命令直接復制到命令行,再將xxxxxxxx替換為真實access_token。

4.不一樣的markdown類型

官網中除markdown類型,其它的消息類型的 測試例子(腳本) 都可以直接在shell中演示

官網markdown類型的測試案例

{   "msgtype": "markdown",   "markdown": {     "title":"杭州天氣",     "text": "#### 杭州天氣 @156xxxx8827/n" +         "> 9度,西北風1級,空氣良89,相對溫度73%/n/n" +         "> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)/n" +         "> ###### 10點20分發布 [天氣](http://www.thinkpage.cn/) /n"   },  "at": {    "atMobiles": [      "156xxxx8827",      "189xxxx8325"    ],    "isAtAll": false  } }

在shell中執行報錯信息,錯誤信息為:

{"errcode":40035,"errmsg":"缺少參數 json"}

報錯原因是 "text" 欄位對應的 value 值中的 “+” 運算符導致,將中間的

" +
"

刪除。

即可執行代碼更新為:

{   "msgtype": "markdown",   "markdown": {     "title":"杭州天氣",     "text": "#### 杭州天氣 @156xxxx8827/n> 9度,西北風1級,空氣良89,相對溫度73%/n/n> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)/n> ###### 10點20分發布 [天氣](http://www.thinkpage.cn/) /n"   },  "at": {    "atMobiles": [      "156xxxx8827",       "189xxxx8325"    ],     "isAtAll": false  } }

執行OK,錯誤消失。

執行情況如下:

成功收到的信息,內容截圖如下:

 

5. 將釘釘機器人代碼放到文件中,方便調用

例如:創建用于監控當QQOrder_ERP集群的VIP漂移時,調用用來發送釘釘告警的可執行文件ddalarm.sh。

其主要代碼如下:

#!/bin/bashwebhook='https://oapi.dingtalk.com/robot/send?access_token=34XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'cluster='QQOrder_ERP'host=`hostname -I | awk '{print $1}'`vip=$1function SendMsgToDingding() {  curl $webhook -H 'Content-Type: application/json' -d "  {    'msgtype': 'text',    'text': {      'content': '集群名稱:$cluster/n告警信息:虛擬IP<$vip>已漂移至節點<$host>,請注意/n'    },    'at': {      'isAtAll': true    }  }"}SendMsgToDingding

此測試文件,調用執行時需要傳入一個參數(VIP)。

觸發執行,案例如下:

手機釘釘收到的告警信息

參考資料:

1.釘釘群機器人

https://ding-doc.dingtalk.com/doc#/serverapi2/krgddi

2.curl使用指南

https://www.jianshu.com/p/fc0eb6c60816

到此這篇關于shell 操作釘釘機器人實現告警提醒的方法的文章就介紹到這了,更多相關shell 釘釘告警提醒內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 益阳市| 青岛市| 大连市| 盐亭县| 永清县| 如皋市| 兴仁县| 株洲市| 江门市| 黄平县| 桦川县| 牡丹江市| 凉城县| 天津市| 留坝县| 威信县| 紫金县| 乌兰县| 越西县| 承德县| 南郑县| 金川县| 昭通市| 克山县| 南充市| 元氏县| 梧州市| 万源市| 德化县| 右玉县| 新化县| 都匀市| 道真| 瑞昌市| 清远市| 陆河县| 神农架林区| 迁西县| 新安县| 巴林左旗| 金门县|