linux 使用shell/python编写钉钉自动监控报警脚本

系统版本:centos7.9

python版本:3.6

目录:一、添加钉钉机器人

           二、编写脚本

           三、测试

一、添加钉钉机器人

1.1点击智能群助手

 1.2 添加机器人,因我已创建,所以会显示一个运维报警。

 1.3 添加一个机器人

1.4 选择webhook自定义

1.5 确认添加,我选择的是IP段,把服务器公网IP填进去就行,可以去看下左侧的说明文档。

 

 1.6 创建好后保存好webhook链接

 二、编写报警脚本,随便新建个*.py即可,该项目创建的为ding.py

2.1 编写py脚本

cd /root/
touch ding.py
vim ding.py
#######以下为py脚本内容#######
#!/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] #来标识是那个服务器发送的警报


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 里面有两个变量,第一个是日志路径,第二个是自定义的服务器名称。

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

2.3 现在我们写一个sh脚本来引用上面的py脚本,我把该脚本放在了/etc/rc.d/下,命名为ding.sh

cd /etc/rc.d/
touch ding.sh
vim ding.sh
#######以下为sh脚本内容#######
#!/bin/bash
nohup python /root/ding.py /日志路径/php_errors.log 生产A服务器php日志报警: &
nohup python /root/ding.py /日志路径/error.log 生产A服务器前端nginx日志报警: &
nohup python /root/ding.py /日志路径/api.error.log 生产A服务器后端nginx日志报警: &

2.4 可以看到上面使用了nohup来设置后台运行,并且绝对路径写了刚刚py脚本所在的位置,变量1写了日志绝对路径,变量2写了自定义发送到钉钉的后缀机器名称。

2.5 现在把该脚本设置开机自启动。

vim /etc/rc.d/rc.local

 2.6 把以下内容添加到末尾

bash    /etc/rc.d/ding.sh

2.7 现在把脚本添加执行权限,注意:默认rc.local不引用,需要添加执行权限才会开机引用

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

三、测试

3.1 现在我们可以进行测试,有两种方式。

3.1.1、重启机器

3.1.2、直接运行ding.sh

因该机器为线上服务器,所以选择第二种方式进行测试

3.2 运行ding.sh

cd /etc/rc.d/
./ding.sh

 直接回车就行

3.3 现在看下进程是否运行

ps aux |grep ding

可以看到脚本正常在运行。

3.4 现在可以手动写入一个日志查看钉钉是否正常报警。

cat >> /日志路径/error.log << EOF
>测试报警
>EOF

 有问题可以评论,看到了会回复。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超能力大雄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值