钉钉群助手报警服务器日志信息

需求: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,实际效果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值