美文网首页
0基础上手python编程,实践URL监控+企业微信机器人告警

0基础上手python编程,实践URL监控+企业微信机器人告警

作者: 王忘杰 | 来源:发表于2023-05-10 20:35 被阅读0次

    全民制作人大家好,我是学习python两天半的练习生王忘杰,喜欢路由交换、linux、网络安全,开整!这是我的第二篇0基础python文章,请大家支持,谢谢~

    开发思路

    用于监控指定的URL,在我的场景中,我是从腾讯VPS上监控公司宽带出口,当URL访问超时时,即为宽带故障。

    设计思路很简单,访问失败发送告警,访问成功发送恢复通知,同时要使用配置文件进行配置,防止持续重复告警。

    绘制开发流程图

    使用python语言实现

    #!/usr/bin/python3

    import requests

    import time

    import json

    import os

    #监测URL是否正常响应

    def url_check(url):

        #当前时间

    check_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

    try:

            #请求URL, 设置3s超时, 忽略SSL证书

    r = requests.get(url, timeout=3, verify=False)

    if r.status_code == 200:

    fo = open(config,"r")

    line = fo.read(1)

    print(line)

                #判断配置文件内容

    if line == "1":

    print("发送报警")

    fo.close()

    fo = open(config, "w")

    fo.write('0')

    print("配置重置为0")

                    #请求响应状态

    msg = "监控的URL:%s%sURL恢复状态正常:%s%s监测时间:%s" % (

    url, "\n\n", r.status_code, "\n\n", check_time)

                    #推送消息

    yun_push(msg)

    else:

    print("当前配置为",line)

    fo = open(config, "w")

    fo.write('0')

    print("配置重置为0")

    else:

    fo = open(config, "r")

    line = fo.read(1)

    print(line)

    if line == "1":

    print("退出程序")

    else:

    print("发送报警")

    fo.close()

    fo = open(config, "w")

    fo.write('1')

    print("配置重置为1")

                    #请求响应状态

    msg = "监控的URL:%s%sURL访问异常:%s%s监测时间:%s" % (

    url, "\n\n", r.status_code, "\n\n", check_time)

                    #推送消息

    yun_push(msg)

    except:

    fo = open(config, "r")

    line = fo.read(1)

    print(line)

    if line == "1":

    print("退出程序")

    else:

    print("发送报警")

    fo.close()

    fo = open(config, "w")

    fo.write('1')

    print("配置重置为1")

                #请求响应状态

    msg = "监控的URL:%s%sURL访问失败,无法连接%s监测时间:%s" % (

    url, "\n\n", "\n\n", check_time)

                #推送消息

    yun_push(msg)

    def yun_push(content):

    url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=用自己的'

    s = json.dumps({'msgtype': 'text', 'text': {"content" : content}})

    print(requests.post(url, data=s).text)

    if __name__ == '__main__':

        #判断配置文件是否存在,不存在则生成配置文件并退出,配置文件则存在执行

    config = './baidu.config'

    if not os.path.exists(config):

    print("配置文件不存在")

    file = open(config,'w')

    file.close()

    print("配置文件已生成")

    else:

    print("配置文件存在,执行URL检测")

    url_check("https://www.baidu.com/")

    运行效果

    正式使用

    在VPS部署python脚本,并设置定时任务即可

    相关文章

      网友评论

          本文标题:0基础上手python编程,实践URL监控+企业微信机器人告警

          本文链接:https://www.haomeiwen.com/subject/kyujsdtx.html