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

python监控服务器状态

作者头像
py3study
发布2018-08-02 15:12:24
2.8K0
发布2018-08-02 15:12:24
举报
文章被收录于专栏:python3

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

代码语言:javascript
复制
# 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

运行脚本

blob.png
blob.png

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

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

blob.png
blob.png

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

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档