Nagios Business Process JSON-API ================================ Starting with version 0.9.6 the Nagios Business Process AddOns have got a JSON-API. This means You can query state information of business processes from the Nagios Business Process AddOns in JSON format to use the results e. g. in Your own scripts or for building up Your own GUI. You can get any information about any business processes also by querying the API. That means: Any information available in the Nagios Business Process AddOns can be requested by API too. This document describes this API. The JSON-API is being already used by the Business Process Cronks in the new Icinga-Web. Calling the API =============== There are two ways: 1. Call a local script on the machine Nagios Business Process AddOns are running at, e. g. sbin/nagios-bp.cgi outformat=json (within Nagios Business Process AddOns' install path) 2. Call the script remote by HTTP(S): http://nagioshost.example.com/nagiosbp/cgi-bin/nagios-bp.cgi?outformat=json Normally You have to give username and password by HTTP basic auth. A browser asks for Your credentials, but on a script You have to add them, e. g. curl -u nagiosadmin:secret http://nagioshost.example.com/nagiosbp/cgi-bin/nagios-bp.cgi?outformat=json In both cases You get back a data structure in JSON format. There are modules for every common scriping language to read JSON. Use them! Parameters ========== By adding more parameters when calling You can decide what information You want to get. Append these parameters with a blank when calling local and with a & when using HTTP(S). e. g. sbin/nagios-bp.cgi outformat=json tree=mail or http://nagioshost.example.com/nagiosbp/cgi-bin/nagios-bp.cgi?outformat=json&tree=mail If none of the parameters tree or detail is given, a complete list of all defined business processes is returned, the default view. tree ---- give the name of a business process as argument, e. g. tree=mail returns: only one level of hierarchy in the tree of one business process excludes: detail (give parameter tree or detail or none of them, but never both) detail ------ give the name of a business process as argument, e. g. detail=mail returns: plain list of all components in this business process without hierarchy, going down recursively excludes: tree (give parameter tree or detail or none of them, but never both) conf ---- give the name of one config as argument, e. g. conf=nagios-bp-second-view to read definition of business processes from etc/nagios-bp-second-view.conf instead of default file etc/nagios-bp.conf hint: the leave out path of the file and the .conf extension lang ---- give wanted language of output as argument, e. g. lang=en it is only used to determine from which language files You want to take strings for display_prio_description and display_prio_headline Output Description ================== The resulting JSON at the top level contains a hash map with the following keys: business_processes only in default view refers to a section with all the business processes business_process only in tree or detail view refers to a section with all components of the given business process priority_definitions refers to a section giving display strings for every priority used in any of the business processes found in the business_process section. Parameter lang is only for this section. json_created refers to a very simple section containing only on timestamp when this output was created Output sections in detail ========================= business_processes ------------------ hashmap with references to business_process objects key is the business process name business_process ---------------- hashmap with following keys, where values are taken from the business process definition bp_id the name of a business process display_name the string for displaying it display_prio in which prio is the process displayed may be 0 if not displayed in the top level view of the web GUI info_url the URL You get to when clicking the little blue i icon on the GUI operator the operator used in definition of this process may be: and, or, of hardstate the actual (hard) state of this business process components array with all components see description of components below components ---------- array of components in tree view or detail view components can be subprocesses or single services in detail view components are always single services subprocesses have fields: subprocess the name of a subprocess display_name the string for displaying this subprocess hardstate the actual (hard) state of this subprocess display_prio in which prio is the subprocess displayed may be 0 if not displayed in the top level view of the web GUI single services have fields host hostname of the service service servicename of the service hardstate the actual (hard) state of this service plugin_output the plugin output of last check of this service priority_definitions -------------------- hashmap to priority definitions key is the id of the priority fields: display_prio_headline headline defined in language file for this priority display_prio_description description defined in language file for this priority json_created ------------ just a timestamp in format YYYY-MM-DD hh:mm:ss