釘釘羣助手報警服務器日誌信息

需求:1, 使用 grep 查找關鍵字的方式,查找日誌中的錯誤信息,並輸出到文件;
2, 判斷文件 不爲空 則 使用 釘釘機器人反饋附件到 日誌監控報警羣;
3, 做好計劃任務,每8時自動執行一次;
4,要求羣機器人分享的鏈接標題要包含日誌行數,時間,日誌爲空則不發送鏈接。

釘釘開發平臺上面對羣機器人開發語言有限制,我唯一熟悉點的就是python,所以用sh腳本輸出日誌到文件,然後用python腳本發送信息到羣機器人。

1,sh腳本查找日誌並輸出到txt文件

#!/bin/bash
#2020-03-12
now_time=`date "+%Y%m%d_%H%M"`
grep '404 -' /data/logs/apache_access/*  > /data/logs/20200312/apache_access_404_$now_time.txt

2,python腳本發送信息給羣機器人

# encoding: utf-8
import json
import requests
import sys
import datetime

now_time=datetime.datetime.now().strftime('%Y%m%d_%H%M')
print now_time     #腳本執行時間


log_name="/data/logs/20200312/apache_access_404_%s.txt" % now_time   #文件名

count = len(open(r'%s' % log_name,'rU').readlines())          #日誌行數


def send_msg(url):
    headers = {'Content-Type': 'application/json;charset=utf-8'}
    data = {
        "msgtype": "link",
        "link": {
            "text":  "%s  sh_yx_cong3 \n日誌行數:%s" %(now_time, count),       #羣機器人分享的標題
            "title": "sh_yx_cong3 %s apache_access_404_log" %(now_time),      #羣機器人分享的內容
            "picUrl": "",                                                                                            #羣機器人分享鏈接的圖片
            "messageUrl": "羣機器人分享的鏈接" %(now_time)                                                  #羣機器人分享鏈接的地址
        }
    }
    r = requests.post(url,data = json.dumps(data),headers=headers)
    return r.text
if __name__ == '__main__':
   url = 'https://oapi.dingtalk.com/robot/send?access_token=你自己的羣機器人地址'

if count != 0:                              #如果日誌爲空,則不發送
    print(send_msg(url))
else:
    print('log_len != 0')

3,設置cron定時執行腳本

crontab -e
1 */8 * * * /usr/bin/bash /root/script/f1_greplog.sh && /usr/bin/python/2.7 /root/script/f2_error_404log.py

4,實際效果
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章