欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell 操作釘釘機(jī)器人實(shí)現(xiàn)告警提醒的方法

 更新時(shí)間:2020年05月08日 14:54:12   作者:東山絮柳仔  
這篇文章主要介紹了shell 操作釘釘機(jī)器人實(shí)現(xiàn)告警提醒的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

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

Shell 腳本語言是實(shí)現(xiàn)Linux系統(tǒng)管理及自動(dòng)化所必須的重要工具。熟練地編寫Shell語言可以提升運(yùn)維人員的工作效率,適應(yīng)復(fù)雜的工作環(huán)境。

在本文,我們聚焦通過shell腳本語言實(shí)現(xiàn)借助釘釘機(jī)器人發(fā)送告警信息。

1: 了解更多群機(jī)器人的信息,大家可登入官網(wǎng)學(xué)習(xí)

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

2.給自己的機(jī)器人起個(gè)好聽的名字

操作如下:

3.使用命令行工具curl

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

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

在每一個(gè)HTTP請(qǐng)求中,都有一個(gè)對(duì)應(yīng)的方法,常用的方法有:GETPOST、HEADPUT。如果在一個(gè)curl命令中不指定具體的方法,那么默認(rèn)的就是使用GET方法。對(duì)于其它的方法,可以在curl命令中指定:

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

POST是HTTP中向服務(wù)端提交數(shù)據(jù)的一種方法。在瀏覽器中,可以在表單中填寫完數(shù)據(jù)后,瀏覽器就會(huì)默認(rèn)將填寫的數(shù)據(jù)使用key=value串的形式進(jìn)行轉(zhuǎn)化。在curl中,我們可以使用-d--data選項(xiàng)來指定具體的數(shù)據(jù)。

3.2 釘釘使用curl工具主要相關(guān)的兩個(gè)參數(shù)

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

當(dāng)使用POST方法提交數(shù)據(jù)時(shí),對(duì)于提交的數(shù)據(jù)主要有如下四種形式:

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

Content-Type是一個(gè)Header,如果不指定的話,默認(rèn)使用application/x-www-form-urlencoded形式傳輸數(shù)據(jù),當(dāng)需要使用別的形式進(jìn)行數(shù)據(jù)傳輸?shù)脑?,需要指定Header。

3.3 調(diào)用格式(案例)

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

測(cè)試過程中,請(qǐng)將上面命令直接復(fù)制到命令行,再將xxxxxxxx替換為真實(shí)access_token。

4.不一樣的markdown類型

官網(wǎng)中除markdown類型,其它的消息類型的 測(cè)試?yán)樱_本) 都可以直接在shell中演示

官網(wǎng)markdown類型的測(cè)試案例

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

在shell中執(zhí)行報(bào)錯(cuò)信息,錯(cuò)誤信息為:

{"errcode":40035,"errmsg":"缺少參數(shù) json"}

報(bào)錯(cuò)原因是 "text" 欄位對(duì)應(yīng)的 value 值中的 “+” 運(yùn)算符導(dǎo)致,將中間的

" +
"

刪除。

即可執(zhí)行代碼更新為:

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

執(zhí)行OK,錯(cuò)誤消失。

執(zhí)行情況如下:

成功收到的信息,內(nèi)容截圖如下:

 

5. 將釘釘機(jī)器人代碼放到文件中,方便調(diào)用

例如:創(chuàng)建用于監(jiān)控當(dāng)QQOrder_ERP集群的VIP漂移時(shí),調(diào)用用來發(fā)送釘釘告警的可執(zhí)行文件ddalarm.sh。

其主要代碼如下:

#!/bin/bash

webhook='https://oapi.dingtalk.com/robot/send?access_token=34XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
cluster='QQOrder_ERP'
host=`hostname -I | awk '{print $1}'`
vip=$1

function SendMsgToDingding() {
  curl $webhook -H 'Content-Type: application/json' -d "
  {
    'msgtype': 'text',
    'text': {
      'content': '集群名稱:$cluster\n告警信息:虛擬IP<$vip>已漂移至節(jié)點(diǎn)<$host>,請(qǐng)注意\n'
    },
    'at': {
      'isAtAll': true
    }
  }"
}
SendMsgToDingding

