python 服务器监控

系统 1522 0

#!/usr/bin/python
# -*- coding: UTF-8 -*-
#####################################
##    created by basededato        ##
##    2018-01-02                   ##
##    监控
#####################################

import os
import json

class Monitor(object):

    def __init__(self , Cmd):
        self.Cmd = Cmd


    # vmstat cpu监控
    def cpuVmstat(self):
        fn_data = os.popen(self.Cmd).read().strip()
        lines = fn_data.split('\n')

        us = 0
        sy = 0
        wa = 0
        idle = 0

        for i in lines[3:]:  # 从第4行循环取数据
            line = i.split()
            us = us + int(line[-5])
            sy = sy + int(line[-4])
            wa = wa + int(line[-2])
            idle = idle + int(line[-3])

        us = us / len(lines[3:])
        sy = sy / len(lines[3:])
        wa = wa / len(lines[3:])
        idle = idle / len(lines[3:])
        # used=100-wa-idle

        cpuused_info = {'CPU_WA': wa, 'CPU_IDLE': idle, 'CPU_US': us, 'CPU_SY': sy}
        return cpuused_info


    # cpu_load_average监控
    def cpuLoadAvreage(self):

        fn_data = os.popen(self.Cmd).read().strip()
        lines = fn_data.split('\n')
        for i in lines[0:]:
            line = i.split()
            load1mins = line[-3].replace(',', '')
            load5mins = line[-2].replace(',', '')
            load15mins = line[-1].replace(',', '')

            if line[3].replace(',', '') == 'days':
                uptime = (line[2] + line[3] + line[4]).replace(',', '')
            elif line[3].replace(',', '') == 'min':
                uptime = (line[2] + line[3]).replace(',', '')
            else:
                uptime = line[2].replace(',', '')

            cpuload_info = {'POWER_UPTIME': uptime, 'LOAD_AVERAGE_1MINS': load1mins, 'LOAD_AVERAGE_5MINS': load5mins, 'LOAD_AVERAGE_15MINS': load15mins}
            return cpuload_info


    # 磁盘空间监控
    def diskFree(self):
        fn_data = os.popen(self.Cmd).read().strip()
        lines = fn_data.split('\n')

        for i in lines[0:]:
            line = i.split()

            if str(line) != '[]':
                used = line[4]
                list = line[5]

                diskused_info = {'DISKURL': list, 'DISK_USED': used}
                return diskused_info

            else:
                diskused_info = {'DISKURL': 'config error,please check cfg file'}
                return diskused_info


   
 


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论