Package: python-nagios-helpers
python-nagios-helpers A.K.Anaghelpis a collections of classes for building nagiosActiveplugins.
It is higly recommended to usepython-textopsto manipulate collected data.Here is an exemple of an active python plugin, create a file linux_fsfull.py:from naghelp import *
from textops import *

class LinuxFsFull(ActivePlugin):
    """ Basic plugin to monitor full filesystems on Linux systems"""
    cmd_params = 'user,passwd'
    tcp_ports = '22'

    def collect_data(self,data):
        data.df = Ssh(self.host.ip,self.host.user,self.host.passwd).run('df -h')

    def parse_data(self,data):
        df = data.df.skip(1)
        data.fs_critical = df.greaterequal(98,key=cuts(r'(\d+)%')).cut(col='5,4').renderitems()
        data.fs_warning = df.inrange(95,98,key=cuts(r'(\d+)%')).cut(col='5,4').renderitems()
        data.fs_ok = df.lessthan(95,key=cuts(r'(\d+)%')).cut(col='5,4').renderitems()

    def build_response(self,data):
        self.response.add_list(CRITICAL,data.fs_critical)
        self.response.add_list(WARNING,data.fs_warning)
        self.response.add_list(OK,data.fs_ok)

if __name__ == '__main__':
   LinuxFsFull().run()To excute manually:python linux_fsfull.py --ip=127.0.0.1 --user=naghelp --passwd=lgplOn error, it may return something liek this:STATUS : CRITICAL:2, WARNING:1, OK:3
==================================[  STATUS  ]==================================

----( CRITICAL )----------------------------------------------------------------
/ : 98%
/home : 99%

----( WARNING )-----------------------------------------------------------------
/run/shm : 95%

----( OK )----------------------------------------------------------------------
/dev : 1%
/run : 1%
/run/lock : 0%


============================[ Plugin Informations ]=============================
Plugin name : __main__.LinuxFsFull
Description : Basic plugin to monitor full filesystems on Linux systems
Ports used : tcp = 22, udp = none
Execution time : 0:00:00.673851
Exit code : 2 (CRITICAL), __sublevel__=0Or if no error:OK

============================[ Plugin Informations ]=============================
Plugin name : __main__.LinuxFsFull
Description : Basic plugin to monitor full filesystems on Linux systems
Ports used : tcp = 22, udp = none
Execution time : 0:00:00.845603
Exit code : 0 (OK), __sublevel__=0Naghelp will automatically manage some options:$ python linux_fsfull.py -h
Usage:
linux_fsfull.py [options]

Options:
  -h, --help         show this help message and exit
  -v                 Verbose : display informational messages
  -d                 Debug : display debug messages
  -l FILE            Redirect logs into a file
  -i                 Display plugin description
  -n                 Must be used when the plugin is started by nagios
  -s                 Save collected data in a temporary file
  -r                 Use saved collected data (option -s)
  -a                 Collect data only and print them
  -b                 Collect and parse data only and print them

  Host attributes:
    To be used to force host attributes values

    --passwd=PASSWD  Passwd
    --ip=IP          Host IP address
    --user=USER      User
    --name=NAME      HostnameFor more information,Read The Fabulous Manual!News0.2.3 (2018-06-20)fix priv_protocol argument for collect.Snmp0.2.2 (2018-02-28)Add object_identity_to_string option in Snmp class
Add ignore_errors option in Snmp.*walk methods
Add SnmpWalkError exception to get truncated result0.2.1 (2018-02-01)Update Winrm collect class0.2.0 (2018-02-01)Add Winrm collect class0.1.23 (2017-09-08)Move save_host_data() in plugin run() method0.1.22 (2017-07-07)Add Ssh run_script(), get() and put() methods0.1.21 (2017-04-26)Add textops.logger as managed logger0.1.20 (2017-04-26)moving host debug traces into load_host_data()0.1.19 (2017-04-22)Cache discovered plugins in find_plugins()0.1.18 (2017-04-07)add post and session handling in Http() class0.1.17 (2017-04-05)do not add logger handler more than once0.1.16 (2017-03-27)Now possible to instanciate a plugin with extra options0.1.15 (2017-03-20)Fix case where there is no docstring for a plugin0.1.14 (2017-01-31)Remove version limitation over sphinx package in setup.py0.1.12 (2017-01-26)remove unusefull code0.1.11 (2017-01-26)runsh* now return extended type for textops operations0.1.10 (2016-09-05)add collect_* options
add timeout for collect_data()0.1.9 (2016-08-26)Map all options in host object (not only host__*)0.1.8 (2016-08-04)Perf data in plugin output are now space separated0.1.7 (2016-04-14)Add Execution date for active plugins in plugin informations section
Add Update date in plugin informations for Managed hosts0.1.6 (2016-04-12)Add HostsManager Mixin
Add collect.Http class
Create Lockfile utility
move Timeout utility in tools.py0.1.5 (2016-03-23)Add Gauges Mixin
Add docs
Many other improvements0.1.4 (2016-03-08)Better error management0.1.3 (2016-01-13)Add docs0.1.1 (2016-01-08)Add a launcher0.1.0 (2015-12-17)Add some docs, tests
Tune some functions0.0.7 (2015-11-19)First working version