此測(cè)試文件,調(diào)用執(zhí)行時(shí)需要傳入一個(gè)參數(shù)(VIP)。

觸發(fā)執(zhí)行,案例如下:

手機(jī)釘釘收到的告警信息

參考資料:

1.釘釘群機(jī)器人

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

2.curl使用指南

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

到此這篇關(guān)于shell 操作釘釘機(jī)器人實(shí)現(xiàn)告警提醒的方法的文章就介紹到這了,更多相關(guān)shell 釘釘告警提醒內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux網(wǎng)絡(luò)設(shè)置詳情

    Linux網(wǎng)絡(luò)設(shè)置詳情

    這篇文章主要介紹了Linux網(wǎng)絡(luò)設(shè)置,需要的朋友可以參考下面文章內(nèi)容
    2021-08-08
  • win10下如何運(yùn)行.sh文件的實(shí)現(xiàn)步驟

    win10下如何運(yùn)行.sh文件的實(shí)現(xiàn)步驟

    這篇文章主要介紹了win10下如何運(yùn)行.sh文件的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Linux查找處理文件名后包含空格的文件(兩種方法)

    Linux查找處理文件名后包含空格的文件(兩種方法)

    在linux中如何查找處理文件名后包含空格的文件呢?怎么批量替換處理這些空格呢?下面小編給大家?guī)砹藘煞N方法,需要的朋友參考下吧
    2017-11-11
  • linux中nohup和后臺(tái)運(yùn)行進(jìn)程查看及終止

    linux中nohup和后臺(tái)運(yùn)行進(jìn)程查看及終止

    今天給大家介紹linux中nohup和后臺(tái)運(yùn)行進(jìn)程查看及終止的操作命令,大家都知道nohup用于不掛斷地運(yùn)行命令,語法也很簡(jiǎn)單,需要的朋友可以參考下本文吧
    2021-06-06
  • linux shell實(shí)現(xiàn)隨機(jī)數(shù)幾種方法分享(date,random,uuid)

    linux shell實(shí)現(xiàn)隨機(jī)數(shù)幾種方法分享(date,random,uuid)

    這篇文章主要介紹了linux shell實(shí)現(xiàn)隨機(jī)數(shù)多種方法(date,random,uuid),需要的朋友可以參考下
    2015-10-10
  • 使用Shell腳本如何啟動(dòng)/停止Java的jar程序

    使用Shell腳本如何啟動(dòng)/停止Java的jar程序

    這篇文章主要介紹了使用Shell腳本如何啟動(dòng)/停止Java的jar程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Linux運(yùn)維常用命令

    Linux運(yùn)維常用命令

    這篇文章主要介紹了Linux在日常運(yùn)維過程中需要經(jīng)常用到的命令,非常的全面,有需要的小伙伴可以參考下
    2016-12-12
  • 使用Bash Shell檢查文件是否存在的方法

    使用Bash Shell檢查文件是否存在的方法

    大多數(shù)情況下,可以使用測(cè)試命令來對(duì)條件進(jìn)行測(cè)試。比如可以比較字符串、判斷文件是否存在及是否可讀等等。下面這篇文章就主要介紹了使用Bash Shell檢查文件是否存在的方法,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • linux shell字符串內(nèi)置的常用操作(獲取長度、查找、替換)

    linux shell字符串內(nèi)置的常用操作(獲取長度、查找、替換)

    在編寫shell程序時(shí),經(jīng)常會(huì)涉及到字符串相關(guān)操作。有許多命令語句,如awk,sed都能夠做字符串各種操作。 事實(shí)上shell內(nèi)置一系列操作符號(hào),能夠達(dá)到相似效果,使用內(nèi)部操作符會(huì)省略啟動(dòng)外部程序等時(shí)間,因此速度會(huì)很的快。如果內(nèi)置的操作符能夠做到的,優(yōu)先使用內(nèi)置的
    2015-12-12
  • Shell腳本實(shí)現(xiàn)監(jiān)控iptables規(guī)則是否被修改

    Shell腳本實(shí)現(xiàn)監(jiān)控iptables規(guī)則是否被修改

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)監(jiān)控iptables規(guī)則是否被修改,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12

最新評(píng)論