2012-03-15 4 views

答えて

0

Nagios-Core-32bitは32ビットOSしかサポートしていない場合がありますが、時にはWin7 64bitで監視する必要がありますので、最終的には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() 
関連する問題