2012-03-15 1 views

답변

0

당신의 추천에 감사하지만, Nagios-Core-32bit는 32 비트 OS 만 지원할 수 있습니다. 때로는 Win7 64 비트를 모니터링해야하므로 마침내 필자의 ​​요구 사항 인 WMI를 사용하는 Python 코드 지원

#!/usr/bin/python # 
# -*- coding: utf-8 -*- 
import logging 
import logging.handlers 
import wmi 
import time 
import ConfigParser 
class CpuMonitor(object): 
    def __init__(self): 
     cf = ConfigParser.ConfigParser() 
     cf.read("config.ini") 
     if cf.has_option("mointor", "interval"): 
      self._interval = cf.get("mointor", "interval") 
     else: 
      self._interval = 5 
     if cf.has_option("mointor", "logfile"): 
      self._logfile = cf.get("mointor", "logfile") 
     else: 
      self._logfile = "stdout.log" 
    def monitor_cpu(self): 
     c = wmi.WMI() 
     logger = logging.getLogger() 
     hdlr = logging.handlers.RotatingFileHandler(self._logfile,maxBytes=102400000,backupCount=3) 
     formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') 
     hdlr.setFormatter(formatter) 
     logger.addHandler(hdlr) 
     logger.setLevel(logging.INFO) 
     while True: 
      for cpu in c.Win32_Processor(): 
       logger.info('Utilization: %s: %d %%' % (cpu.DeviceID, cpu.LoadPercentage)) 
       time.sleep(self._interval) 

if __name__ == "__main__": 
    w = CpuMonitor() 
    w.monitor_cpu() 
관련 문제