Sourcecodes - check_bindstats

Sprachenübersicht/Python/Nagios

check_bindstats

Diese Seite wurde 1079 mal aufgerufen.

Dieser Artikel wurde in einem Wikiweb System geschrieben, das heißt, Sie können die Artikel jederzeit editieren, wenn Sie einen Fehler gefunden haben, oder etwas hinzufügen wollen.

Editieren Versionen Linkpartnerschaft Bottom Printversion

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?

Editieren Versionen Linkpartnerschaft Top Printversion

Haben Sie einen Fehler gefunden? Dann klicken Sie doch auf Editieren, und beheben den Fehler, keine Angst, Sie können nichts zerstören, der Artikel kann wiederhergestellt werden.

Sprachenübersicht/Python/Nagios/check_bindstats