linux 使用shell/python編寫釘釘自動監(jiān)控報警腳本

系統(tǒng)版本:centos7.9

python版本:3.6

目錄:一、添加釘釘機器人

二、編寫腳本

三、測試

一、添加釘釘機器人

1.1點擊智能群助手

image.png

1.2 添加機器人,因我已創(chuàng)建,所以會顯示一個運維報警。

image.png

1.3 添加一個機器人

image.png

1.4 選擇webhook自定義

image.png

1.5 確認(rèn)添加,我選擇的是IP段,把服務(wù)器公網(wǎng)IP填進(jìn)去就行,可以去看下左側(cè)的說明文檔。

image.png

1.6 創(chuàng)建好后保存好webhook鏈接

image.png

二、編寫報警腳本,隨便新建個*.py即可,該項目創(chuàng)建的為ding.py

2.1 編寫py腳本

cd /root/
touch ding.py
vim ding.py
#######以下為py腳本內(nèi)容#######
#!/usr/bin/python
# -*- coding: utf-8 -*
 
import urllib
import urllib2
import json,re
import sys, shutil, os, string, datetime,time
 
filelog = sys.argv[1]
serverip = sys.argv[2] #來標(biāo)識是那個服務(wù)器發(fā)送的警報
 
 
def http_post( errmsg ):
 
    url = "這里填寫剛剛保存的機器人webhook鏈接"
 
        values = {'msgtype': 'text'}
 
        content = {}
 
        content['content'] = serverip + errmsg
 
        values['text'] = content
 
        headers = {'Content-Type':'application/json;charset=UTF-8'}
 
        jdata = json.dumps(values)
 
        print jdata
 
        req = urllib2.Request(url, jdata , headers)
        response = urllib2.urlopen(req)
        data = json.loads(response.read())
        errcode = data['errcode']
        print errcode
        return errcode
 
def senderror( filepath ):
        file = open(filepath)
        file.seek(0, os.SEEK_END)
        while 1:
                where = file.tell()
                line = file.readline()
                if not line:
                        time.sleep(1)
                        file.seek(where)
                else:
                        print line,
                        http_post(line)
 
senderror( filelog )

2.2 里面有兩個變量,第一個是日志路徑,第二個是自定義的服務(wù)器名稱。

filelog = sys.argv[1]
serverip = sys.argv[2]

2.3 現(xiàn)在我們寫一個sh腳本來引用上面的py腳本,我把該腳本放在了/etc/rc.d/下,命名為ding.sh

cd /etc/rc.d/
touch ding.sh
vim ding.sh
#######以下為sh腳本內(nèi)容#######
#!/bin/bash
nohup python /root/ding.py /日志路徑/php_errors.log 生產(chǎn)A服務(wù)器php日志報警: &
nohup python /root/ding.py /日志路徑/error.log 生產(chǎn)A服務(wù)器前端nginx日志報警: &
nohup python /root/ding.py /日志路徑/api.error.log 生產(chǎn)A服務(wù)器后端nginx日志報警: &

2.4 可以看到上面使用了nohup來設(shè)置后臺運行,并且絕對路徑寫了剛剛py腳本所在的位置,變量1寫了日志絕對路徑,變量2寫了自定義發(fā)送到釘釘?shù)暮缶Y機器名稱。

2.5 現(xiàn)在把該腳本設(shè)置開機自啟動。

vim /etc/rc.d/rc.local

2.6 把以下內(nèi)容添加到末尾

bash    /etc/rc.d/ding.sh

2.7 現(xiàn)在把腳本添加執(zhí)行權(quán)限,注意:默認(rèn)rc.local不引用,需要添加執(zhí)行權(quán)限才會開機引用。

chmod +x /root/ding.py
chmod +x /etc/rc.d/ding.sh
chmod +x /etc/rc.d/rc.local

三、測試

3.1 現(xiàn)在我們可以進(jìn)行測試,有兩種方式。

3.1.1、重啟機器
3.1.2、直接運行ding.sh
因該機器為線上服務(wù)器,所以選擇第二種方式進(jìn)行測試

3.2 運行ding.sh

cd /etc/rc.d/
./ding.sh
image.png
直接回車就行

3.3 現(xiàn)在看下進(jìn)程是否運行

ps aux |grep ding
image.png
可以看到腳本正常在運行。

3.4 現(xiàn)在可以手動寫入一個日志查看釘釘是否正常報警。

cat >> /日志路徑/error.log << EOF
>測試報警
>EOF
image.png

有問題可以評論,看到了會回復(fù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容