热门IT资讯网

nagios监控温度脚本

发表于:2024-11-25 作者:热门IT资讯网编辑
编辑最后更新 2024年11月25日,nagios监控温度之python脚本由于机房温度夏天变高了,就写了一个脚本监控温度,利用nagios可以很直观的实时监控,同时本文对于用Python写nagios脚本的新手来说也是个借鉴,不啰嗦了代

nagios监控温度之python脚本

由于机房温度夏天变高了,就写了一个脚本监控温度,利用nagios可以很直观的实时监控,同时本文对于用Python写nagios脚本的新手来说也是个借鉴,不啰嗦了代码如下:

ps:由于涉及到密码问题,使用"*"来代替密码部分:

#!/usr/bin/env python# This file is part of the Glue Project.# Copyright (C) by SanPolo Co.Ltd.# All rights reserved.## See http://www.spolo.org/ for more information.## SanPolo Co.Ltd# http://www.spolo.org/# Any copyright issues, please contact: [email protected]# writed by wangzhenyu# 2013-07-23import osimport reimport sysimport paramikofrom optparse import OptionParserTEMP_OK=0TEMP_WR=1TEMP_CR=2TEMP_UK=3usage=  """    Usage: check_temp.py [-h | --help] [-H | --host]    example: check_temp.py -H 192.168.1.4    """def check_temp(hostname):    a=0    index=0    regex=re.compile(r'Core.*\+(\d+).*\+(\d+).*\+(\d+)')    client=paramiko.SSHClient()    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())    client.connect('%s' % hostname, 22, username='root', password="*********", timeout=4)    stdin,stdout,stderr = client.exec_command("sensors")    temp=stdout.readlines()    for line in temp:        match=regex.search(line)        if match == None:            pass        else:            index+=1            a+=int(match.group(1))    result=a/index    if result <= 50:        print "the average temprature of core: %d" % result        sys.exit(TEMP_OK)    elif result >50 and result <= 60:        print "the temprature is high"        sys.exit(TEMP_WR)    elif result > 60 and result <= 80:        print "so dangerous check it right now"        sys.exit(TEMP_CR)    else:        print "the temprature is very high shutdown please"        sys.exit(TEMP_UK)def getoption():    parser=OptionParser(add_help_option=False)    parser.add_option("-h",action="store_const", const=1,dest="use_way",help="%s" % usage)    parser.add_option("-H",dest="temp_cpu")    (options,args)=parser.parse_args()    hostname = options.temp_cpu    if options.use_way:        print usage    if options.temp_cpu:                    check_temp(hostname)getoption()


0