文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python监控服务器状态

2023-01-30 21:55

关注

主要监控域名能否访问,还有redis服务是否正常

# coding: utf-8
__author__ = 'www.py3study.com'
import os
import time
import subprocess
import socket
class testing_server(object):
    def __init__(self):
        # 需要检测的域名,最后添加了一个不存在的域名,用来测试脚本的正确性,如有多个域名可往这个list里面添加
        self.domain_name_list = ['www.py3study.com', 'py3study.com', 'm.py3study.com', 'zabbix.admin.com']
        self.ping_server_call()
        self.check_aliveness()

    def ping_server_call(self):
        fnull = open(os.devnull, 'w')
        for i in self.domain_name_list:
            domain_name = i
            #使用subprocess模块,用来过滤掉命令输出和返回信息
            result = subprocess.call('ping ' + domain_name + ' -n 3', shell=True, stdout=fnull, stderr=fnull)
            current_time = time.strftime('%Y%m%d-%H%M%S', time.localtime())
            time.sleep(1)
            if result:
                print('时间: {} 域名 {} ping fail'.format(current_time, domain_name))
            else:
                print('时间: {} 域名 {} ping ok'.format(current_time, domain_name))
        fnull.close()

    def check_aliveness(self):
        sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sk.settimeout(1)
        ip = '192.168.40.250' #ip对应redis服务器的ip地址
        port = 6379  #端口默认是6379,如果修改了redis的端口,这里也必须改
        try:
            sk.connect((ip, port))
            print('server:{} 端口:{} redis is OK !'.format(ip, port))
            return True
        except Exception:
            print('sever:{} 端口:{} redis is NOT OK !'.format(ip, port))
            return False
        finally:
            sk.close()

if __name__ == '__main__':
    st = testing_server()

上面的脚本还做了redis状态监控,这里测试,开启本地的redis服务(windows下面的安装很简单,就不写了)

开启redis,使用命令redis-server.exe redis.windows.conf 如图blob.png

运行脚本

blob.png

红色框是我添加的一个不存在的域名,这里很明显ping失败了,证明程序是没有问题,redis的状态也正常

再把redis关了,在运行一次脚本,看看redis的状态是否正常

blob.png

关闭后,redis状态获取失败,脚本正常!

这个程序还比较简单,如有兴趣,也可以自己添加一些更多的服务进来监控

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-服务器
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