Python library to write Icinga plugins.
To install, simply use pip or easy_install:
pip install pycinga
Documentation for the latest version can always be found at http://pycinga.readthedocs.io/en/latest.
The core features supported by Pycinga:
- Parsing command line arguments such that the standard expected arguments (such as -H, -w, -c) are accepted.
- Returning proper POSIX exit code based on status.
- Parsing Icinga range formats (such as “@10:20”, “~:50”, “10”, etc.)
- Outputting status and message.
- Outputting performance data.
What all these features result in is a concise, simple, and guidelines-compliant Python-based Icinga plugin:
from pycinga import Plugin class UserCheck(Plugin): """ Icinga plugin to check how many users are logged into this machine. """ def check(self): # Get the number of logged in users, for now we hardcode users = 27 # Build a response and exit. This `response_for_value` automatically # creates a response with the proper status given the value and the # warning/critical ranges passed in via the command line. response = self.response_for_value(users, "%d users" % users) response.set_perf_data("users", users) response.set_perf_data("another metric", 27, "MB") return response if __name__ == 'main': # Build the plugin instance and run it. This will also parse # command line arguments by default. UserCheck().check().exit()
While the above example subclasses Plugin, you’re of course welcome to simply call Plugin`s methods directly and build a ``Response` yourself.