__author__ = "Zenon Mousmoulas"

import os
import sys
import socket
import traceback
import urllib2
import cookielib
import simplejson as json
from optparse import OptionGroup
from NagiosPlugin import NagiosPlugin
from MultiPartForm import MultiPartForm

# Setup plugin
plugin = NagiosPlugin(
    version="1.0",
    usage="Usage: %prog -H <hostname> [-U <username>] -P <password> [options]",
    description="Nagios plugin for UBNT-M radios (over HTTP)")

plugin.parser.get_option(
    "-w"
).help += "s (signal,signal chain0,signal chain1,noise,ccq,airmax quality,airmax capacity,tx rate,rx rate)"
plugin.parser.get_option(
    "-c"
).help += "s (signal,signal chain0,signal chain1,noise,ccq,airmax quality,airmax capacity,tx rate,rx rate)"

connGroup = OptionGroup(plugin.parser, "Connection options")
connGroup.add_option(
    "-H",
    "--httphost",
    help=
    "HTTP(S) protocol, hostname, port (optional), as URL, e.g: http://example.com:port, https://example.com etc."
import urllib2
import cookielib

if sys.version_info < (2, 6):
    import simplejson as json
else:
    import json
from optparse import OptionGroup
from NagiosPlugin import NagiosPlugin
from MultiPartForm import MultiPartForm
from DictDotLookup import DictDotLookup

# Setup plugin
plugin = NagiosPlugin(
    version="1.0",
    usage="Usage: %prog -H <hostname> [-U <username>] -P <password> [options]",
    description="Nagios plugin for UBNT-AF24 radios (over HTTP)",
)

plugin.parser.get_option(
    "-w"
).help += "s (airfiber.rxpower0,airfiber.rxpower1,airfiber.rxcapacity,airfiber.txcapacity,airfiber.txmodrate,wireless.distance,airfiber.dactemp0,airfiber.dactemp1,gps.dop_quality,gps.sats)"
plugin.parser.get_option(
    "-c"
).help += "s (airfiber.rxpower0,airfiber.rxpower1,airfiber.rxcapacity,airfiber.txcapacity,airfiber.txmodrate,wireless.distance,airfiber.dactemp0,airfiber.dactemp1,gps.dop_quality,gps.sats)"

boolGroup = OptionGroup(plugin.parser, "Boolean check options")
boolGroup.add_option(
    "-b",
    "--boolean",
    help="Check that specific keys have particular values, otherwise the plugin returns CRITICAL (default: airfiber.rxpower0valid=1,airfiber.rxpower1valid=1,airfiber.rxoverload0=0,airfiber.rxoverload1=0,gps.status=1,gps.fix=1,airfiber.data_speed=1000Mbps-Full,airfiber.linkstate=operational)",
Beispiel #3
0
import socket
import traceback
import urllib2
import cookielib
if sys.version_info < (2, 6):
    import simplejson as json
else:
    import json
from optparse import OptionGroup
from NagiosPlugin import NagiosPlugin
from MultiPartForm import MultiPartForm
from DictDotLookup import DictDotLookup

# Setup plugin
plugin = NagiosPlugin(
    version="1.0",
    usage="Usage: %prog -H <hostname> [-U <username>] -P <password> [options]",
    description="Nagios plugin for UBNT-AF24 radios (over HTTP)")

plugin.parser.get_option(
    "-w"
).help += "s (airfiber.rxpower0,airfiber.rxpower1,airfiber.rxcapacity,airfiber.txcapacity,airfiber.txmodrate,wireless.distance,airfiber.dactemp0,airfiber.dactemp1,gps.dop_quality,gps.sats)"
plugin.parser.get_option(
    "-c"
).help += "s (airfiber.rxpower0,airfiber.rxpower1,airfiber.rxcapacity,airfiber.txcapacity,airfiber.txmodrate,wireless.distance,airfiber.dactemp0,airfiber.dactemp1,gps.dop_quality,gps.sats)"

boolGroup = OptionGroup(plugin.parser, "Boolean check options")
boolGroup.add_option(
    "-b",
    "--boolean",
    help=
    "Check that specific keys have particular values, otherwise the plugin returns CRITICAL (default: airfiber.rxpower0valid=1,airfiber.rxpower1valid=1,airfiber.rxoverload0=0,airfiber.rxoverload1=0,gps.status=1,gps.fix=1,airfiber.data_speed=1000Mbps-Full,airfiber.linkstate=operational)",
__version__ = "1.0"
__author__ = "Zenon Mousmoulas"

import os
import sys
import socket
import traceback
import urllib2
import cookielib
import simplejson as json
from optparse import OptionGroup
from NagiosPlugin import NagiosPlugin
from MultiPartForm import MultiPartForm

# Setup plugin
plugin = NagiosPlugin (version="1.0", usage="Usage: %prog -H <hostname> [-U <username>] -P <password> [options]", description="Nagios plugin for UBNT-M radios (over HTTP)")

plugin.parser.get_option ("-w").help += "s (signal,signal chain0,signal chain1,noise,ccq,airmax quality,airmax capacity,tx rate,rx rate)"
plugin.parser.get_option ("-c").help += "s (signal,signal chain0,signal chain1,noise,ccq,airmax quality,airmax capacity,tx rate,rx rate)"

connGroup = OptionGroup (plugin.parser, "Connection options")
connGroup.add_option ("-H", "--httphost", help="HTTP(S) protocol, hostname, port (optional), as URL, e.g: http://example.com:port, https://example.com etc.")
plugin.parser.add_option_group (connGroup)

authGroup = OptionGroup (plugin.parser, "Authentication options")
authGroup.add_option ("-U", "--username", default="ubnt", help="username (default: 'ubnt')")
authGroup.add_option ("-P", "--password", help="password")
plugin.parser.add_option_group (authGroup)

try:
	plugin.begin()
Beispiel #5
0
#!/usr/bin/env python
"""Example plugin for NagiosPlugin class."""

import sys

from NagiosPlugin import NagiosPlugin

n = NagiosPlugin("An example check")
argparser = n.defaultArgs()
try:
    args = argparser.parse_args(sys.argv[1:])

    # Check something
    def checkSomething():
        return 5

    res = checkSomething()

    messages = { 
        n.CRITICAL: "Something gone wild.",
        n.WARNING: "Something getting out of bounds.",
        n.OK: "Everything fine."
        }

    stat = n.CRITICAL * args.critical[0](res)
    stat = stat or n.WARNING * args.warning[0](res)

    out = n.format([(stat, messages[stat])])
except Exception as Err:
    out = n.format([(n.UNKNOWN, Err[-1])])