发布时间:2017-11-18 00:47:56编辑:Run阅读(8181)
主要监控域名能否访问,还有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
51135
50539
41153
37991
32456
29359
28228
23073
23042
21366
1406°
2098°
1749°
1675°
1970°
1753°
2427°
4085°
3961°
2831°