Navigation
Artikel
Stuff
RSS Feeds
|
Sourcecodes - check_bindstatsSprachenübersicht/Python/Nagios Keywords: nagios bind stats check python Dieses Skript hat (noch) keine Funktion als 'Check' sondern liefert derzeit lediglich die Performance-Daten eines Bind-Servers. Diese können dann z.B. mit PNP4Nagios ausgewertet werden.
check_bindstats: #!/bin/env python import sys,os rndc_bin = '/usr/sbin/rndc' def usage(): usage = "Usage: " + sys.argv[0] + " -f statsfile" return usage def getstats(statsfile): fp = open(statsfile, 'r') content = fp.readlines()[-8:] fp.close() timestamp = int(content[0].split('(')[1].split(')')[0]) stats = [ ('timestamp', timestamp), ] for row in content[1:7]: name, value = row.split(' ') stats.append( (name, int(value)) ) return stats def main(): try: statsfile = sys.argv[1+sys.argv.index('-f')] except: print "no statsfile defined" print usage() sys.exit(1) old_stats = getstats(statsfile) os.system(rndc_bin + ' stats') new_stats = getstats(statsfile) diff_stats = [] for name, old_value in old_stats: new_value = new_stats.pop(0)[1] if new_value < old_value: old_value = 0 diff_stats.append( (name, new_value - old_value) ) time_diff = diff_stats.pop(0)[1] msg = "0 - DNS OK |" for key, value in diff_stats: msg += key + "=" + str(value/time_diff) + " " print msg sys.exit(0) if __name__ == '__main__': main() Gibt es noch irgendwelche Fragen, oder wollen Sie über den Artikel diskutieren? Sprachenübersicht/Python/Nagios/check_bindstats |