美文网首页
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