前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python监控服务器状态

python监控服务器状态

作者头像
py3study
发布于 2018-08-02 07:12:24
发布于 2018-08-02 07:12:24
2.9K00
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 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状态获取失败,脚本正常!

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/11/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档