发布时间:2017-11-18 00:47:56编辑:Run阅读(7315)
主要监控域名能否访问,还有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 如图
运行脚本
红色框是我添加的一个不存在的域名,这里很明显ping失败了,证明程序是没有问题,redis的状态也正常
再把redis关了,在运行一次脚本,看看redis的状态是否正常
关闭后,redis状态获取失败,脚本正常!
这个程序还比较简单,如有兴趣,也可以自己添加一些更多的服务进来监控
上一篇: python调用ip查询接口
下一篇: Linux安装NFS
47767
46275
37153
34657
29247
25907
24780
19880
19442
17934
5732°
6337°
5854°
5904°
7006°
5842°
5864°
6373°
6333°
7697°