Metadata-Version: 1.1
Name: python-nagios-helpers
Version: 0.1.15
Summary: Helper Classes for plugin development and nagios management.
Home-page: https://github.com/elapouya/python-nagios-helpers
Author: Eric Lapouyade
Author-email: elapouya@gmail.com
License: LGPL 2.1
Description: 
        =====================
        python-nagios-helpers
        =====================
        
        python-nagios-helpers A.K.A **naghelp** is a collections of classes for building nagios *Active* plugins.
        It is higly recommended to use `python-textops <http://python-textops.readthedocs.org>`_ 
        to 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=lgpl
        
        On 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__=0
        
        Or 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__=0
        
        Naghelp 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      Hostname
        
        
        For more information, `Read The Fabulous Manual <http://python-nagios-helpers.readthedocs.org>`_ !
        
        
        News
        ====
        0.1.15 (2017-03-20)
        -------------------
        Fix case where there is no docstring for a plugin
        
        0.1.14 (2017-01-31)
        -------------------
        Remove version limitation over sphinx package in setup.py
        
        0.1.12 (2017-01-26)
        -------------------
        remove unusefull code
        
        0.1.11 (2017-01-26)
        -------------------
        runsh* now return extended type for textops operations
        
        0.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 separated
        
        0.1.7 (2016-04-14)
        ------------------
        Add Execution date for active plugins in plugin informations section
        Add Update date in plugin informations for Managed hosts
        
        0.1.6 (2016-04-12)
        ------------------
        Add HostsManager Mixin
        Add collect.Http class
        Create Lockfile utility
        move Timeout utility in tools.py
        
        0.1.5 (2016-03-23)
        ------------------
        Add Gauges Mixin
        Add docs
        Many other improvements
        
        0.1.4 (2016-03-08)
        ------------------
        Better error management
        
        0.1.3 (2016-01-13)
        ------------------
        Add docs
        
        0.1.1 (2016-01-08)
        ------------------
        Add a launcher
        
        0.1.0 (2015-12-17)
        ------------------
        Add some docs, tests
        Tune some functions
        
        0.0.7 (2015-11-19)
        ------------------
        First working version
        
Keywords: naghelp
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
