Common interface of tons protocals, used for monitoring tools, like nagios/icinga...
Project description
arguspy
Arguspy is pure python code.
It’s a API packge for monitoring plugins, like Nagios, Icinga, Naemon, Shinken, Centreon, Opsview and Sensu.
How to install
Use pip to install:
$ pip install arguspy
How to use
Just import what protocol you need:
from arguspy.ftp_ftplib import Ftp from arguspy.http_requests import Http from arguspy.mssql_pymssql import Mssql from arguspy.mysql_pymysql import Mysql from arguspy.ssh_paramiko import Ssh from arguspy.winrm_pywinrm import WinRM from arguspy.wmi_sh import Wmi from arguspy.wmi_subprocess import Wmi
Then write your own function monitoring class:
class YourClass(Ftp/Mssql/Ssh/WinRM/Wmi/Http/Snmp/...): def __init__(self): super(YourClass, self).__init__() self.logger.debug("Init YourClass.") def define_sub_options(self): super(YourClass, self).define_sub_options() self.your_parser = self.subparsers.add_parser(...) self.your_parser.add_argument(...) ... def your_handle(self): """Put your function monitoring code here.""" # Default status is ok. status = self.ok # Call the API and get the monitoring data. # Read the document or check the API on python/ipython Interactive console. # help(Ftp/...) # dir(Ftp/...) ... # Compare with the warning and critical value and change the status. ... self.shortoutput = "..." self.longoutput.append(...) self.perfdata.append(...) self.logger.debug("Return status and output.") status(self.output())
If you put more than one function monitoring class in one file(Not recommend):
class Register(YourClass1, YourClass2, ...): def __init__(self): super(Register, self).__init__()
Last step:
def main(): plugin = Register() if plugin.args.option == 'action': plugin.action_handle() elif ...: ... else: plugin.unknown("Unknown actions.") if __name__ == "__main__": main()
How to extends
Check the TODO list, you can give test examples or documents.
Also you can pull request for your code.
TODO
Write unit tests in tests/
Write docs in docs/
Write examples in examples/
Compatible with Python3(2.0.0)
vSphere monitoring(1.6.0)
LDAP monitoring(1.5.0)
SNMP monitoring(1.4.0)
Fix all pylint errors(1.3.3)
Implement threshold(1.3.2)
Refactor argparse(1.3.1)
Threshold(1.3.0)
Contribution
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for arguspy-1.3.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 232e827758a9e7e07cd21d1089d5592148f362cb385ef6f51b32b2d18ce02fc8 |
|
MD5 | ba202a2380b4cdc75e3b5546ef9ca2c3 |
|
BLAKE2b-256 | 332025df68df61daefdfbc87885bd58edde6670c369dfdfc5819b4165b6f58ca |