]> granicus.if.org Git - icinga2/commitdiff
Documentation: Reorganize Livestatus and alternative Frontends
authorMichael Friedrich <michael.friedrich@gmail.com>
Wed, 28 Oct 2015 20:07:12 +0000 (21:07 +0100)
committerMichael Friedrich <michael.friedrich@gmail.com>
Wed, 28 Oct 2015 20:21:50 +0000 (21:21 +0100)
fixes #10482

24 files changed:
doc/1-about.md
doc/11-icinga2-client.md
doc/12-agent-based-checks.md
doc/13-distributed-monitoring-ha.md
doc/14-addons-plugins.md
doc/15-alternative-frontends.md [deleted file]
doc/15-features.md [new file with mode: 0644]
doc/16-livestatus.md [deleted file]
doc/16-troubleshooting.md [moved from doc/17-troubleshooting.md with 95% similarity]
doc/17-upgrading-icinga-2.md [moved from doc/18-upgrading-icinga-2.md with 100% similarity]
doc/18-language-reference.md [moved from doc/20-language-reference.md with 98% similarity]
doc/19-library-reference.md [moved from doc/21-library-reference.md with 98% similarity]
doc/2-getting-started.md
doc/20-debug.md [moved from doc/22-debug.md with 100% similarity]
doc/21-migrating-from-icinga-1x.md [moved from doc/19-migrating-from-icinga-1x.md with 98% similarity]
doc/22-appendix.md [moved from doc/23-appendix.md with 100% similarity]
doc/3-monitoring-basics.md
doc/4-configuring-icinga-2.md
doc/5-advanced-topics.md
doc/6-object-types.md
doc/7-icinga-template-library.md
doc/8-cli-commands.md
doc/9-icinga2-api.md
mkdocs.yml

index 291bceafc39cf3bc48480337e27e88a6c53fa3df..1f1bbb0f73e8e6a20c6d19aa70a3f04049c2d8e8 100644 (file)
@@ -50,7 +50,7 @@ More details in the [Icinga FAQ](https://www.icinga.org/icinga/faq/).
 
 * [Register](https://accounts.icinga.org/register) an Icinga account.
 * Create a new issue at the [Icinga 2 Development Tracker](https://dev.icinga.org/projects/i2).
-* When reporting a bug, please include the details described in the [Troubleshooting](17-troubleshooting.md#troubleshooting-information-required) chapter (version, configs, logs, etc).
+* When reporting a bug, please include the details described in the [Troubleshooting](16-troubleshooting.md#troubleshooting-information-required) chapter (version, configs, logs, etc).
 
 ## <a id="whats-new"></a> What's New
 
@@ -506,7 +506,7 @@ Please note that this version fixes the default thresholds for the disk check wh
 * Solved a number of issues where cluster instances would not reconnect after intermittent connection problems
 * A lot of other, minor changes
 
-* [DB IDO schema upgrade](18-upgrading-icinga-2.md#upgrading-icinga-2) to `1.13.0` required!
+* [DB IDO schema upgrade](17-upgrading-icinga-2.md#upgrading-icinga-2) to `1.13.0` required!
 
 #### Features
 
index 7e80ff813c675488bd02732f3104a7c2b89ed54a..f9bae266d0b5b243215cf7fe8589f5910e713256 100644 (file)
@@ -30,7 +30,7 @@ Keep the [naming convention](13-distributed-monitoring-ha.md#cluster-naming-conv
 > **Tip**
 >
 > If you're looking for troubleshooting clients problems, check the general
-> [cluster troubleshooting](17-troubleshooting.md#troubleshooting-cluster) section.
+> [cluster troubleshooting](16-troubleshooting.md#troubleshooting-cluster) section.
 
 ### <a id="icinga2-client-configuration-combined-scenarios"></a> Combined Client Scenarios
 
index 15e2d5fca15ed5e78156e09de586989e0ac0cb0c..3bd360b94a9790b47363e232e1cd96a4ff6ff3fc 100644 (file)
@@ -181,7 +181,7 @@ SNMP Traps can be received and filtered by using [SNMPTT](http://snmptt.sourcefo
 and specific trap handlers passing the check results to Icinga 2.
 
 Following the SNMPTT [Format](http://snmptt.sourceforge.net/docs/snmptt.shtml#SNMPTT.CONF-FORMAT)
-documentation and the Icinga external command syntax found [here](23-appendix.md#external-commands-list-detail)
+documentation and the Icinga external command syntax found [here](22-appendix.md#external-commands-list-detail)
 we can create generic services that can accommodate any number of hosts for a given scenario.
 
 ### <a id="simple-traps"></a> Simple SNMP Traps
index 222a3a45751c8fda8d3f8321cc98b2d24596de41..6022ec090a09b942e29350770d2f4272dc0d4c8f 100644 (file)
@@ -43,7 +43,7 @@ Decide whether to use the built-in [configuration syncronization](13-distributed
 > **Tip**
 >
 > If you're looking for troubleshooting cluster problems, check the general
-> [troubleshooting](17-troubleshooting.md#troubleshooting-cluster) section.
+> [troubleshooting](16-troubleshooting.md#troubleshooting-cluster) section.
 
 ## <a id="manual-certificate-generation"></a> Manual SSL Certificate Generation
 
@@ -153,7 +153,7 @@ and configure [cluster scenarios](13-distributed-monitoring-ha.md#cluster-scenar
 ### <a id="configure-nodename"></a> Configure the Icinga Node Name
 
 Instead of using the default FQDN as node name you can optionally set
-that value using the [NodeName](20-language-reference.md#constants) constant.
+that value using the [NodeName](18-language-reference.md#constants) constant.
 
 > ** Note **
 >
@@ -346,7 +346,7 @@ process.
 >
 > `zones.d` must not be included in [icinga2.conf](4-configuring-icinga-2.md#icinga2-conf). Icinga 2 automatically
 > determines the required include directory. This can be overridden using the
-> [global constant](20-language-reference.md#constants) `ZonesDir`.
+> [global constant](18-language-reference.md#constants) `ZonesDir`.
 
 ### <a id="zone-global-config-templates"></a> Global Configuration Zone for Templates
 
@@ -406,7 +406,7 @@ master instances anymore.
 
 > ** Tip **
 >
-> Look into the [troubleshooting guides](17-troubleshooting.md#troubleshooting-cluster-config-sync) for debugging
+> Look into the [troubleshooting guides](16-troubleshooting.md#troubleshooting-cluster-config-sync) for debugging
 > problems with the configuration synchronisation.
 
 
index 8d3709b40fd070b1be0dd9ffa1d8e81022a898ce..aaaf9e049226bbc70a99badbd99fe6d94f2f3a12 100644 (file)
@@ -13,7 +13,7 @@ Use your distribution's package manager to install the `pnp4nagios` package.
 
 If you're planning to use it configure it to use the
 [bulk mode with npcd and npcdmod](http://docs.pnp4nagios.org/pnp-0.6/modes#bulk_mode_with_npcd_and_npcdmod)
-in combination with Icinga 2's [PerfdataWriter](5-advanced-topics.md#performance-data). NPCD collects the performance
+in combination with Icinga 2's [PerfdataWriter](15-features.md#performance-data). NPCD collects the performance
 data files which Icinga 2 generates.
 
 Enable performance data writer in icinga 2
@@ -45,7 +45,7 @@ Graphite consists of 3 software components:
 * whisper - a simple database library for storing time-series data (similar in design to RRD)
 * graphite webapp - A Django webapp that renders graphs on-demand using Cairo
 
-Use the [GraphiteWriter](5-advanced-topics.md#graphite-carbon-cache-writer) feature
+Use the [GraphiteWriter](15-features.md#graphite-carbon-cache-writer) feature
 for sending real-time metrics from Icinga 2 to Graphite.
 
     # icinga2 feature enable graphite
@@ -59,7 +59,7 @@ A popular alternative frontend for Graphite is for example [Grafana](http://graf
 [InfluxDB](https://influxdb.com) is a time series, metrics, and analytics database.
 It’s written in Go and has no external dependencies.
 
-Use the [GraphiteWriter](5-advanced-topics.md#graphite-carbon-cache-writer) feature
+Use the [GraphiteWriter](15-features.md#graphite-carbon-cache-writer) feature
 for sending real-time metrics from Icinga 2 to InfluxDB. Note: There are [API changes](https://github.com/influxdb/influxdb/issues/2102)
 in InfluxDB 0.9.x.
 
@@ -71,13 +71,13 @@ A popular frontend for InfluxDB is for example [Grafana](http://grafana.org).
 
 ### <a id="addons-visualization-reporting"></a> Icinga Reporting
 
-By enabling the [DB IDO](5-advanced-topics.md#db-ido) feature you can use the
+By enabling the [DB IDO](15-features.md#db-ido) feature you can use the
 [Icinga Reporting package](https://wiki.icinga.org/display/howtos/Setting+up+Icinga+with+Reporting).
 
 ### <a id="addons-visualization-nagvis"></a> NagVis
 
-By using either [Livestatus](16-livestatus.md#setting-up-livestatus) or
-[DB IDO](5-advanced-topics.md#db-ido) as a backend you can create your own network maps
+By using either [Livestatus](15-features.md#setting-up-livestatus) or
+[DB IDO](15-features.md#db-ido) as a backend you can create your own network maps
 based on your monitoring configuration and status data using [NagVis](http://www.nagvis.org).
 
 The configuration in nagvis.ini.php should look like this for Livestatus for example:
@@ -91,7 +91,7 @@ If you are planning an integration into Icinga Web 2, look at [this module](http
 ### <a id="addons-visualization-thruk"></a> Thruk
 
 [Thruk](http://www.thruk.org) is an alternative web interface which can be used with Icinga 2
-and the [Livestatus](16-livestatus.md#setting-up-livestatus) feature.
+and the [Livestatus](15-features.md#setting-up-livestatus) feature.
 
 ## <a id="log-monitoring"></a> Log Monitoring
 
@@ -270,7 +270,7 @@ This behavior changed in Icinga 2 compared to Icinga 1.x. Though there are certa
 fix this:
 
 * Create a symlink for example from the `templates.dist/check_ping.php` template to the actual check name in Icinga 2 (`templates/ping4.php`)
-* Pass the check command name inside the [format template configuration](5-advanced-topics.md#writing-performance-data-files)
+* Pass the check command name inside the [format template configuration](15-features.md#writing-performance-data-files)
 
 The latter becomes difficult with agent based checks like NRPE or SSH where the first command argument acts as
 graph template identifier. There is the possibility to define the pnp template name as custom attribute
diff --git a/doc/15-alternative-frontends.md b/doc/15-alternative-frontends.md
deleted file mode 100644 (file)
index 82c24c8..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-# <a id="alternative-frontends"></a> Alternative Frontends
-
-## <a id="setting-up-icinga-classic-ui"></a> Setting up Icinga Classic UI 1.x
-
-Icinga 2 can write `status.dat` and `objects.cache` files in the format that
-is supported by the Icinga 1.x Classic UI. [External commands](5-advanced-topics.md#external-commands)
-(a.k.a. the "command pipe") are also supported. It also supports writing Icinga 1.x
-log files which are required for the reporting functionality in the Classic UI.
-
-### <a id="installing-icinga-classic-ui"></a> Installing Icinga Classic UI 1.x
-
-The Icinga package repository has both Debian and RPM packages. You can install
-the Classic UI using the following packages:
-
-  Distribution  | Packages
-  --------------|---------------------
-  Debian        | icinga2-classicui
-  RHEL/SUSE     | icinga2-classicui-config icinga-gui
-
-The Debian packages require additional packages which are provided by the
-[Debian Monitoring Project](http://www.debmon.org) (`debmon`) repository.
-
-`libjs-jquery-ui` requires at least version `1.10.*` which is not available
-in Debian 7 (Wheezy) and Ubuntu 12.04 LTS (Precise). Add the following repositories
-to satisfy this dependency:
-
-  Distribution                 | Package Repositories
-  ------------------------------|------------------------------
-  Debian Wheezy                | [wheezy-backports](http://backports.debian.org/Instructions/) or [debmon](http://www.debmon.org)
-  Ubuntu 12.04 LTS (Precise)    | [Icinga PPA](https://launchpad.net/~formorer/+archive/icinga)
-
-On all distributions other than Debian you may have to restart both your web
-server as well as Icinga 2 after installing the Classic UI package.
-
-Icinga Classic UI requires the [StatusDataWriter](5-advanced-topics.md#status-data), [CompatLogger](5-advanced-topics.md#compat-logging)
-and [ExternalCommandListener](5-advanced-topics.md#external-commands) features.
-Enable these features and restart Icinga 2.
-
-    # icinga2 feature enable statusdata compatlog command
-
-In order for commands to work you will need to [setup the external command pipe](2-getting-started.md#setting-up-external-command-pipe).
-
-### <a id="setting-up-icinga-classic-ui-summary"></a> Setting Up Icinga Classic UI 1.x Summary
-
-Verify that your Icinga 1.x Classic UI works by browsing to your Classic
-UI installation URL:
-
-  Distribution  | URL                                                                      | Default Login
-  --------------|--------------------------------------------------------------------------|--------------------------
-  Debian        | [http://localhost/icinga2-classicui](http://localhost/icinga2-classicui) | asked during installation
-  all others    | [http://localhost/icinga](http://localhost/icinga)                       | icingaadmin/icingaadmin
-
-For further information on configuration, troubleshooting and interface documentation
-please check the official [Icinga 1.x user interface documentation](http://docs.icinga.org/latest/en/ch06.html).
-
-## <a id="setting-up-icinga-web"></a> Setting up Icinga Web 1.x
-
-Icinga 2 can write to the same schema supplied by `Icinga IDOUtils 1.x` which
-is an explicit requirement to run `Icinga Web` next to the external command pipe.
-Therefore you need to setup the [DB IDO feature](2-getting-started.md#configuring-db-ido-mysql) remarked in the previous sections.
-
-### <a id="installing-icinga-web"></a> Installing Icinga Web 1.x
-
-The Icinga package repository has both Debian and RPM packages. You can install
-Icinga Web using the following packages:
-
-  Distribution  | Packages
-  --------------|-------------------------------------------------------
-  RHEL/SUSE     | icinga-web icinga-web-{mysql,pgsql}
-  Debian        | icinga-web icinga-web-config-icinga2-ido-{mysql,pgsql}
-
-### <a id="icinga-web-rpm-notes"></a> Icinga Web 1.x on RPM based systems
-
-Additionally you need to setup the `icinga_web` database and import the database schema.
-Details can be found in the package `README` files, for example [README.RHEL](https://github.com/Icinga/icinga-web/blob/master/doc/README.RHEL)
-
-The Icinga Web RPM packages install the schema files into
-`/usr/share/doc/icinga-web-*/schema` (`*` means package version).
-
-On SuSE-based distributions the schema files are installed in
-`/usr/share/doc/packages/icinga-web/schema`.
-
-Example for RHEL and MySQL:
-
-    # mysql -u root -p
-
-    mysql> CREATE DATABASE icinga_web;
-           GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga_web.* TO 'icinga_web'@'localhost' IDENTIFIED BY 'icinga_web';
-           quit
-
-    # mysql -u root -p icinga_web <  /usr/share/doc/icinga-web-<version>/schema/mysql.sql
-
-Icinga Web requires the IDO feature as database backend using MySQL or PostgreSQL.
-Enable that feature, e.g. for MySQL.
-
-    # icinga2 feature enable ido-mysql
-
-If you've changed your default credentials you may either create a read-only user
-or use the credentials defined in the IDO feature for Icinga Web backend configuration.
-Edit `databases.xml` accordingly and clear the cache afterwards. Further details can be
-found in the [Icinga Web documentation](http://docs.icinga.org/latest/en/icinga-web-config.html).
-
-    # vim /etc/icinga-web/conf.d/databases.xml
-
-    # icinga-web-clearcache
-
-Additionally you need to enable the `command` feature for sending [external commands](5-advanced-topics.md#external-commands):
-
-    # icinga2 feature enable command
-
-In order for commands to work you will need to [setup the external command pipe](2-getting-started.md#setting-up-external-command-pipe).
-
-Then edit the Icinga Web configuration for sending commands in `/etc/icinga-web/conf.d/access.xml`
-(RHEL) or `/etc/icinga-web/access.xml` (SUSE) setting the command pipe path
-to the default used in Icinga 2. Make sure to clear the cache afterwards.
-
-    # vim /etc/icinga-web/conf.d/access.xml
-
-                <write>
-                    <files>
-                        <resource name="icinga_pipe">/var/run/icinga2/cmd/icinga2.cmd</resource>
-                    </files>
-                </write>
-
-    # icinga-web-clearcache
-
-> **Note**
->
-> The path to the Icinga Web `clearcache` script may differ. Please check the
-> [Icinga Web documentation](https://docs.icinga.org) for details.
-
-### <a id="icinga-web-debian-notes"></a> Icinga Web on Debian systems
-
-Since Icinga Web `1.11.1-2` the IDO auto-configuration has been moved into
-additional packages on Debian and Ubuntu.
-
-The package `icinga-web` no longer configures the IDO connection. You must now
-use one of the config packages:
-
- - `icinga-web-config-icinga2-ido-mysql`
- - `icinga-web-config-icinga2-ido-pgsql`
-
-These packages take care of setting up the [DB IDO](2-getting-started.md#configuring-db-ido-mysql) configuration,
-enabling the external command pipe for Icinga Web and depend on
-the corresponding packages of Icinga 2.
-
-Please read the `README.Debian` files for details and advanced configuration:
-
- - `/usr/share/doc/icinga-web/README.Debian`
- - `/usr/share/doc/icinga-web-config-icinga2-ido-mysql/README.Debian`
- - `/usr/share/doc/icinga-web-config-icinga2-ido-pgsql/README.Debian`
-
-When changing Icinga Web configuration files make sure to clear the config cache:
-
-    # /usr/lib/icinga-web/bin/clearcache.sh
-
-> **Note**
->
-> If you are using an older version of Icinga Web, install it like this and adapt
-> the configuration manually as shown in [the RPM notes](15-alternative-frontends.md#icinga-web-rpm-notes):
->
-> `apt-get install --no-install-recommends icinga-web`
-
-### <a id="setting-up-icinga-web-summary"></a> Setting Up Icinga Web 1.x Summary
-
-Verify that your Icinga 1.x Web works by browsing to your Web installation URL:
-
-  Distribution  | URL                                                         | Default Login
-  --------------|-------------------------------------------------------------|--------------------------
-  Debian        | [http://localhost/icinga-web](http://localhost/icinga-web)  | asked during installation
-  all others    | [http://localhost/icinga-web](http://localhost/icinga-web)  | root/password
-
-For further information on configuration, troubleshooting and interface documentation
-please check the official [Icinga 1.x user interface documentation](http://docs.icinga.org/latest/en/ch06.html).
-
diff --git a/doc/15-features.md b/doc/15-features.md
new file mode 100644 (file)
index 0000000..db13c96
--- /dev/null
@@ -0,0 +1,679 @@
+# <a id="icinga2-features"></a> Icinga 2 Features
+
+## <a id="logging"></a> Logging
+
+Icinga 2 supports three different types of logging:
+
+* File logging
+* Syslog (on *NIX-based operating systems)
+* Console logging (`STDOUT` on tty)
+
+You can enable additional loggers using the `icinga2 feature enable`
+and `icinga2 feature disable` commands to configure loggers:
+
+Feature  | Description
+---------|------------
+debuglog | Debug log (path: `/var/log/icinga2/debug.log`, severity: `debug` or higher)
+mainlog  | Main log (path: `/var/log/icinga2/icinga2.log`, severity: `information` or higher)
+syslog   | Syslog (severity: `warning` or higher)
+
+By default file the `mainlog` feature is enabled. When running Icinga 2
+on a terminal log messages with severity `information` or higher are
+written to the console.
+
+## <a id="db-ido"></a> DB IDO
+
+The IDO (Icinga Data Output) modules for Icinga 2 take care of exporting all
+configuration and status information into a database. The IDO database is used
+by a number of projects including Icinga Web 1.x and 2.
+
+Details on the installation can be found in the [Configuring DB IDO](2-getting-started.md#configuring-db-ido-mysql)
+chapter. Details on the configuration can be found in the
+[IdoMysqlConnection](6-object-types.md#objecttype-idomysqlconnection) and
+[IdoPgsqlConnection](6-object-types.md#objecttype-idopgsqlconnection)
+object configuration documentation.
+The DB IDO feature supports [High Availability](13-distributed-monitoring-ha.md#high-availability-db-ido) in
+the Icinga 2 cluster.
+
+The following example query checks the health of the current Icinga 2 instance
+writing its current status to the DB IDO backend table `icinga_programstatus`
+every 10 seconds. By default it checks 60 seconds into the past which is a reasonable
+amount of time - adjust it for your requirements. If the condition is not met,
+the query returns an empty result.
+
+> **Tip**
+>
+> Use [check plugins](14-addons-plugins.md#plugins) to monitor the backend.
+
+Replace the `default` string with your instance name, if different.
+
+Example for MySQL:
+
+    # mysql -u root -p icinga -e "SELECT status_update_time FROM icinga_programstatus ps
+      JOIN icinga_instances i ON ps.instance_id=i.instance_id
+      WHERE (UNIX_TIMESTAMP(ps.status_update_time) > UNIX_TIMESTAMP(NOW())-60)
+      AND i.instance_name='default';"
+
+    +---------------------+
+    | status_update_time  |
+    +---------------------+
+    | 2014-05-29 14:29:56 |
+    +---------------------+
+
+
+Example for PostgreSQL:
+
+    # export PGPASSWORD=icinga; psql -U icinga -d icinga -c "SELECT ps.status_update_time FROM icinga_programstatus AS ps
+      JOIN icinga_instances AS i ON ps.instance_id=i.instance_id
+      WHERE ((SELECT extract(epoch from status_update_time) FROM icinga_programstatus) > (SELECT extract(epoch from now())-60))
+      AND i.instance_name='default'";
+
+    status_update_time
+    ------------------------
+     2014-05-29 15:11:38+02
+    (1 Zeile)
+
+
+A detailed list on the available table attributes can be found in the [DB IDO Schema documentation](22-appendix.md#schema-db-ido).
+
+
+## <a id="external-commands"></a> External Commands
+
+Icinga 2 provides an external command pipe for processing commands
+triggering specific actions (for example rescheduling a service check
+through the web interface).
+
+In order to enable the `ExternalCommandListener` configuration use the
+following command and restart Icinga 2 afterwards:
+
+    # icinga2 feature enable command
+
+Icinga 2 creates the command pipe file as `/var/run/icinga2/cmd/icinga2.cmd`
+using the default configuration.
+
+Web interfaces and other Icinga addons are able to send commands to
+Icinga 2 through the external command pipe, for example for rescheduling
+a forced service check:
+
+    # /bin/echo "[`date +%s`] SCHEDULE_FORCED_SVC_CHECK;localhost;ping4;`date +%s`" >> /var/run/icinga2/cmd/icinga2.cmd
+
+    # tail -f /var/log/messages
+
+    Oct 17 15:01:25 icinga-server icinga2: Executing external command: [1382014885] SCHEDULE_FORCED_SVC_CHECK;localhost;ping4;1382014885
+    Oct 17 15:01:25 icinga-server icinga2: Rescheduling next check for service 'ping4'
+
+A list of currently supported external commands can be found [here](22-appendix.md#external-commands-list-detail).
+
+Detailed information on the commands and their required parameters can be found
+on the [Icinga 1.x documentation](http://docs.icinga.org/latest/en/extcommands2.html).
+
+## <a id="performance-data"></a> Performance Data
+
+When a host or service check is executed plugins should provide so-called
+`performance data`. Next to that additional check performance data
+can be fetched using Icinga 2 runtime macros such as the check latency
+or the current service state (or additional custom attributes).
+
+The performance data can be passed to external applications which aggregate and
+store them in their backends. These tools usually generate graphs for historical
+reporting and trending.
+
+Well-known addons processing Icinga performance data are [PNP4Nagios](14-addons-plugins.md#addons-graphing-pnp),
+[Graphite](14-addons-plugins.md#addons-graphing-graphite) or [OpenTSDB](15-features.md#opentsdb-writer).
+
+### <a id="writing-performance-data-files"></a> Writing Performance Data Files
+
+PNP4Nagios and Graphios use performance data collector daemons to fetch
+the current performance files for their backend updates.
+
+Therefore the Icinga 2 [PerfdataWriter](6-object-types.md#objecttype-perfdatawriter)
+feature allows you to define the output template format for host and services helped
+with Icinga 2 runtime vars.
+
+    host_format_template = "DATATYPE::HOSTPERFDATA\tTIMET::$icinga.timet$\tHOSTNAME::$host.name$\tHOSTPERFDATA::$host.perfdata$\tHOSTCHECKCOMMAND::$host.check_command$\tHOSTSTATE::$host.state$\tHOSTSTATETYPE::$host.state_type$"
+    service_format_template = "DATATYPE::SERVICEPERFDATA\tTIMET::$icinga.timet$\tHOSTNAME::$host.name$\tSERVICEDESC::$service.name$\tSERVICEPERFDATA::$service.perfdata$\tSERVICECHECKCOMMAND::$service.check_command$\tHOSTSTATE::$host.state$\tHOSTSTATETYPE::$host.state_type$\tSERVICESTATE::$service.state$\tSERVICESTATETYPE::$service.state_type$"
+
+The default templates are already provided with the Icinga 2 feature configuration
+which can be enabled using
+
+    # icinga2 feature enable perfdata
+
+By default all performance data files are rotated in a 15 seconds interval into
+the `/var/spool/icinga2/perfdata/` directory as `host-perfdata.<timestamp>` and
+`service-perfdata.<timestamp>`.
+External collectors need to parse the rotated performance data files and then
+remove the processed files.
+
+### <a id="graphite-carbon-cache-writer"></a> Graphite Carbon Cache Writer
+
+While there are some [Graphite](14-addons-plugins.md#addons-graphing-graphite)
+collector scripts and daemons like Graphios available for Icinga 1.x it's more
+reasonable to directly process the check and plugin performance
+in memory in Icinga 2. Once there are new metrics available, Icinga 2 will directly
+write them to the defined Graphite Carbon daemon tcp socket.
+
+You can enable the feature using
+
+    # icinga2 feature enable graphite
+
+By default the [GraphiteWriter](6-object-types.md#objecttype-graphitewriter) feature
+expects the Graphite Carbon Cache to listen at `127.0.0.1` on TCP port `2003`.
+
+#### <a id="graphite-carbon-cache-writer-schema"></a> Current Graphite Schema
+
+The current naming schema is defined as follows. The official Icinga Web 2 Graphite
+module will use that schema too.
+
+The default prefix for hosts and services is configured using
+[runtime macros](3-monitoring-basics.md#runtime-macros)like this:
+
+    icinga2.$host.name$.host.$host.check_command$
+    icinga2.$host.name$.services.$service.name$.$service.check_command$
+
+You can customize the prefix name by using the `host_name_template` and
+`service_name_template` configuration attributes.
+
+The additional levels will allow fine granular filters and also template
+capabilities, e.g. by using the check command `disk` for specific
+graph templates in web applications rendering the Graphite data.
+
+The following characters are escaped in prefix labels:
+
+  Character    | Escaped character
+  --------------|--------------------------
+  whitespace   | _
+  .            | _
+  \            | _
+  /            | _
+
+Metric values are stored like this:
+
+    <prefix>.perfdata.<perfdata-label>.value
+
+The following characters are escaped in perfdata labels:
+
+  Character    | Escaped character
+  --------------|--------------------------
+  whitespace   | _
+  \            | _
+  /            | _
+  ::           | .
+
+Note that perfdata labels may contain dots (`.`) allowing to
+add more subsequent levels inside the Graphite tree.
+`::` adds support for [multi performance labels](http://my-plugin.de/wiki/projects/check_multi/configuration/performance)
+and is therefore replaced by `.`.
+
+By enabling `enable_send_thresholds` Icinga 2 automatically adds the following threshold metrics:
+
+    <prefix>.perfdata.<perfdata-label>.min
+    <prefix>.perfdata.<perfdata-label>.max
+    <prefix>.perfdata.<perfdata-label>.warn
+    <prefix>.perfdata.<perfdata-label>.crit
+
+By enabling `enable_send_metadata` Icinga 2 automatically adds the following metadata metrics:
+
+    <prefix>.metadata.current_attempt
+    <prefix>.metadata.downtime_depth
+    <prefix>.metadata.execution_time
+    <prefix>.metadata.latency
+    <prefix>.metadata.max_check_attempts
+    <prefix>.metadata.reachable
+    <prefix>.metadata.state
+    <prefix>.metadata.state_type
+
+Metadata metric overview:
+
+  metric             | description
+  -------------------|------------------------------------------
+  current_attempt    | current check attempt
+  max_check_attempts | maximum check attempts until the hard state is reached
+  reachable          | checked object is reachable
+  downtime_depth     | number of downtimes this object is in
+  execution_time     | check execution time
+  latency            | check latency
+  state              | current state of the checked object
+  state_type         | 0=SOFT, 1=HARD state
+
+The following example illustrates how to configure the storage schemas for Graphite Carbon
+Cache.
+
+    [icinga2_default]
+    # intervals like PNP4Nagios uses them per default
+    pattern = ^icinga2\.
+    retentions = 1m:2d,5m:10d,30m:90d,360m:4y
+
+#### <a id="graphite-carbon-cache-writer-schema-legacy"></a> Graphite Schema < 2.4
+
+In order to restore the old legacy schema, you'll need to adopt the `GraphiteWriter`
+configuration:
+
+    object GraphiteWriter "graphite" {
+
+      enable_legacy_mode = true
+
+      host_name_template = "icinga.$host.name$"
+      service_name_template = "icinga.$host.name$.$service.name$"
+    }
+
+The old legacy naming schema is
+
+    icinga.<hostname>.<metricname>
+    icinga.<hostname>.<servicename>.<metricname>
+
+You can customize the metric prefix name by using the `host_name_template` and
+`service_name_template` configuration attributes.
+
+The example below uses [runtime macros](3-monitoring-basics.md#runtime-macros) and a
+[global constant](18-language-reference.md#constants) named `GraphiteEnv`. The constant name
+is freely definable and should be put in the [constants.conf](4-configuring-icinga-2.md#constants-conf) file.
+
+    const GraphiteEnv = "icinga.env1"
+
+    object GraphiteWriter "graphite" {
+      host_name_template = GraphiteEnv + ".$host.name$"
+      service_name_template = GraphiteEnv + ".$host.name$.$service.name$"
+    }
+
+To make sure Icinga 2 writes a valid label into Graphite some characters are replaced
+with `_` in the target name:
+
+    \/.-  (and space)
+
+The resulting name in Graphite might look like:
+
+    www-01 / http-cert / response time
+    icinga.www_01.http_cert.response_time
+
+In addition to the performance data retrieved from the check plugin, Icinga 2 sends
+internal check statistic data to Graphite:
+
+  metric             | description
+  -------------------|------------------------------------------
+  current_attempt    | current check attempt
+  max_check_attempts | maximum check attempts until the hard state is reached
+  reachable          | checked object is reachable
+  downtime_depth     | number of downtimes this object is in
+  execution_time     | check execution time
+  latency            | check latency
+  state              | current state of the checked object
+  state_type         | 0=SOFT, 1=HARD state
+
+The following example illustrates how to configure the storage-schemas for Graphite Carbon
+Cache. Please make sure that the order is correct because the first match wins.
+
+    [icinga_internals]
+    pattern = ^icinga\..*\.(max_check_attempts|reachable|current_attempt|execution_time|latency|state|state_type)
+    retentions = 5m:7d
+
+    [icinga_default]
+    # intervals like PNP4Nagios uses them per default
+    pattern = ^icinga\.
+    retentions = 1m:2d,5m:10d,30m:90d,360m:4y
+
+### <a id="gelfwriter"></a> GELF Writer
+
+The `Graylog Extended Log Format` (short: [GELF](http://www.graylog2.org/resources/gelf))
+can be used to send application logs directly to a TCP socket.
+
+While it has been specified by the [graylog2](http://www.graylog2.org/) project as their
+[input resource standard](http://www.graylog2.org/resources/gelf), other tools such as
+[Logstash](http://www.logstash.net) also support `GELF` as
+[input type](http://logstash.net/docs/latest/inputs/gelf).
+
+You can enable the feature using
+
+    # icinga2 feature enable gelf
+
+By default the `GelfWriter` object expects the GELF receiver to listen at `127.0.0.1` on TCP port `12201`.
+The default `source`  attribute is set to `icinga2`. You can customize that for your needs if required.
+
+Currently these events are processed:
+* Check results
+* State changes
+* Notifications
+
+### <a id="opentsdb-writer"></a> OpenTSDB Writer
+
+While there are some OpenTSDB collector scripts and daemons like tcollector available for
+Icinga 1.x it's more reasonable to directly process the check and plugin performance
+in memory in Icinga 2. Once there are new metrics available, Icinga 2 will directly
+write them to the defined TSDB TCP socket.
+
+You can enable the feature using
+
+    # icinga2 feature enable opentsdb
+
+By default the `OpenTsdbWriter` object expects the TSD to listen at
+`127.0.0.1` on port `4242`.
+
+The current naming schema is
+
+    icinga.host.<metricname>
+    icinga.service.<servicename>.<metricname>
+
+for host and service checks. The tag host is always applied.
+
+To make sure Icinga 2 writes a valid metric into OpenTSDB some characters are replaced
+with `_` in the target name:
+
+    \  (and space)
+
+The resulting name in OpenTSDB might look like:
+
+    www-01 / http-cert / response time
+    icinga.http_cert.response_time
+
+In addition to the performance data retrieved from the check plugin, Icinga 2 sends
+internal check statistic data to OpenTSDB:
+
+  metric             | description
+  -------------------|------------------------------------------
+  current_attempt    | current check attempt
+  max_check_attempts | maximum check attempts until the hard state is reached
+  reachable          | checked object is reachable
+  downtime_depth     | number of downtimes this object is in
+  execution_time     | check execution time
+  latency            | check latency
+  state              | current state of the checked object
+  state_type         | 0=SOFT, 1=HARD state
+
+While reachable, state and state_type are metrics for the host or service the
+other metrics follow the current naming schema
+
+    icinga.check.<metricname>
+
+with the following tags
+
+  tag     | description
+  --------|------------------------------------------
+  type    | the check type, one of [host, service]
+  host    | hostname, the check ran on
+  service | the service name (if type=service)
+
+> **Note**
+>
+> You might want to set the tsd.core.auto_create_metrics setting to `true`
+> in your opentsdb.conf configuration file.
+
+
+## <a id="setting-up-livestatus"></a> Livestatus
+
+The [MK Livestatus](http://mathias-kettner.de/checkmk_livestatus.html) project
+implements a query protocol that lets users query their Icinga instance for
+status information. It can also be used to send commands.
+
+> **Tip**
+>
+> Only install the Livestatus feature if your web interface or addon requires
+> you to do so (for example, [Icinga Web 2](2-getting-started.md#setting-up-icingaweb2)).
+> Icinga Classic UI 1.x and Icinga Web 1.x do not use Livestatus as backend.
+
+The Livestatus component that is distributed as part of Icinga 2 is a
+re-implementation of the Livestatus protocol which is compatible with MK
+Livestatus.
+
+Details on the available tables and attributes with Icinga 2 can be found
+in the [Livestatus Schema](22-appendix.md#schema-livestatus) section.
+
+You can enable Livestatus using icinga2 feature enable:
+
+    # icinga2 feature enable livestatus
+
+After that you will have to restart Icinga 2:
+
+Debian/Ubuntu, RHEL/CentOS 6 and SUSE:
+
+    # service icinga2 restart
+
+RHEL/CentOS 7 and Fedora:
+
+    # systemctl restart icinga2
+
+By default the Livestatus socket is available in `/var/run/icinga2/cmd/livestatus`.
+
+In order for queries and commands to work you will need to add your query user
+(e.g. your web server) to the `icingacmd` group:
+
+    # usermod -a -G icingacmd www-data
+
+The Debian packages use `nagios` as the user and group name. Make sure to change `icingacmd` to
+`nagios` if you're using Debian.
+
+Change `www-data` to the user you're using to run queries.
+
+In order to use the historical tables provided by the livestatus feature (for example, the
+`log` table) you need to have the `CompatLogger` feature enabled. By default these logs
+are expected to be in `/var/log/icinga2/compat`. A different path can be set using the
+`compat_log_path` configuration attribute.
+
+    # icinga2 feature enable compatlog
+
+
+### <a id="livestatus-sockets"></a> Livestatus Sockets
+
+Other to the Icinga 1.x Addon, Icinga 2 supports two socket types
+
+* Unix socket (default)
+* TCP socket
+
+Details on the configuration can be found in the [LivestatusListener](6-object-types.md#objecttype-livestatuslistener)
+object configuration.
+
+### <a id="livestatus-get-queries"></a> Livestatus GET Queries
+
+> **Note**
+>
+> All Livestatus queries require an additional empty line as query end identifier.
+> The `nc` tool (`netcat`) provides the `-U` parameter to communicate using
+> a unix socket.
+
+There also is a Perl module available in CPAN for accessing the Livestatus socket
+programmatically: [Monitoring::Livestatus](http://search.cpan.org/~nierlein/Monitoring-Livestatus-0.74/)
+
+
+Example using the unix socket:
+
+    # echo -e "GET services\n" | /usr/bin/nc -U /var/run/icinga2/cmd/livestatus
+
+Example using the tcp socket listening on port `6558`:
+
+    # echo -e 'GET services\n' | netcat 127.0.0.1 6558
+
+    # cat servicegroups <<EOF
+    GET servicegroups
+
+    EOF
+
+    (cat servicegroups; sleep 1) | netcat 127.0.0.1 6558
+
+
+### <a id="livestatus-command-queries"></a> Livestatus COMMAND Queries
+
+A list of available external commands and their parameters can be found [here](22-appendix.md#external-commands-list-detail)
+
+    $ echo -e 'COMMAND <externalcommandstring>' | netcat 127.0.0.1 6558
+
+
+### <a id="livestatus-filters"></a> Livestatus Filters
+
+and, or, negate
+
+  Operator  | Negate   | Description
+  ----------|------------------------
+   =        | !=       | Equality
+   ~        | !~       | Regex match
+   =~       | !=~      | Equality ignoring case
+   ~~       | !~~      | Regex ignoring case
+   <        |          | Less than
+   >        |          | Greater than
+   <=       |          | Less than or equal
+   >=       |          | Greater than or equal
+
+
+### <a id="livestatus-stats"></a> Livestatus Stats
+
+Schema: "Stats: aggregatefunction aggregateattribute"
+
+  Aggregate Function | Description
+  -------------------|--------------
+  sum                | &nbsp;
+  min                | &nbsp;
+  max                | &nbsp;
+  avg                | sum / count
+  std                | standard deviation
+  suminv             | sum (1 / value)
+  avginv             | suminv / count
+  count              | ordinary default for any stats query if not aggregate function defined
+
+Example:
+
+    GET hosts
+    Filter: has_been_checked = 1
+    Filter: check_type = 0
+    Stats: sum execution_time
+    Stats: sum latency
+    Stats: sum percent_state_change
+    Stats: min execution_time
+    Stats: min latency
+    Stats: min percent_state_change
+    Stats: max execution_time
+    Stats: max latency
+    Stats: max percent_state_change
+    OutputFormat: json
+    ResponseHeader: fixed16
+
+### <a id="livestatus-output"></a> Livestatus Output
+
+* CSV
+
+CSV output uses two levels of array separators: The members array separator
+is a comma (1st level) while extra info and host|service relation separator
+is a pipe (2nd level).
+
+Separators can be set using ASCII codes like:
+
+    Separators: 10 59 44 124
+
+* JSON
+
+Default separators.
+
+### <a id="livestatus-error-codes"></a> Livestatus Error Codes
+
+  Code      | Description
+  ----------|--------------
+  200       | OK
+  404       | Table does not exist
+  452       | Exception on query
+
+### <a id="livestatus-tables"></a> Livestatus Tables
+
+  Table         | Join      |Description
+  --------------|-----------|----------------------------
+  hosts         | &nbsp;    | host config and status attributes, services counter
+  hostgroups    | &nbsp;    | hostgroup config, status attributes and host/service counters
+  services      | hosts     | service config and status attributes
+  servicegroups | &nbsp;    | servicegroup config, status attributes and service counters
+  contacts      | &nbsp;    | contact config and status attributes
+  contactgroups | &nbsp;    | contact config, members
+  commands      | &nbsp;    | command name and line
+  status        | &nbsp;    | programstatus, config and stats
+  comments      | services  | status attributes
+  downtimes     | services  | status attributes
+  timeperiods   | &nbsp;    | name and is inside flag
+  endpoints     | &nbsp;    | config and status attributes
+  log           | services, hosts, contacts, commands | parses [compatlog](6-object-types.md#objecttype-compatlogger) and shows log attributes
+  statehist     | hosts, services | parses [compatlog](6-object-types.md#objecttype-compatlogger) and aggregates state change attributes
+  hostsbygroup  | hostgroups | host attributes grouped by hostgroup and its attributes
+  servicesbygroup | servicegroups | service attributes grouped by servicegroup and its attributes
+  servicesbyhostgroup  | hostgroups | service attributes grouped by hostgroup and its attributes
+
+The `commands` table is populated with `CheckCommand`, `EventCommand` and `NotificationCommand` objects.
+
+A detailed list on the available table attributes can be found in the [Livestatus Schema documentation](22-appendix.md#schema-livestatus).
+
+
+## <a id="status-data"></a> Status Data Files
+
+Icinga 1.x writes object configuration data and status data in a cyclic
+interval to its `objects.cache` and `status.dat` files. Icinga 2 provides
+the `StatusDataWriter` object which dumps all configuration objects and
+status updates in a regular interval.
+
+    # icinga2 feature enable statusdata
+
+Icinga 1.x Classic UI requires this data set as part of its backend.
+
+> **Note**
+>
+> If you are not using any web interface or addon which uses these files
+> you can safely disable this feature.
+
+
+## <a id="compat-logging"></a> Compat Log Files
+
+The Icinga 1.x log format is considered being the `Compat Log`
+in Icinga 2 provided with the `CompatLogger` object.
+
+These logs are not only used for informational representation in
+external web interfaces parsing the logs, but also to generate
+SLA reports and trends in Icinga 1.x Classic UI. Furthermore the
+[Livestatus](15-features.md#setting-up-livestatus) feature uses these logs for answering queries to
+historical tables.
+
+The `CompatLogger` object can be enabled with
+
+    # icinga2 feature enable compatlog
+
+By default, the Icinga 1.x log file called `icinga.log` is located
+in `/var/log/icinga2/compat`. Rotated log files are moved into
+`var/log/icinga2/compat/archives`.
+
+The format cannot be changed without breaking compatibility to
+existing log parsers.
+
+    # tail -f /var/log/icinga2/compat/icinga.log
+
+    [1382115688] LOG ROTATION: HOURLY
+    [1382115688] LOG VERSION: 2.0
+    [1382115688] HOST STATE: CURRENT;localhost;UP;HARD;1;
+    [1382115688] SERVICE STATE: CURRENT;localhost;disk;WARNING;HARD;1;
+    [1382115688] SERVICE STATE: CURRENT;localhost;http;OK;HARD;1;
+    [1382115688] SERVICE STATE: CURRENT;localhost;load;OK;HARD;1;
+    [1382115688] SERVICE STATE: CURRENT;localhost;ping4;OK;HARD;1;
+    [1382115688] SERVICE STATE: CURRENT;localhost;ping6;OK;HARD;1;
+    [1382115688] SERVICE STATE: CURRENT;localhost;processes;WARNING;HARD;1;
+    [1382115688] SERVICE STATE: CURRENT;localhost;ssh;OK;HARD;1;
+    [1382115688] SERVICE STATE: CURRENT;localhost;users;OK;HARD;1;
+    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;disk;1382115705
+    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;http;1382115705
+    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;load;1382115705
+    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;ping4;1382115705
+    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;ping6;1382115705
+    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;processes;1382115705
+    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;ssh;1382115705
+    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;users;1382115705
+    [1382115731] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;localhost;ping6;2;critical test|
+    [1382115731] SERVICE ALERT: localhost;ping6;CRITICAL;SOFT;2;critical test
+
+
+## <a id="check-result-files"></a> Check Result Files
+
+Icinga 1.x writes its check result files to a temporary spool directory
+where they are processed in a regular interval.
+While this is extremely inefficient in performance regards it has been
+rendered useful for passing passive check results directly into Icinga 1.x
+skipping the external command pipe.
+
+Several clustered/distributed environments and check-aggregation addons
+use that method. In order to support step-by-step migration of these
+environments, Icinga 2 supports the `CheckResultReader` object.
+
+There is no feature configuration available, but it must be defined
+on-demand in your Icinga 2 objects configuration.
+
+    object CheckResultReader "reader" {
+      spool_dir = "/data/check-results"
+    }
+
diff --git a/doc/16-livestatus.md b/doc/16-livestatus.md
deleted file mode 100644 (file)
index fe91103..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-## <a id="setting-up-livestatus"></a> Livestatus
-
-The [MK Livestatus](http://mathias-kettner.de/checkmk_livestatus.html) project
-implements a query protocol that lets users query their Icinga instance for
-status information. It can also be used to send commands.
-
-> **Tip**
->
-> Only install the Livestatus feature if your web interface or addon requires
-> you to do so (for example, [Icinga Web 2](2-getting-started.md#setting-up-icingaweb2)).
-> [Icinga Classic UI](15-alternative-frontends.md#setting-up-icinga-classic-ui) and [Icinga Web](15-alternative-frontends.md#setting-up-icinga-web)
-> do not use Livestatus as backend.
-
-The Livestatus component that is distributed as part of Icinga 2 is a
-re-implementation of the Livestatus protocol which is compatible with MK
-Livestatus.
-
-Details on the available tables and attributes with Icinga 2 can be found
-in the [Livestatus Schema](23-appendix.md#schema-livestatus) section.
-
-You can enable Livestatus using icinga2 feature enable:
-
-    # icinga2 feature enable livestatus
-
-After that you will have to restart Icinga 2:
-
-Debian/Ubuntu, RHEL/CentOS 6 and SUSE:
-
-    # service icinga2 restart
-
-RHEL/CentOS 7 and Fedora:
-
-    # systemctl restart icinga2
-
-By default the Livestatus socket is available in `/var/run/icinga2/cmd/livestatus`.
-
-In order for queries and commands to work you will need to add your query user
-(e.g. your web server) to the `icingacmd` group:
-
-    # usermod -a -G icingacmd www-data
-
-The Debian packages use `nagios` as the user and group name. Make sure to change `icingacmd` to
-`nagios` if you're using Debian.
-
-Change `www-data` to the user you're using to run queries.
-
-In order to use the historical tables provided by the livestatus feature (for example, the
-`log` table) you need to have the `CompatLogger` feature enabled. By default these logs
-are expected to be in `/var/log/icinga2/compat`. A different path can be set using the
-`compat_log_path` configuration attribute.
-
-    # icinga2 feature enable compatlog
-
-
-### <a id="livestatus-sockets"></a> Livestatus Sockets
-
-Other to the Icinga 1.x Addon, Icinga 2 supports two socket types
-
-* Unix socket (default)
-* TCP socket
-
-Details on the configuration can be found in the [LivestatusListener](6-object-types.md#objecttype-livestatuslistener)
-object configuration.
-
-### <a id="livestatus-get-queries"></a> Livestatus GET Queries
-
-> **Note**
->
-> All Livestatus queries require an additional empty line as query end identifier.
-> The `nc` tool (`netcat`) provides the `-U` parameter to communicate using
-> a unix socket.
-
-There also is a Perl module available in CPAN for accessing the Livestatus socket
-programmatically: [Monitoring::Livestatus](http://search.cpan.org/~nierlein/Monitoring-Livestatus-0.74/)
-
-
-Example using the unix socket:
-
-    # echo -e "GET services\n" | /usr/bin/nc -U /var/run/icinga2/cmd/livestatus
-
-Example using the tcp socket listening on port `6558`:
-
-    # echo -e 'GET services\n' | netcat 127.0.0.1 6558
-
-    # cat servicegroups <<EOF
-    GET servicegroups
-
-    EOF
-
-    (cat servicegroups; sleep 1) | netcat 127.0.0.1 6558
-
-
-### <a id="livestatus-command-queries"></a> Livestatus COMMAND Queries
-
-A list of available external commands and their parameters can be found [here](23-appendix.md#external-commands-list-detail)
-
-    $ echo -e 'COMMAND <externalcommandstring>' | netcat 127.0.0.1 6558
-
-
-### <a id="livestatus-filters"></a> Livestatus Filters
-
-and, or, negate
-
-  Operator  | Negate   | Description
-  ----------|------------------------
-   =        | !=       | Equality
-   ~        | !~       | Regex match
-   =~       | !=~      | Equality ignoring case
-   ~~       | !~~      | Regex ignoring case
-   <        |          | Less than
-   >        |          | Greater than
-   <=       |          | Less than or equal
-   >=       |          | Greater than or equal
-
-
-### <a id="livestatus-stats"></a> Livestatus Stats
-
-Schema: "Stats: aggregatefunction aggregateattribute"
-
-  Aggregate Function | Description
-  -------------------|--------------
-  sum                | &nbsp;
-  min                | &nbsp;
-  max                | &nbsp;
-  avg                | sum / count
-  std                | standard deviation
-  suminv             | sum (1 / value)
-  avginv             | suminv / count
-  count              | ordinary default for any stats query if not aggregate function defined
-
-Example:
-
-    GET hosts
-    Filter: has_been_checked = 1
-    Filter: check_type = 0
-    Stats: sum execution_time
-    Stats: sum latency
-    Stats: sum percent_state_change
-    Stats: min execution_time
-    Stats: min latency
-    Stats: min percent_state_change
-    Stats: max execution_time
-    Stats: max latency
-    Stats: max percent_state_change
-    OutputFormat: json
-    ResponseHeader: fixed16
-
-### <a id="livestatus-output"></a> Livestatus Output
-
-* CSV
-
-CSV output uses two levels of array separators: The members array separator
-is a comma (1st level) while extra info and host|service relation separator
-is a pipe (2nd level).
-
-Separators can be set using ASCII codes like:
-
-    Separators: 10 59 44 124
-
-* JSON
-
-Default separators.
-
-### <a id="livestatus-error-codes"></a> Livestatus Error Codes
-
-  Code      | Description
-  ----------|--------------
-  200       | OK
-  404       | Table does not exist
-  452       | Exception on query
-
-### <a id="livestatus-tables"></a> Livestatus Tables
-
-  Table         | Join      |Description
-  --------------|-----------|----------------------------
-  hosts         | &nbsp;    | host config and status attributes, services counter
-  hostgroups    | &nbsp;    | hostgroup config, status attributes and host/service counters
-  services      | hosts     | service config and status attributes
-  servicegroups | &nbsp;    | servicegroup config, status attributes and service counters
-  contacts      | &nbsp;    | contact config and status attributes
-  contactgroups | &nbsp;    | contact config, members
-  commands      | &nbsp;    | command name and line
-  status        | &nbsp;    | programstatus, config and stats
-  comments      | services  | status attributes
-  downtimes     | services  | status attributes
-  timeperiods   | &nbsp;    | name and is inside flag
-  endpoints     | &nbsp;    | config and status attributes
-  log           | services, hosts, contacts, commands | parses [compatlog](6-object-types.md#objecttype-compatlogger) and shows log attributes
-  statehist     | hosts, services | parses [compatlog](6-object-types.md#objecttype-compatlogger) and aggregates state change attributes
-  hostsbygroup  | hostgroups | host attributes grouped by hostgroup and its attributes
-  servicesbygroup | servicegroups | service attributes grouped by servicegroup and its attributes
-  servicesbyhostgroup  | hostgroups | service attributes grouped by hostgroup and its attributes
-
-The `commands` table is populated with `CheckCommand`, `EventCommand` and `NotificationCommand` objects.
-
-A detailed list on the available table attributes can be found in the [Livestatus Schema documentation](23-appendix.md#schema-livestatus).
-
similarity index 95%
rename from doc/17-troubleshooting.md
rename to doc/16-troubleshooting.md
index 2b0c7620828070a2f6fe55fe84f3f7c093aa218b..99ad87789851265cf36142f73d84899f1c4de587 100644 (file)
@@ -13,7 +13,7 @@
 * How was Icinga 2 installed (and which repository in case) and which distribution are you using
 * Provide complete configuration snippets explaining your problem in detail
 * If the check command failed - what's the output of your manual plugin tests?
-* In case of [debugging](22-debug.md#debug) Icinga 2, the full back traces and outputs
+* In case of [debugging](20-debug.md#debug) Icinga 2, the full back traces and outputs
 
 ## <a id="troubleshooting-enable-debug-output"></a> Enable Debug Output
 
@@ -37,7 +37,7 @@ and `debug`.
 The `icinga2 object list` CLI command can be used to list all configuration objects and their
 attributes. The tool also shows where each of the attributes was modified.
 
-That way you can also identify which objects have been created from your [apply rules](20-language-reference.md#apply).
+That way you can also identify which objects have been created from your [apply rules](18-language-reference.md#apply).
 
     # icinga2 object list
 
@@ -114,7 +114,7 @@ or similar.
 * Check the debug log to see if the check command gets executed
 * Verify that failed depedencies do not prevent command execution
 * Make sure that the plugin is executable by the Icinga 2 user (run a manual test)
-* Make sure the [checker](8-cli-commands.md#features) feature is enabled.
+* Make sure the [checker](8-cli-commands.md#enable-features) feature is enabled.
 
 Examples:
 
@@ -136,7 +136,7 @@ Verify the following configuration
 * Do the notification attributes `states`, `types`, `period` match the notification conditions?
 * Do the user attributes `states`, `types`, `period` match the notification conditions?
 * Are there any notification `begin` and `end` times configured?
-* Make sure the [notification](8-cli-commands.md#features) feature is enabled.
+* Make sure the [notification](8-cli-commands.md#enable-features) feature is enabled.
 * Does the referenced NotificationCommand work when executed as Icinga user on the shell?
 
 If notifications are to be sent via mail make sure that the mail program specified exists.
@@ -157,13 +157,13 @@ to `features-enabled` and that the latter is included in [icinga2.conf](4-config
 
 ## <a id="configuration-ignored"></a> Configuration is ignored
 
-* Make sure that the line(s) are not [commented out](20-language-reference.md#comments) (starting with `//` or `#`, or
+* Make sure that the line(s) are not [commented out](18-language-reference.md#comments) (starting with `//` or `#`, or
 encapsulated by `/* ... */`).
 * Is the configuration file included in [icinga2.conf](4-configuring-icinga-2.md#icinga2-conf)?
 
 ## <a id="configuration-attribute-inheritance"></a> Configuration attributes are inherited from
 
-Icinga 2 allows you to import templates using the [import](20-language-reference.md#template-imports) keyword. If these templates
+Icinga 2 allows you to import templates using the [import](18-language-reference.md#template-imports) keyword. If these templates
 contain additional attributes, your objects will automatically inherit them. You can override
 or modify these attributes in the current object.
 
@@ -248,7 +248,7 @@ Try to manually connect from `icinga2-node2.localdomain` to the master node `ici
     ---
     ...
 
-If the connection attempt fails or your CA does not match, [verify the master and client certificates](17-troubleshooting.md#troubleshooting-cluster-ssl-certificate-verification).
+If the connection attempt fails or your CA does not match, [verify the master and client certificates](16-troubleshooting.md#troubleshooting-cluster-ssl-certificate-verification).
 
 #### <a id="troubleshooting-cluster-unauthenticated-clients"></a> Cluster Troubleshooting Unauthenticated Clients
 
@@ -263,7 +263,7 @@ Client as command execution bridge:
 
     [2015-07-13 18:29:26 +1000] notice/ApiEvents: Discarding 'execute command' message from 'icinga-master': Invalid endpoint origin (client not allowed).
 
-If these messages do not go away, make sure to [verify the master and client certificates](17-troubleshooting.md#troubleshooting-cluster-ssl-certificate-verification).
+If these messages do not go away, make sure to [verify the master and client certificates](16-troubleshooting.md#troubleshooting-cluster-ssl-certificate-verification).
 
 #### <a id="troubleshooting-cluster-ssl-certificate-verification"></a> Cluster Troubleshooting SSL Certificate Verification
 
@@ -289,7 +289,7 @@ At some point, when the network connection is broken or gone, the Icinga 2 insta
 will be disconnected. If the connection can't be re-established between zones and endpoints,
 they remain in a Split-Brain-mode and history may differ.
 
-Although the Icinga 2 cluster protocol stores historical events in a [replay log](17-troubleshooting.md#troubleshooting-cluster-replay-log)
+Although the Icinga 2 cluster protocol stores historical events in a [replay log](16-troubleshooting.md#troubleshooting-cluster-replay-log)
 for later synchronisation, you should make sure to check why the network connection failed.
 
 ### <a id="troubleshooting-cluster-command-endpoint-errors"></a> Cluster Troubleshooting Command Endpoint Errors
@@ -306,7 +306,7 @@ the following (e.g. by invoking a forced check from the web interface):
  * Referenced check plugin not found on the remote client.
  * Runtime warnings and errors, e.g. unresolved runtime macros or configuration problems.
 * Specific error messages are also populated into `UNKNOWN` check results including a detailed error message in their output.
-* More verbose logs are found inside the [debug log](17-troubleshooting.md#troubleshooting-enable-debug-output).
+* More verbose logs are found inside the [debug log](16-troubleshooting.md#troubleshooting-enable-debug-output).
 
 ### <a id="troubleshooting-cluster-config-sync"></a> Cluster Troubleshooting Config Sync
 
@@ -333,10 +333,10 @@ certificate's CN, the master will deny all events.
 > [Icinga Web 2](2-getting-started.md#setting-up-the-user-interface) provides a dashboard view
 > for overdue check results.
 
-Enable the [debug log](17-troubleshooting.md#troubleshooting-enable-debug-output) on the master
+Enable the [debug log](16-troubleshooting.md#troubleshooting-enable-debug-output) on the master
 for more verbose insights.
 
-If the client cannot authenticate, it's a more general [problem](17-troubleshooting.md#troubleshooting-cluster-unauthenticated-clients).
+If the client cannot authenticate, it's a more general [problem](16-troubleshooting.md#troubleshooting-cluster-unauthenticated-clients).
 
 The client's endpoint is not configured on nor trusted by the master node:
 
@@ -357,6 +357,6 @@ will store all events for not connected endpoints in the same and child zones.
 Check the following:
 
 * All clients are connected? (e.g. [cluster health check](13-distributed-monitoring-ha.md#cluster-health-check)).
-* Check your [connection](17-troubleshooting.md#troubleshooting-cluster-connection-errors) in general.
+* Check your [connection](16-troubleshooting.md#troubleshooting-cluster-connection-errors) in general.
 * Does the log replay work, e.g. are all events processed and the directory gets cleared up over time?
 * Decrease the `log_duration` attribute value for that specific [endpoint](6-object-types.md#objecttype-endpoint).
similarity index 98%
rename from doc/20-language-reference.md
rename to doc/18-language-reference.md
index 557c751dbe1d58196770c0905dd73a042b967c99..314c94935b40e7deaaf511340d36837ee427a655 100644 (file)
@@ -199,7 +199,7 @@ Functions can be called using the `()` operator:
       check_interval = len(MyGroups) * 1m
     }
 
-A list of available functions is available in the [Library Reference](21-library-reference.md#library-reference) chapter.
+A list of available functions is available in the [Library Reference](19-library-reference.md#library-reference) chapter.
 
 ## <a id="dictionary-operators"></a> Assignments
 
@@ -388,7 +388,7 @@ another group of objects.
 
 In this example the `assign where` condition is a boolean expression which is
 evaluated for all objects of type `Host` and a new service with name "ping"
-is created for each matching host. [Expression operators](20-language-reference.md#expression-operators)
+is created for each matching host. [Expression operators](18-language-reference.md#expression-operators)
 may be used in `assign where` conditions.
 
 The `to` keyword and the target type may be omitted if there is only one target
@@ -416,8 +416,8 @@ chapter.
 
 ## <a id="apply-for"></a> Apply For
 
-[Apply](20-language-reference.md#apply) rules can be extended with the
-[for loop](20-language-reference.md#for-loops) keyword.
+[Apply](18-language-reference.md#apply) rules can be extended with the
+[for loop](18-language-reference.md#for-loops) keyword.
 
     apply Service "prefix-" for (key => value in host.vars.dictionary) to Host {
       import "generic-service"
@@ -461,7 +461,7 @@ and `ignore where` conditions.
 In this example the `assign where` condition is a boolean expression which is evaluated
 for all objects of the type `Host`. Each matching host is added as member to the host group
 with the name "linux-servers". Membership exclusion can be controlled using the `ignore where`
-condition. [Expression operators](20-language-reference.md#expression-operators) may be used in `assign where` and
+condition. [Expression operators](18-language-reference.md#expression-operators) may be used in `assign where` and
 `ignore where` conditions.
 
 Source Type       | Variables
@@ -490,7 +490,7 @@ Empty dictionary     | {}                | false
 Non-empty dictionary | { key = "value" } | true
 
 For a list of supported expression operators for `assign where` and `ignore where`
-statements, see [expression operators](20-language-reference.md#expression-operators).
+statements, see [expression operators](18-language-reference.md#expression-operators).
 
 ## <a id="comments"></a> Comments
 
@@ -857,7 +857,7 @@ supports:
     keys(String.prototype)
 
 Additional documentation on type methods is available in the
-[library reference](21-library-reference.md#library-reference).
+[library reference](19-library-reference.md#library-reference).
 
 ## <a id="reserved-keywords"></a> Reserved Keywords
 
similarity index 98%
rename from doc/21-library-reference.md
rename to doc/19-library-reference.md
index 727a9625d57cba273f4f26c0774ec1821ae1774a..1e77bf0a1a6b0e3b7e1ef495b94733ef31567b26 100644 (file)
@@ -413,7 +413,7 @@ Signature:
     function contains(str);
 
 Returns `true` if the string `str` was found in the string. If the string
-was not found `false` is returned. Use [find](21-library-reference.md#string-find)
+was not found `false` is returned. Use [find](19-library-reference.md#string-find)
 for getting the index instead.
 
 Example:
@@ -522,7 +522,7 @@ object is recursively copied.
 
 ## <a id="array-type"></a> Array type
 
-Inherits methods from the [object type](21-library-reference.md#object-type).
+Inherits methods from the [object type](19-library-reference.md#object-type).
 
 ### <a id="array-add"></a> Array#add
 
@@ -616,7 +616,7 @@ Returns a new array with all elements of the current array in reverse order.
 
 ## <a id="dictionary-type"></a> Dictionary type
 
-Inherits methods from the [object type](21-library-reference.md#object-type).
+Inherits methods from the [object type](19-library-reference.md#object-type).
 
 ### <a id="dictionary-shallow-clone"></a> Dictionary#shallow_clone
 
index 44b35ce580fadec9a7f621fc491f737b45a7247d..ae5a00206eb64da4f7743baf3b648cd82ef3bba9 100644 (file)
@@ -312,10 +312,7 @@ Test it:
 ## <a id="setting-up-the-user-interface"></a> Setting up Icinga Web 2
 
 Icinga 2 can be used with Icinga Web 2 and a number of other web interfaces.
-This chapter explains how to set up Icinga Web 2. The
-[Alternative Frontends](15-alternative-frontends.md#alternative-frontends)
-chapter can be used as a starting point for installing some of the other web
-interfaces which are also available.
+This chapter explains how to set up Icinga Web 2.
 
 The DB IDO (Database Icinga Data Output) modules for Icinga 2 take care of
 exporting all configuration and status information into a database. The IDO
similarity index 100%
rename from doc/22-debug.md
rename to doc/20-debug.md
similarity index 98%
rename from doc/19-migrating-from-icinga-1x.md
rename to doc/21-migrating-from-icinga-1x.md
index 3c10277410c1f403058f63e32c09a25efa82c9e0..eaace3994fbfa8d196db12e2ca6208d314e3b793 100644 (file)
@@ -29,7 +29,7 @@ object specific policies.
 For a long-term migration of your configuration you should consider re-creating
 your configuration based on the proposed Icinga 2 configuration paradigm.
 
-Please read the [next chapter](19-migrating-from-icinga-1x.md#differences-1x-2) to find out more about the differences
+Please read the [next chapter](21-migrating-from-icinga-1x.md#differences-1x-2) to find out more about the differences
 between 1.x and 2.
 
 ### <a id="manual-config-migration-hints"></a> Manual Config Migration Hints
@@ -42,7 +42,7 @@ The examples are taken from Icinga 1.x test and production environments and conv
 straight into a possible Icinga 2 format. If you found a different strategy, please
 let us know!
 
-If you require in-depth explanations, please check the [next chapter](19-migrating-from-icinga-1x.md#differences-1x-2).
+If you require in-depth explanations, please check the [next chapter](21-migrating-from-icinga-1x.md#differences-1x-2).
 
 #### <a id="manual-config-migration-hints-Intervals"></a> Manual Config Migration Hints for Intervals
 
@@ -129,7 +129,7 @@ a member and includes all members of the `hg1` hostgroup.
       hostgroup_members               hg1
     }
 
-This can be migrated to Icinga 2 and [using group assign](20-language-reference.md#group-assign). The additional nested hostgroup
+This can be migrated to Icinga 2 and [using group assign](18-language-reference.md#group-assign). The additional nested hostgroup
 `hg1` is included into `hg2` with the `groups` attribute.
 
 
@@ -205,7 +205,7 @@ While you could manually migrate this like (please note the new generic command
 
 #### <a id="manual-config-migration-hints-runtime-macros"></a> Manual Config Migration Hints for Runtime Macros
 
-Runtime macros have been renamed. A detailed comparison table can be found [here](19-migrating-from-icinga-1x.md#differences-1x-2-runtime-macros).
+Runtime macros have been renamed. A detailed comparison table can be found [here](21-migrating-from-icinga-1x.md#differences-1x-2-runtime-macros).
 
 For example, accessing the service check output looks like the following in Icinga 1.x:
 
@@ -278,7 +278,7 @@ while the service check command resolves its value to the service attribute attr
 #### <a id="manual-config-migration-hints-contacts-users"></a> Manual Config Migration Hints for Contacts (Users)
 
 Contacts in Icinga 1.x act as users in Icinga 2, but do not have any notification commands specified.
-This migration part is explained in the [next chapter](19-migrating-from-icinga-1x.md#manual-config-migration-hints-notifications).
+This migration part is explained in the [next chapter](21-migrating-from-icinga-1x.md#manual-config-migration-hints-notifications).
 
     define contact{
       contact_name                    testconfig-user
@@ -288,7 +288,7 @@ This migration part is explained in the [next chapter](19-migrating-from-icinga-
       email                           icinga@localhost
     }
 
-The `service_notification_options` can be [mapped](19-migrating-from-icinga-1x.md#manual-config-migration-hints-notification-filters)
+The `service_notification_options` can be [mapped](21-migrating-from-icinga-1x.md#manual-config-migration-hints-notification-filters)
 into generic `state` and `type` filters, if additional notification filtering is required. `alias` gets
 renamed to `display_name`.
 
@@ -340,7 +340,7 @@ Assign it to the host or service and set the newly generated notification comman
 
 
 Convert the `notification_options` attribute from Icinga 1.x to Icinga 2 `states` and `types`. Details
-[here](19-migrating-from-icinga-1x.md#manual-config-migration-hints-notification-filters). Add the notification period.
+[here](21-migrating-from-icinga-1x.md#manual-config-migration-hints-notification-filters). Add the notification period.
 
       states = [ OK, Warning, Critical ]
       types = [ Recovery, Problem, Custom ]
@@ -577,7 +577,7 @@ enabled.
       assign where "hg_svcdep2" in host.groups
     }
 
-Host dependencies are explained in the [next chapter](19-migrating-from-icinga-1x.md#manual-config-migration-hints-host-parents).
+Host dependencies are explained in the [next chapter](21-migrating-from-icinga-1x.md#manual-config-migration-hints-host-parents).
 
 
 
@@ -744,11 +744,11 @@ included in `icinga2.conf` by default.
 ### <a id="differences-1x-2-main-config"></a> Main Config File
 
 In Icinga 1.x there are many global configuration settings available in `icinga.cfg`.
-Icinga 2 only uses a small set of [global constants](20-language-reference.md#constants) allowing
+Icinga 2 only uses a small set of [global constants](18-language-reference.md#constants) allowing
 you to specify certain different setting such as the `NodeName` in a cluster scenario.
 
 Aside from that, the [icinga2.conf](4-configuring-icinga-2.md#icinga2-conf) should take care of including
-global constants, enabled [features](8-cli-commands.md#features) and the object configuration.
+global constants, enabled [features](8-cli-commands.md#enable-features) and the object configuration.
 
 ### <a id="differences-1x-2-include-files-dirs"></a> Include Files and Directories
 
@@ -797,7 +797,7 @@ set in the `constants.conf` configuration file:
 
     const PluginDir = "/usr/lib/nagios/plugins"
 
-[Global macros](20-language-reference.md#constants) can only be defined once. Trying to modify a
+[Global macros](18-language-reference.md#constants) can only be defined once. Trying to modify a
 global constant will result in an error.
 
 ### <a id="differences-1x-2-configuration-comments"></a> Configuration Comments
@@ -948,7 +948,7 @@ In Icinga 1.x arguments are specified in the `check_command` attribute and
 are separated from the command name using an exclamation mark (`!`).
 
 Please check the migration hints for a detailed
-[migration example](19-migrating-from-icinga-1x.md#manual-config-migration-hints-check-command-arguments).
+[migration example](21-migrating-from-icinga-1x.md#manual-config-migration-hints-check-command-arguments).
 
 > **Note**
 >
@@ -1340,7 +1340,7 @@ child attributes may be omitted.
 For detailed examples on how to use the dependencies please check the [dependencies](3-monitoring-basics.md#dependencies)
 chapter.
 
-Dependencies can be applied to hosts or services using the [apply rules](20-language-reference.md#apply).
+Dependencies can be applied to hosts or services using the [apply rules](18-language-reference.md#apply).
 
 The `StatusDataWriter`, `IdoMysqlConnection` and `LivestatusListener` types
 support the Icinga 1.x schema with dependencies and parent attributes for
similarity index 100%
rename from doc/23-appendix.md
rename to doc/22-appendix.md
index 16971c7435dfd0b747c9fc051dcbfd2062a59b20..ffe267e739954b5a0a7a5ea6b01818233cc4a675 100644 (file)
@@ -46,7 +46,7 @@ check command.
 The `address` attribute is used by check commands to determine which network
 address is associated with the host object.
 
-Details on troubleshooting check problems can be found [here](17-troubleshooting.md#troubleshooting).
+Details on troubleshooting check problems can be found [here](16-troubleshooting.md#troubleshooting).
 
 ### <a id="host-states"></a> Host States
 
@@ -152,13 +152,13 @@ In addition to built-in attributes you can define your own attributes:
 
 Valid values for custom attributes include:
 
-* [Strings](20-language-reference.md#string-literals), [numbers](20-language-reference.md#numeric-literals) and [booleans](20-language-reference.md#boolean-literals)
-* [Arrays](20-language-reference.md#array) and [dictionaries](20-language-reference.md#dictionary)
+* [Strings](18-language-reference.md#string-literals), [numbers](18-language-reference.md#numeric-literals) and [booleans](18-language-reference.md#boolean-literals)
+* [Arrays](18-language-reference.md#array) and [dictionaries](18-language-reference.md#dictionary)
 * [Functions](3-monitoring-basics.md#custom-attributes-functions)
 
 ### <a id="custom-attributes-functions"></a> Functions as Custom Attributes
 
-Icinga 2 lets you specify [functions](20-language-reference.md#functions) for custom attributes.
+Icinga 2 lets you specify [functions](18-language-reference.md#functions) for custom attributes.
 The special case here is that whenever Icinga 2 needs the value for such a custom attribute it runs
 the function and uses whatever value the function returns:
 
@@ -170,7 +170,7 @@ the function and uses whatever value the function returns:
       vars.text = {{ Math.random() * 100 }}
     }
 
-This example uses the [abbreviated lambda syntax](20-language-reference.md#nullary-lambdas).
+This example uses the [abbreviated lambda syntax](18-language-reference.md#nullary-lambdas).
 
 These functions have access to a number of variables:
 
@@ -430,15 +430,15 @@ The following macros provide global statistics:
 Instead of assigning each object ([Service](6-object-types.md#objecttype-service),
 [Notification](6-object-types.md#objecttype-notification), [Dependency](6-object-types.md#objecttype-dependency),
 [ScheduledDowntime](6-object-types.md#objecttype-scheduleddowntime))
-based on attribute identifiers for example `host_name` objects can be [applied](20-language-reference.md#apply).
+based on attribute identifiers for example `host_name` objects can be [applied](18-language-reference.md#apply).
 
 Before you start using the apply rules keep the following in mind:
 
 * Define the best match.
     * A set of unique [custom attributes](3-monitoring-basics.md#custom-attributes) for these hosts/services?
     * Or [group](3-monitoring-basics.md#groups) memberships, e.g. a host being a member of a hostgroup, applying services to it?
-    * A generic pattern [match](20-language-reference.md#function-calls) on the host/service name?
-    * [Multiple expressions combined](3-monitoring-basics.md#using-apply-expressions) with `&&` or `||` [operators](20-language-reference.md#expression-operators)
+    * A generic pattern [match](18-language-reference.md#function-calls) on the host/service name?
+    * [Multiple expressions combined](3-monitoring-basics.md#using-apply-expressions) with `&&` or `||` [operators](18-language-reference.md#expression-operators)
 * All expressions must return a boolean value (an empty string is equal to `false` e.g.)
 
 > **Note**
@@ -502,7 +502,7 @@ two condition passes: Either the `customer` host custom attribute is set to `cus
 `OR` the host custom attribute `always_notify` is set to `true`.
 
 The notification is ignored for services whose host name ends with `*internal`
-`OR` the `priority` custom attribute is [less than](20-language-reference.md#expression-operators) `2`.
+`OR` the `priority` custom attribute is [less than](18-language-reference.md#expression-operators) `2`.
 
     template Notification "cust-xy-notification" {
       users = [ "noc-xy", "mgmt-xy" ]
@@ -556,7 +556,7 @@ In this example the `mail-noc` notification will be created as object for all se
 and all members of the user group `noc` will get notified.
 
 It is also possible to generally apply a notification template and dynamically overwrite values from
-the template by checking for custom attributes. This can be achieved by using [conditional statements](20-language-reference.md#conditional-statements):
+the template by checking for custom attributes. This can be achieved by using [conditional statements](18-language-reference.md#conditional-statements):
 
     apply Notification "host-mail-noc" to Host {
       import "mail-host-notification"
@@ -616,7 +616,7 @@ Detailed examples can be found in the [recurring downtimes](5-advanced-topics.md
 
 Next to the standard way of using [apply rules](3-monitoring-basics.md#using-apply)
 there is the requirement of applying objects based on a set (array or
-dictionary) using [apply for](20-language-reference.md#apply-for) expressions.
+dictionary) using [apply for](18-language-reference.md#apply-for) expressions.
 
 The sample configuration already includes a detailed example in [hosts.conf](4-configuring-icinga-2.md#hosts-conf)
 and [services.conf](4-configuring-icinga-2.md#services-conf) for this use case.
@@ -732,10 +732,10 @@ After `vars` is fully populated, all object attributes can be set calculated fro
 provided host attributes. For strings, you can use string concatention with the `+` operator.
 
 You can also specifiy the display_name, check command, interval, notes, notes_url, action_url, etc.
-attributes that way. Attribute strings can be [concatenated](20-language-reference.md#expression-operators),
+attributes that way. Attribute strings can be [concatenated](18-language-reference.md#expression-operators),
 for example for adding a more detailed service `display_name`.
 
-This example also uses [if conditions](20-language-reference.md#conditional-statements)
+This example also uses [if conditions](18-language-reference.md#conditional-statements)
 if specific values are not set, adding a local default value.
 The other way around you can override specific custom attributes inherited from a service template,
 if set.
@@ -974,7 +974,7 @@ hosts or with the `test_server` attribute set to `true` are not added to this
 group.
 
 Details on the `assign where` syntax can be found in the
-[Language Reference](20-language-reference.md#apply)
+[Language Reference](18-language-reference.md#apply)
 
 ## <a id="notifications"></a> Notifications
 
@@ -1010,11 +1010,11 @@ The user `icingaadmin` in the example below will get notified only on `WARNING`
 If you don't set the `states` and `types` configuration attributes for the `User`
 object, notifications for all states and types will be sent.
 
-Details on troubleshooting notification problems can be found [here](17-troubleshooting.md#troubleshooting).
+Details on troubleshooting notification problems can be found [here](16-troubleshooting.md#troubleshooting).
 
 > **Note**
 >
-> Make sure that the [notification](8-cli-commands.md#features) feature is enabled
+> Make sure that the [notification](8-cli-commands.md#enable-features) feature is enabled
 > in order to execute notification commands.
 
 You should choose which information you (and your notified users) are interested in
@@ -1231,7 +1231,7 @@ using the `check_command` attribute.
 
 > **Note**
 >
-> Make sure that the [checker](8-cli-commands.md#features) feature is enabled in order to
+> Make sure that the [checker](8-cli-commands.md#enable-features) feature is enabled in order to
 > execute checks.
 
 #### <a id="command-plugin-integration"></a> Integrate the Plugin with a CheckCommand Definition
@@ -1524,7 +1524,7 @@ interfaces (E-Mail, XMPP, IRC, Twitter, etc).
 
 > **Note**
 >
-> Make sure that the [notification](8-cli-commands.md#features) feature is enabled
+> Make sure that the [notification](8-cli-commands.md#enable-features) feature is enabled
 > in order to execute notification commands.
 
 Below is an example using runtime macros from Icinga 2 (such as `$service.output$` for
@@ -1774,7 +1774,7 @@ Rephrased: If the parent service object changes into the `Warning` state, this
 dependency will fail and render all child objects (hosts or services) unreachable.
 
 You can determine the child's reachability by querying the `is_reachable` attribute
-in for example [DB IDO](23-appendix.md#schema-db-ido-extensions).
+in for example [DB IDO](22-appendix.md#schema-db-ido-extensions).
 
 ### <a id="dependencies-implicit-host-service"></a> Implicit Dependencies for Services on Host
 
index 185fe41c805f29028fc0c074136b2c4026b2ba7e..e0a1beead57d828c1d32704f17becec9608812e2 100644 (file)
@@ -5,7 +5,7 @@ The configuration files which are automatically created when installing the Icin
 are a good way to start with Icinga 2.
 
 If you're interested in a detailed explanation of each language feature used in those
-configuration files you can find more information in the [Language Reference](20-language-reference.md#language-reference)
+configuration files you can find more information in the [Language Reference](18-language-reference.md#language-reference)
 chapter.
 
 ## <a id="configuration-best-practice"></a> Configuration Best Practice
@@ -79,7 +79,7 @@ Here's a brief description of the example configuration:
      * to the documentation that is distributed as part of Icinga 2.
      */
 
-Icinga 2 supports [C/C++-style comments](20-language-reference.md#comments).
+Icinga 2 supports [C/C++-style comments](18-language-reference.md#comments).
 
     /**
      * The constants.conf defines global constants.
@@ -113,7 +113,7 @@ The `include` directive can be used to include other files.
 
 This `include` directive takes care of including the configuration files for all
 the features which have been enabled with `icinga2 feature enable`. See
-[Enabling/Disabling Features](8-cli-commands.md#features) for more details.
+[Enabling/Disabling Features](8-cli-commands.md#enable-features) for more details.
 
     /**
      * The repository.d directory contains all configuration objects
@@ -295,13 +295,13 @@ host and your additional hosts are getting [services](4-configuring-icinga-2.md#
 
 > **Tip**
 >
-> If you don't understand all the attributes and how to use [apply rules](20-language-reference.md#apply)
+> If you don't understand all the attributes and how to use [apply rules](18-language-reference.md#apply)
 > don't worry - the [monitoring basics](3-monitoring-basics.md#monitoring-basics) chapter will explain
 > that in detail.
 
 #### <a id="services-conf"></a> services.conf
 
-These service [apply rules](20-language-reference.md#apply) will show you how to monitor
+These service [apply rules](18-language-reference.md#apply) will show you how to monitor
 the local host, but also allow you to re-use or modify them for
 your own requirements.
 
@@ -349,7 +349,7 @@ these services in [downtimes.conf](4-configuring-icinga-2.md#downtimes-conf).
 
 In this example the `assign where` condition is a boolean expression which is
 evaluated for all objects of type `Host` and a new service with name "load"
-is created for each matching host. [Expression operators](20-language-reference.md#expression-operators)
+is created for each matching host. [Expression operators](18-language-reference.md#expression-operators)
 may be used in `assign where` conditions.
 
 Multiple `assign where` condition can be combined with `AND` using the `&&` operator
@@ -367,7 +367,7 @@ In this example, the service `ssh` is applied to all hosts having the `address`
 attribute defined `AND` having the custom attribute `os` set to the string
 `Linux`.
 You can modify this condition to match multiple expressions by combinding `AND`
-and `OR` using `&&` and `||` [operators](20-language-reference.md#expression-operators), for example
+and `OR` using `&&` and `||` [operators](18-language-reference.md#expression-operators), for example
 `assign where host.address && (vars.os == "Linux" || vars.os == "Windows")`.
 
 
@@ -515,7 +515,7 @@ The example host defined in [hosts.conf](hosts-conf) already has the
 custom attribute `os` set to `Linux` and is therefore automatically
 a member of the host group `linux-servers`.
 
-This is done by using the [group assign](20-language-reference.md#group-assign) expressions similar
+This is done by using the [group assign](18-language-reference.md#group-assign) expressions similar
 to previously seen [apply rules](3-monitoring-basics.md#using-apply).
 
     object HostGroup "linux-servers" {
@@ -531,7 +531,7 @@ to previously seen [apply rules](3-monitoring-basics.md#using-apply).
     }
 
 Service groups can be grouped together by similar pattern matches.
-The [match() function](20-language-reference.md#function-calls) expects a wildcard match string
+The [match() function](18-language-reference.md#function-calls) expects a wildcard match string
 and the attribute string to match with.
 
     object ServiceGroup "ping" {
index 9b203edd0f454192c37355721a0e15c7e8fefc2d..95c9a5635877f798acf69d9bd291a258a8a20b05 100644 (file)
@@ -53,7 +53,7 @@ is removed (may happen before or after the actual end time!).
 
 ### <a id="scheduling-downtime"></a> Scheduling a downtime
 
-This can either happen through a web interface or by sending an [external command](5-advanced-topics.md#external-commands)
+This can either happen through a web interface or by sending an [external command](15-features.md#external-commands)
 to the external command pipe provided by the `ExternalCommandListener` configuration.
 
 Fixed downtimes require a start and end time (a duration will be ignored).
@@ -226,7 +226,7 @@ The other way around you can create objects dynamically using your own global fu
 
 Tips when implementing functions:
 
-* Use [log()](21-library-reference.md#global-functions) to dump variables. You can see the output
+* Use [log()](19-library-reference.md#global-functions) to dump variables. You can see the output
 inside the `icinga2.log` file depending in your log severity
 * Use the `icinga2 console` to test basic functionality (e.g. iterating over a dictionary)
 * Build them step-by-step. You can always refactor your code later on.
@@ -255,7 +255,7 @@ dictionary named `compellent` with the key `disks`. This was then used inside se
 The more significant problem was to only add the command parameter `--disk` to the plugin call
 when the dictionary `compellent` contains the key `disks`, and omit it if not found.
 
-By defining `set_if` as [abbreviated lambda function](20-language-reference.md#nullary-lambdas)
+By defining `set_if` as [abbreviated lambda function](18-language-reference.md#nullary-lambdas)
 and evaluating the host custom attribute `compellent` containing the `disks` this problem was
 solved like this:
 
@@ -275,9 +275,9 @@ solved like this:
       }
     }
 
-This implementation uses the dictionary type method [contains](21-library-reference.md#dictionary-contains)
+This implementation uses the dictionary type method [contains](19-library-reference.md#dictionary-contains)
 and will fail if `host.vars.compellent` is not of the type `Dictionary`.
-Therefore you can extend the checks using the [typeof](20-language-reference.md#types) function.
+Therefore you can extend the checks using the [typeof](18-language-reference.md#types) function.
 
 You can test the types using the `icinga2 console`:
 
@@ -370,7 +370,7 @@ You can omit the `log()` calls, they only help debugging.
 
 ## <a id="access-object-attributes-at-runtime"></a> Access Object Attributes at Runtime
 
-The [Object Accessor Functions](21-library-reference.md#object-accessor-functions)
+The [Object Accessor Functions](19-library-reference.md#object-accessor-functions)
 can be used to retrieve references to other objects by name.
 
 This allows you to access configuration and runtime object attributes. A detailed
@@ -509,485 +509,17 @@ state type if the service stays in a `NOT-OK` state. That way each
 service recheck will automatically trigger a notification unless the
 service is acknowledged or in a scheduled downtime.
 
+## <a id="api"></a> Icinga 2 API
 
-## <a id="external-commands"></a> External Commands
+The Icinga 2 API allows you to manage configuration objects
+and resources in a simple, programmatic way using HTTP requests.
 
-Icinga 2 provides an external command pipe for processing commands
-triggering specific actions (for example rescheduling a service check
-through the web interface).
+More details can be found in [this chapter](9-icinga2-api.md#icinga2-api).
 
-In order to enable the `ExternalCommandListener` configuration use the
-following command and restart Icinga 2 afterwards:
+## <a id="features"></a> Icinga 2 Feature Configuration
 
-    # icinga2 feature enable command
+Icinga 2 provides several features which can be enabled using [CLI commands](8-cli-commands.md#cli-command-feature).
 
-Icinga 2 creates the command pipe file as `/var/run/icinga2/cmd/icinga2.cmd`
-using the default configuration.
+More details can be found in [this chapter](15-features.md#icinga2-features).
 
-Web interfaces and other Icinga addons are able to send commands to
-Icinga 2 through the external command pipe, for example for rescheduling
-a forced service check:
 
-    # /bin/echo "[`date +%s`] SCHEDULE_FORCED_SVC_CHECK;localhost;ping4;`date +%s`" >> /var/run/icinga2/cmd/icinga2.cmd
-
-    # tail -f /var/log/messages
-
-    Oct 17 15:01:25 icinga-server icinga2: Executing external command: [1382014885] SCHEDULE_FORCED_SVC_CHECK;localhost;ping4;1382014885
-    Oct 17 15:01:25 icinga-server icinga2: Rescheduling next check for service 'ping4'
-
-A list of currently supported external commands can be found [here](23-appendix.md#external-commands-list-detail).
-
-Detailed information on the commands and their required parameters can be found
-on the [Icinga 1.x documentation](http://docs.icinga.org/latest/en/extcommands2.html).
-
-## <a id="logging"></a> Logging
-
-Icinga 2 supports three different types of logging:
-
-* File logging
-* Syslog (on *NIX-based operating systems)
-* Console logging (`STDOUT` on tty)
-
-You can enable additional loggers using the `icinga2 feature enable`
-and `icinga2 feature disable` commands to configure loggers:
-
-Feature  | Description
----------|------------
-debuglog | Debug log (path: `/var/log/icinga2/debug.log`, severity: `debug` or higher)
-mainlog  | Main log (path: `/var/log/icinga2/icinga2.log`, severity: `information` or higher)
-syslog   | Syslog (severity: `warning` or higher)
-
-By default file the `mainlog` feature is enabled. When running Icinga 2
-on a terminal log messages with severity `information` or higher are
-written to the console.
-
-## <a id="performance-data"></a> Performance Data
-
-When a host or service check is executed plugins should provide so-called
-`performance data`. Next to that additional check performance data
-can be fetched using Icinga 2 runtime macros such as the check latency
-or the current service state (or additional custom attributes).
-
-The performance data can be passed to external applications which aggregate and
-store them in their backends. These tools usually generate graphs for historical
-reporting and trending.
-
-Well-known addons processing Icinga performance data are [PNP4Nagios](14-addons-plugins.md#addons-graphing-pnp),
-[Graphite](14-addons-plugins.md#addons-graphing-graphite) or [OpenTSDB](5-advanced-topics.md#opentsdb-writer).
-
-### <a id="writing-performance-data-files"></a> Writing Performance Data Files
-
-PNP4Nagios and Graphios use performance data collector daemons to fetch
-the current performance files for their backend updates.
-
-Therefore the Icinga 2 [PerfdataWriter](6-object-types.md#objecttype-perfdatawriter)
-feature allows you to define the output template format for host and services helped
-with Icinga 2 runtime vars.
-
-    host_format_template = "DATATYPE::HOSTPERFDATA\tTIMET::$icinga.timet$\tHOSTNAME::$host.name$\tHOSTPERFDATA::$host.perfdata$\tHOSTCHECKCOMMAND::$host.check_command$\tHOSTSTATE::$host.state$\tHOSTSTATETYPE::$host.state_type$"
-    service_format_template = "DATATYPE::SERVICEPERFDATA\tTIMET::$icinga.timet$\tHOSTNAME::$host.name$\tSERVICEDESC::$service.name$\tSERVICEPERFDATA::$service.perfdata$\tSERVICECHECKCOMMAND::$service.check_command$\tHOSTSTATE::$host.state$\tHOSTSTATETYPE::$host.state_type$\tSERVICESTATE::$service.state$\tSERVICESTATETYPE::$service.state_type$"
-
-The default templates are already provided with the Icinga 2 feature configuration
-which can be enabled using
-
-    # icinga2 feature enable perfdata
-
-By default all performance data files are rotated in a 15 seconds interval into
-the `/var/spool/icinga2/perfdata/` directory as `host-perfdata.<timestamp>` and
-`service-perfdata.<timestamp>`.
-External collectors need to parse the rotated performance data files and then
-remove the processed files.
-
-### <a id="graphite-carbon-cache-writer"></a> Graphite Carbon Cache Writer
-
-While there are some [Graphite](14-addons-plugins.md#addons-graphing-graphite)
-collector scripts and daemons like Graphios available for Icinga 1.x it's more
-reasonable to directly process the check and plugin performance
-in memory in Icinga 2. Once there are new metrics available, Icinga 2 will directly
-write them to the defined Graphite Carbon daemon tcp socket.
-
-You can enable the feature using
-
-    # icinga2 feature enable graphite
-
-By default the [GraphiteWriter](6-object-types.md#objecttype-graphitewriter) feature
-expects the Graphite Carbon Cache to listen at `127.0.0.1` on TCP port `2003`.
-
-#### <a id="graphite-carbon-cache-writer-schema"></a> Current Graphite Schema
-
-The current naming schema is defined as follows. The official Icinga Web 2 Graphite
-module will use that schema too.
-
-The default prefix for hosts and services is configured using
-[runtime macros](3-monitoring-basics.md#runtime-macros)like this:
-
-    icinga2.$host.name$.host.$host.check_command$
-    icinga2.$host.name$.services.$service.name$.$service.check_command$
-
-You can customize the prefix name by using the `host_name_template` and
-`service_name_template` configuration attributes.
-
-The additional levels will allow fine granular filters and also template
-capabilities, e.g. by using the check command `disk` for specific
-graph templates in web applications rendering the Graphite data.
-
-The following characters are escaped in prefix labels:
-
-  Character    | Escaped character
-  --------------|--------------------------
-  whitespace   | _
-  .            | _
-  \            | _
-  /            | _
-
-Metric values are stored like this:
-
-    <prefix>.perfdata.<perfdata-label>.value
-
-The following characters are escaped in perfdata labels:
-
-  Character    | Escaped character
-  --------------|--------------------------
-  whitespace   | _
-  \            | _
-  /            | _
-  ::           | .
-
-Note that perfdata labels may contain dots (`.`) allowing to
-add more subsequent levels inside the Graphite tree.
-`::` adds support for [multi performance labels](http://my-plugin.de/wiki/projects/check_multi/configuration/performance)
-and is therefore replaced by `.`.
-
-By enabling `enable_send_thresholds` Icinga 2 automatically adds the following threshold metrics:
-
-    <prefix>.perfdata.<perfdata-label>.min
-    <prefix>.perfdata.<perfdata-label>.max
-    <prefix>.perfdata.<perfdata-label>.warn
-    <prefix>.perfdata.<perfdata-label>.crit
-
-By enabling `enable_send_metadata` Icinga 2 automatically adds the following metadata metrics:
-
-    <prefix>.metadata.current_attempt
-    <prefix>.metadata.downtime_depth
-    <prefix>.metadata.execution_time
-    <prefix>.metadata.latency
-    <prefix>.metadata.max_check_attempts
-    <prefix>.metadata.reachable
-    <prefix>.metadata.state
-    <prefix>.metadata.state_type
-
-Metadata metric overview:
-
-  metric             | description
-  -------------------|------------------------------------------
-  current_attempt    | current check attempt
-  max_check_attempts | maximum check attempts until the hard state is reached
-  reachable          | checked object is reachable
-  downtime_depth     | number of downtimes this object is in
-  execution_time     | check execution time
-  latency            | check latency
-  state              | current state of the checked object
-  state_type         | 0=SOFT, 1=HARD state
-
-The following example illustrates how to configure the storage schemas for Graphite Carbon
-Cache.
-
-    [icinga2_default]
-    # intervals like PNP4Nagios uses them per default
-    pattern = ^icinga2\.
-    retentions = 1m:2d,5m:10d,30m:90d,360m:4y
-
-#### <a id="graphite-carbon-cache-writer-schema-legacy"></a> Graphite Schema < 2.4
-
-In order to restore the old legacy schema, you'll need to adopt the `GraphiteWriter`
-configuration:
-
-    object GraphiteWriter "graphite" {
-
-      enable_legacy_mode = true
-
-      host_name_template = "icinga.$host.name$"
-      service_name_template = "icinga.$host.name$.$service.name$"
-    }
-
-The old legacy naming schema is
-
-    icinga.<hostname>.<metricname>
-    icinga.<hostname>.<servicename>.<metricname>
-
-You can customize the metric prefix name by using the `host_name_template` and
-`service_name_template` configuration attributes.
-
-The example below uses [runtime macros](3-monitoring-basics.md#runtime-macros) and a
-[global constant](20-language-reference.md#constants) named `GraphiteEnv`. The constant name
-is freely definable and should be put in the [constants.conf](4-configuring-icinga-2.md#constants-conf) file.
-
-    const GraphiteEnv = "icinga.env1"
-
-    object GraphiteWriter "graphite" {
-      host_name_template = GraphiteEnv + ".$host.name$"
-      service_name_template = GraphiteEnv + ".$host.name$.$service.name$"
-    }
-
-To make sure Icinga 2 writes a valid label into Graphite some characters are replaced
-with `_` in the target name:
-
-    \/.-  (and space)
-
-The resulting name in Graphite might look like:
-
-    www-01 / http-cert / response time
-    icinga.www_01.http_cert.response_time
-
-In addition to the performance data retrieved from the check plugin, Icinga 2 sends
-internal check statistic data to Graphite:
-
-  metric             | description
-  -------------------|------------------------------------------
-  current_attempt    | current check attempt
-  max_check_attempts | maximum check attempts until the hard state is reached
-  reachable          | checked object is reachable
-  downtime_depth     | number of downtimes this object is in
-  execution_time     | check execution time
-  latency            | check latency
-  state              | current state of the checked object
-  state_type         | 0=SOFT, 1=HARD state
-
-The following example illustrates how to configure the storage-schemas for Graphite Carbon
-Cache. Please make sure that the order is correct because the first match wins.
-
-    [icinga_internals]
-    pattern = ^icinga\..*\.(max_check_attempts|reachable|current_attempt|execution_time|latency|state|state_type)
-    retentions = 5m:7d
-
-    [icinga_default]
-    # intervals like PNP4Nagios uses them per default
-    pattern = ^icinga\.
-    retentions = 1m:2d,5m:10d,30m:90d,360m:4y
-
-### <a id="gelfwriter"></a> GELF Writer
-
-The `Graylog Extended Log Format` (short: [GELF](http://www.graylog2.org/resources/gelf))
-can be used to send application logs directly to a TCP socket.
-
-While it has been specified by the [graylog2](http://www.graylog2.org/) project as their
-[input resource standard](http://www.graylog2.org/resources/gelf), other tools such as
-[Logstash](http://www.logstash.net) also support `GELF` as
-[input type](http://logstash.net/docs/latest/inputs/gelf).
-
-You can enable the feature using
-
-    # icinga2 feature enable gelf
-
-By default the `GelfWriter` object expects the GELF receiver to listen at `127.0.0.1` on TCP port `12201`.
-The default `source`  attribute is set to `icinga2`. You can customize that for your needs if required.
-
-Currently these events are processed:
-* Check results
-* State changes
-* Notifications
-
-### <a id="opentsdb-writer"></a> OpenTSDB Writer
-
-While there are some OpenTSDB collector scripts and daemons like tcollector available for
-Icinga 1.x it's more reasonable to directly process the check and plugin performance
-in memory in Icinga 2. Once there are new metrics available, Icinga 2 will directly
-write them to the defined TSDB TCP socket.
-
-You can enable the feature using
-
-    # icinga2 feature enable opentsdb
-
-By default the `OpenTsdbWriter` object expects the TSD to listen at
-`127.0.0.1` on port `4242`.
-
-The current naming schema is
-
-    icinga.host.<metricname>
-    icinga.service.<servicename>.<metricname>
-
-for host and service checks. The tag host is always applied.
-
-To make sure Icinga 2 writes a valid metric into OpenTSDB some characters are replaced
-with `_` in the target name:
-
-    \  (and space)
-
-The resulting name in OpenTSDB might look like:
-
-    www-01 / http-cert / response time
-    icinga.http_cert.response_time
-
-In addition to the performance data retrieved from the check plugin, Icinga 2 sends
-internal check statistic data to OpenTSDB:
-
-  metric             | description
-  -------------------|------------------------------------------
-  current_attempt    | current check attempt
-  max_check_attempts | maximum check attempts until the hard state is reached
-  reachable          | checked object is reachable
-  downtime_depth     | number of downtimes this object is in
-  execution_time     | check execution time
-  latency            | check latency
-  state              | current state of the checked object
-  state_type         | 0=SOFT, 1=HARD state
-
-While reachable, state and state_type are metrics for the host or service the
-other metrics follow the current naming schema
-
-    icinga.check.<metricname>
-
-with the following tags
-
-  tag     | description
-  --------|------------------------------------------
-  type    | the check type, one of [host, service]
-  host    | hostname, the check ran on
-  service | the service name (if type=service)
-
-> **Note**
->
-> You might want to set the tsd.core.auto_create_metrics setting to `true`
-> in your opentsdb.conf configuration file.
-
-
-## <a id="status-data"></a> Status Data
-
-Icinga 1.x writes object configuration data and status data in a cyclic
-interval to its `objects.cache` and `status.dat` files. Icinga 2 provides
-the `StatusDataWriter` object which dumps all configuration objects and
-status updates in a regular interval.
-
-    # icinga2 feature enable statusdata
-
-Icinga 1.x Classic UI requires this data set as part of its backend.
-
-> **Note**
->
-> If you are not using any web interface or addon which uses these files
-> you can safely disable this feature.
-
-
-## <a id="compat-logging"></a> Compat Logging
-
-The Icinga 1.x log format is considered being the `Compat Log`
-in Icinga 2 provided with the `CompatLogger` object.
-
-These logs are not only used for informational representation in
-external web interfaces parsing the logs, but also to generate
-SLA reports and trends in Icinga 1.x Classic UI. Furthermore the
-[Livestatus](16-livestatus.md#setting-up-livestatus) feature uses these logs for answering queries to
-historical tables.
-
-The `CompatLogger` object can be enabled with
-
-    # icinga2 feature enable compatlog
-
-By default, the Icinga 1.x log file called `icinga.log` is located
-in `/var/log/icinga2/compat`. Rotated log files are moved into
-`var/log/icinga2/compat/archives`.
-
-The format cannot be changed without breaking compatibility to
-existing log parsers.
-
-    # tail -f /var/log/icinga2/compat/icinga.log
-
-    [1382115688] LOG ROTATION: HOURLY
-    [1382115688] LOG VERSION: 2.0
-    [1382115688] HOST STATE: CURRENT;localhost;UP;HARD;1;
-    [1382115688] SERVICE STATE: CURRENT;localhost;disk;WARNING;HARD;1;
-    [1382115688] SERVICE STATE: CURRENT;localhost;http;OK;HARD;1;
-    [1382115688] SERVICE STATE: CURRENT;localhost;load;OK;HARD;1;
-    [1382115688] SERVICE STATE: CURRENT;localhost;ping4;OK;HARD;1;
-    [1382115688] SERVICE STATE: CURRENT;localhost;ping6;OK;HARD;1;
-    [1382115688] SERVICE STATE: CURRENT;localhost;processes;WARNING;HARD;1;
-    [1382115688] SERVICE STATE: CURRENT;localhost;ssh;OK;HARD;1;
-    [1382115688] SERVICE STATE: CURRENT;localhost;users;OK;HARD;1;
-    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;disk;1382115705
-    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;http;1382115705
-    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;load;1382115705
-    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;ping4;1382115705
-    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;ping6;1382115705
-    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;processes;1382115705
-    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;ssh;1382115705
-    [1382115706] EXTERNAL COMMAND: SCHEDULE_FORCED_SVC_CHECK;localhost;users;1382115705
-    [1382115731] EXTERNAL COMMAND: PROCESS_SERVICE_CHECK_RESULT;localhost;ping6;2;critical test|
-    [1382115731] SERVICE ALERT: localhost;ping6;CRITICAL;SOFT;2;critical test
-
-
-
-
-## <a id="db-ido"></a> DB IDO
-
-The IDO (Icinga Data Output) modules for Icinga 2 take care of exporting all
-configuration and status information into a database. The IDO database is used
-by a number of projects including Icinga Web 1.x and 2.
-
-Details on the installation can be found in the [Configuring DB IDO](2-getting-started.md#configuring-db-ido-mysql)
-chapter. Details on the configuration can be found in the
-[IdoMysqlConnection](6-object-types.md#objecttype-idomysqlconnection) and
-[IdoPgsqlConnection](6-object-types.md#objecttype-idopgsqlconnection)
-object configuration documentation.
-The DB IDO feature supports [High Availability](13-distributed-monitoring-ha.md#high-availability-db-ido) in
-the Icinga 2 cluster.
-
-The following example query checks the health of the current Icinga 2 instance
-writing its current status to the DB IDO backend table `icinga_programstatus`
-every 10 seconds. By default it checks 60 seconds into the past which is a reasonable
-amount of time - adjust it for your requirements. If the condition is not met,
-the query returns an empty result.
-
-> **Tip**
->
-> Use [check plugins](14-addons-plugins.md#plugins) to monitor the backend.
-
-Replace the `default` string with your instance name, if different.
-
-Example for MySQL:
-
-    # mysql -u root -p icinga -e "SELECT status_update_time FROM icinga_programstatus ps
-      JOIN icinga_instances i ON ps.instance_id=i.instance_id
-      WHERE (UNIX_TIMESTAMP(ps.status_update_time) > UNIX_TIMESTAMP(NOW())-60)
-      AND i.instance_name='default';"
-
-    +---------------------+
-    | status_update_time  |
-    +---------------------+
-    | 2014-05-29 14:29:56 |
-    +---------------------+
-
-
-Example for PostgreSQL:
-
-    # export PGPASSWORD=icinga; psql -U icinga -d icinga -c "SELECT ps.status_update_time FROM icinga_programstatus AS ps
-      JOIN icinga_instances AS i ON ps.instance_id=i.instance_id
-      WHERE ((SELECT extract(epoch from status_update_time) FROM icinga_programstatus) > (SELECT extract(epoch from now())-60))
-      AND i.instance_name='default'";
-
-    status_update_time
-    ------------------------
-     2014-05-29 15:11:38+02
-    (1 Zeile)
-
-
-A detailed list on the available table attributes can be found in the [DB IDO Schema documentation](23-appendix.md#schema-db-ido).
-
-
-## <a id="check-result-files"></a> Check Result Files
-
-Icinga 1.x writes its check result files to a temporary spool directory
-where they are processed in a regular interval.
-While this is extremely inefficient in performance regards it has been
-rendered useful for passing passive check results directly into Icinga 1.x
-skipping the external command pipe.
-
-Several clustered/distributed environments and check-aggregation addons
-use that method. In order to support step-by-step migration of these
-environments, Icinga 2 supports the `CheckResultReader` object.
-
-There is no feature configuration available, but it must be defined
-on-demand in your Icinga 2 objects configuration.
-
-    object CheckResultReader "reader" {
-      spool_dir = "/data/check-results"
-    }
index d68a77be53e1cd248a76db4372ad49ce9ff87030..78536497e745ea6246d4351ad5aac0ec2d1c3402 100644 (file)
@@ -457,7 +457,7 @@ Configuration Attributes:
   enable_send_metadata         | **Optional.** Send additional metadata metrics. Defaults to `false`.
   enable_legacy_mode   | **Optional.** Enable legacy mode for schema < 2.4. **Note**: This will be removed in future versions.
 
-Additional usage examples can be found [here](5-advanced-topics.md#graphite-carbon-cache-writer).
+Additional usage examples can be found [here](15-features.md#graphite-carbon-cache-writer).
 
 
 
@@ -542,7 +542,7 @@ A group of hosts.
 
 > **Best Practice**
 >
-> Assign host group members using the [group assign](20-language-reference.md#group-assign) rules.
+> Assign host group members using the [group assign](18-language-reference.md#group-assign) rules.
 
 Example:
 
@@ -1155,7 +1155,7 @@ A group of services.
 
 > **Best Practice**
 >
-> Assign service group members using the [group assign](20-language-reference.md#group-assign) rules.
+> Assign service group members using the [group assign](18-language-reference.md#group-assign) rules.
 
 Example:
 
@@ -1342,7 +1342,7 @@ A user group.
 
 > **Best Practice**
 >
-> Assign user group members using the [group assign](20-language-reference.md#group-assign) rules.
+> Assign user group members using the [group assign](18-language-reference.md#group-assign) rules.
 
 Example:
 
index 7229a50fc5efc8f2f4789155e9aeb6b84e46623d..79bdd7b81cf74754e010b98f92a03b776d37a860 100644 (file)
@@ -77,8 +77,11 @@ and adds the check source to the check output.
 For test and demo purposes only. The `random` check command does not support
 any vars.
 
+
 # <a id="plugin-check-commands"></a> Plugin Check Commands
 
+## <a id="plugin-check-commands-monitoring-plugins"></a> Plugin Check Commands for Monitoring Plugins
+
 The Plugin Check Commands provides example configuration for plugin check commands
 provided by the Monitoring Plugins project.
 
@@ -90,14 +93,14 @@ file:
 The plugin check commands assume that there's a global constant named `PluginDir`
 which contains the path of the plugins from the Monitoring Plugins project.
 
-## <a id="plugin-check-command-apt"></a> apt
+### <a id="plugin-check-command-apt"></a> apt
 
 Check command for the `check_apt` plugin.
 
 The `apt` check command does not support any vars.
 
 
-## <a id="plugin-check-command-by-ssh"></a> by_ssh
+### <a id="plugin-check-command-by-ssh"></a> by_ssh
 
 Check command object for the `check_by_ssh` plugin.
 
@@ -117,7 +120,7 @@ by_ssh_crit     | **Optional.** The critical threshold.
 by_ssh_timeout  | **Optional.** The timeout in seconds.
 
 
-## <a id="plugin-check-command-dhcp"></a> dhcp
+### <a id="plugin-check-command-dhcp"></a> dhcp
 
 Check command object for the `check_dhcp` plugin.
 
@@ -133,7 +136,7 @@ dhcp_mac        | **Optional.** The MAC address to use in the DHCP request.
 dhcp_unicast    | **Optional.** Whether to use unicast requests. Defaults to false.
 
 
-## <a id="plugin-check-command-dig"></a> dig
+### <a id="plugin-check-command-dig"></a> dig
 
 Check command object for the `check_dig` plugin.
 
@@ -153,7 +156,7 @@ dig_critical         | **Optional.** Response time to result in critical status
 dig_timeout          | **Optional.** Seconds before connection times out (default: 10).
 
 
-## <a id="plugin-check-command-disk"></a> disk
+### <a id="plugin-check-command-disk"></a> disk
 
 Check command object for the `check_disk` plugin.
 
@@ -192,7 +195,7 @@ disk_timeout           | **Optional.** Seconds before connection times out (defa
 disk_units             | **Optional.** Choose bytes, kB, MB, GB, TB (default: MB).
 disk_exclude_type      | **Optional.** Ignore all filesystems of indicated type (may be repeated).
 
-## <a id="plugin-check-command-disk-smb"></a> disk_smb
+### <a id="plugin-check-command-disk-smb"></a> disk_smb
 
 Check command object for the `check_disk_smb` plugin.
 
@@ -214,7 +217,7 @@ disk_smb_wused              | **Optional.** The used space warning threshold. Defaults
 disk_smb_cused         | **Optional.** The used space critical threshold. Defaults to "95%". If the percent sign is omitted, use optional disk units.
 disk_smb_port          | **Optional.** Connection port, e.g. `139` or `445`. Defaults to `smbclient` default if omitted.
 
-## <a id="plugin-check-command-dns"></a> dns
+### <a id="plugin-check-command-dns"></a> dns
 
 Check command object for the `check_dns` plugin.
 
@@ -232,7 +235,7 @@ dns_ctime            | **Optional.** Return critical if elapsed time exceeds val
 dns_timeout          | **Optional.** Seconds before connection times out. Defaults to 10.
 
 
-## <a id="plugin-check-command-dummy"></a> dummy
+### <a id="plugin-check-command-dummy"></a> dummy
 
 Check command object for the `check_dummy` plugin.
 
@@ -244,7 +247,7 @@ dummy_state     | **Optional.** The state. Can be one of 0 (ok), 1 (warning), 2
 dummy_text      | **Optional.** Plugin output. Defaults to "Check was successful.".
 
 
-## <a id="plugin-check-command-fping4"></a> fping4
+### <a id="plugin-check-command-fping4"></a> fping4
 
 Check command object for the `check_fping` plugin.
 
@@ -265,7 +268,7 @@ fping_source_ip | **Optional.** The name or ip address of the source ip.
 fping_source_interface | **Optional.** The source interface name.
 
 
-## <a id="plugin-check-command-fping6"></a> fping6
+### <a id="plugin-check-command-fping6"></a> fping6
 
 Check command object for the `check_fping` plugin.
 
@@ -286,7 +289,7 @@ fping_source_ip | **Optional.** The name or ip address of the source ip.
 fping_source_interface | **Optional.** The source interface name.
 
 
-## <a id="plugin-check-command-ftp"></a> ftp
+### <a id="plugin-check-command-ftp"></a> ftp
 
 Check command object for the `check_ftp` plugin.
 
@@ -314,7 +317,7 @@ ftp_ctime          | **Optional.** Response time to result in critical status (s
 ftp_timeout        | **Optional.** Seconds before connection times out. Defaults to 10.
 
 
-## <a id="plugin-check-command-hostalive"></a> hostalive
+### <a id="plugin-check-command-hostalive"></a> hostalive
 
 Check command object for the `check_ping` plugin with host check default values. This variant
 uses the host's `address` attribute if available and falls back to using the `address6` attribute
@@ -333,7 +336,7 @@ ping_packets    | **Optional.** The number of packets to send. Defaults to 5.
 ping_timeout    | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout).
 
 
-## <a id="plugin-check-command-hostalive4"></a> hostalive4
+### <a id="plugin-check-command-hostalive4"></a> hostalive4
 
 Check command object for the `check_ping` plugin with host check default values. This variant
 uses the host's `address` attribute.
@@ -351,7 +354,7 @@ ping_packets    | **Optional.** The number of packets to send. Defaults to 5.
 ping_timeout    | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout).
 
 
-## <a id="plugin-check-command-hostalive6"></a> hostalive6
+### <a id="plugin-check-command-hostalive6"></a> hostalive6
 
 Check command object for the `check_ping` plugin with host check default values. This variant
 uses the host's `address6` attribute.
@@ -369,7 +372,7 @@ ping_packets    | **Optional.** The number of packets to send. Defaults to 5.
 ping_timeout    | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout).
 
 
-## <a id="plugin-check-command-hpjd"></a> hpjd
+### <a id="plugin-check-command-hpjd"></a> hpjd
 
 Check command object for the `check_hpjd` plugin.
 
@@ -382,7 +385,7 @@ hpjd_port       | **Optional.** The host's SNMP port. Defaults to 161.
 hpjd_community  | **Optional.** The SNMP community. Defaults  to "public".
 
 
-## <a id="plugin-check-command-http"></a> http
+### <a id="plugin-check-command-http"></a> http
 
 Check command object for the `check_http` plugin.
 
@@ -423,7 +426,7 @@ http_pagesize            | **Optional.** Minimum page size required:Maximum page
 http_timeout             | **Optional.** Seconds before connection times out.
 
 
-## <a id="plugin-check-command-icmp"></a> icmp
+### <a id="plugin-check-command-icmp"></a> icmp
 
 Check command object for the `check_icmp` plugin.
 
@@ -445,7 +448,7 @@ icmp_data_bytes | **Optional.** Payload size for each ICMP request. Defaults to
 icmp_timeout    | **Optional.** The plugin timeout in seconds. Defaults to 10 (seconds).
 
 
-## <a id="plugin-check-command-imap"></a> imap
+### <a id="plugin-check-command-imap"></a> imap
 
 Check command object for the `check_imap` plugin.
 
@@ -458,7 +461,7 @@ imap_port       | **Optional.** The port that should be checked. Defaults to 143
 imap_timeout    | **Optional.** The timeout in seconds.
 
 
-## <a id="plugin-check-command-ldap"></a> ldap
+### <a id="plugin-check-command-ldap"></a> ldap
 
 Check command object for the `check_ldap` plugin.
 
@@ -481,7 +484,7 @@ ldap_critical       | **Optional.** Response time to result in critical status (second
 ldap_timeout   | **Optional.** Seconds before connection times out (default: 10).
 ldap_verbose   | **Optional.** Show details for command-line debugging (disabled by default)
 
-## <a id="plugin-check-command-load"></a> load
+### <a id="plugin-check-command-load"></a> load
 
 Check command object for the `check_load` plugin.
 
@@ -498,7 +501,7 @@ load_cload15    | **Optional.** The 15-minute critical threshold. Defaults to 4.
 load_percpu     | **Optional.** Divide the load averages by the number of CPUs (when possible). Defaults to false.
 
 
-## <a id="plugin-check-command-nrpe"></a> nrpe
+### <a id="plugin-check-command-nrpe"></a> nrpe
 
 Check command object for the `check_nrpe` plugin.
 
@@ -517,7 +520,7 @@ nrpe_ipv4   | **Optional.** Use IPv4 only.
 nrpe_ipv6      | **Optional.** Use IPv6 only.
 
 
-## <a id="plugin-check-command-nscp"></a> nscp
+### <a id="plugin-check-command-nscp"></a> nscp
 
 Check command object for the `check_nt` plugin.
 
@@ -536,7 +539,7 @@ nscp_timeout    | **Optional.** The query timeout in seconds.
 nscp_showall    | **Optional.** Use with SERVICESTATE to see working services or PROCSTATE for running processes. Defaults to false.
 
 
-## <a id="plugin-check-command-ntp-time"></a> ntp_time
+### <a id="plugin-check-command-ntp-time"></a> ntp_time
 
 Check command object for the `check_ntp_time` plugin.
 
@@ -553,7 +556,7 @@ ntp_timeoffset  | **Optional.** Expected offset of the ntp server relative to lo
 ntp_timeout     | **Optional.** Seconds before connection times out (default: 10).
 
 
-## <a id="plugin-check-command-ntp-peer"></a> ntp_peer
+### <a id="plugin-check-command-ntp-peer"></a> ntp_peer
 
 Check command object for the `check_ntp_peer` plugin.
 
@@ -574,7 +577,7 @@ ntp_csource     | **Optional.** Critical threshold for number of usable time sou
 ntp_timeout     | **Optional.** Seconds before connection times out (default: 10).
 
 
-## <a id="plugin-check-command-passive"></a> passive
+### <a id="plugin-check-command-passive"></a> passive
 
 Specialised check command object for passive checks executing the `check_dummy` plugin with appropriate default values.
 
@@ -586,7 +589,7 @@ dummy_state     | **Optional.** The state. Can be one of 0 (ok), 1 (warning), 2
 dummy_text      | **Optional.** Plugin output. Defaults to "No Passive Check Result Received.".
 
 
-## <a id="plugin-check-command-ping"></a> ping
+### <a id="plugin-check-command-ping"></a> ping
 
 Check command object for the `check_ping` plugin. This command uses the host's `address` attribute
 if available and falls back to using the `address6` attribute if the `address` attribute is not set.
@@ -605,7 +608,7 @@ ping_packets    | **Optional.** The number of packets to send. Defaults to 5.
 ping_timeout    | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout).
 
 
-## <a id="plugin-check-command-ping4"></a> ping4
+### <a id="plugin-check-command-ping4"></a> ping4
 
 Check command object for the `check_ping` plugin.
 
@@ -621,7 +624,7 @@ ping_cpl        | **Optional.** The packet loss critical threshold in %. Default
 ping_packets    | **Optional.** The number of packets to send. Defaults to 5.
 ping_timeout    | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout).
 
-## <a id="plugin-check-command-ping6"></a> ping6
+### <a id="plugin-check-command-ping6"></a> ping6
 
 Check command object for the `check_ping` plugin.
 
@@ -638,7 +641,7 @@ ping_packets    | **Optional.** The number of packets to send. Defaults to 5.
 ping_timeout    | **Optional.** The plugin timeout in seconds. Defaults to 0 (no timeout).
 
 
-## <a id="plugin-check-command-pop"></a> pop
+### <a id="plugin-check-command-pop"></a> pop
 
 Check command object for the `check_pop` plugin.
 
@@ -651,7 +654,7 @@ pop_port        | **Optional.** The port that should be checked. Defaults to 110
 pop_timeout     | **Optional.** The timeout in seconds.
 
 
-## <a id="plugin-check-command-processes"></a> procs
+### <a id="plugin-check-command-processes"></a> procs
 
 Check command object for the `check_procs` plugin.
 
@@ -676,7 +679,7 @@ procs_command        | **Optional.** Only scan for exact matches of COMMAND (wit
 procs_nokthreads     | **Optional.** Only scan for non kernel threads. Defaults to false.
 
 
-## <a id="plugin-check-command-simap"></a> simap
+### <a id="plugin-check-command-simap"></a> simap
 
 Check command object for the `check_simap` plugin.
 
@@ -689,7 +692,7 @@ simap_port      | **Optional.** The host's port.
 simap_timeout   | **Optional.** The timeout in seconds.
 
 
-## <a id="plugin-check-command-smtp"></a> smtp
+### <a id="plugin-check-command-smtp"></a> smtp
 
 Check command object for the `check_smtp` plugin.
 
@@ -715,7 +718,7 @@ smtp_critical         | **Optional.** Response time to result in critical status
 smtp_timeout          | **Optional.** Seconds before connection times out (default: 10).
 
 
-## <a id="plugin-check-command-snmp"></a> snmp
+### <a id="plugin-check-command-snmp"></a> snmp
 
 Check command object for the `check_snmp` plugin.
 
@@ -742,7 +745,7 @@ snmp_rate           | **Optional.** Boolean. Enable rate calculation.
 snmp_getnext        | **Optional.** Boolean. Use SNMP GETNEXT. Defaults to false.
 snmp_timeout        | **Optional.** The command timeout in seconds. Defaults to 10 seconds.
 
-## <a id="plugin-check-command-snmpv3"></a> snmpv3
+### <a id="plugin-check-command-snmpv3"></a> snmpv3
 
 Check command object for the `check_snmp` plugin, using SNMPv3 authentication and encryption options.
 
@@ -767,7 +770,7 @@ snmpv3_eregi         | **Optional.** Return OK state (for that OID) if case-inse
 snmpv3_invert_search | **Optional.** Invert search result and return CRITICAL if found
 snmpv3_label         | **Optional.** Prefix label for output value.
 
-## <a id="plugin-check-command-snmp-uptime"></a> snmp-uptime
+### <a id="plugin-check-command-snmp-uptime"></a> snmp-uptime
 
 Check command object for the `check_snmp` plugin.
 
@@ -780,7 +783,7 @@ snmp_oid        | **Optional.** The SNMP OID. Defaults to "1.3.6.1.2.1.1.3.0".
 snmp_community  | **Optional.** The SNMP community. Defaults to "public".
 
 
-## <a id="plugin-check-command-spop"></a> spop
+### <a id="plugin-check-command-spop"></a> spop
 
 Check command object for the `check_spop` plugin.
 
@@ -793,7 +796,7 @@ spop_port       | **Optional.** The host's port.
 spop_timeout    | **Optional.** The timeout in seconds.
 
 
-## <a id="plugin-check-command-ssh"></a> ssh
+### <a id="plugin-check-command-ssh"></a> ssh
 
 Check command object for the `check_ssh` plugin.
 
@@ -806,7 +809,7 @@ ssh_port        | **Optional.** The port that should be checked. Defaults to 22.
 ssh_timeout     | **Optional.** Seconds before connection times out. Defaults to 10.
 
 
-## <a id="plugin-check-command-ssl"></a> ssl
+### <a id="plugin-check-command-ssl"></a> ssl
 
 Check command object for the `check_tcp` plugin, using ssl-related options.
 
@@ -821,7 +824,7 @@ ssl_cert_valid_days_warn      | **Optional.** Warning threshold for days before
 ssl_cert_valid_days_critical  | **Optional.** Critical threshold for days before the certificate will expire. When used, ssl_cert_valid_days_warn must also be set.
 
 
-## <a id="plugin-check-command-ssmtp"></a> ssmtp
+### <a id="plugin-check-command-ssmtp"></a> ssmtp
 
 Check command object for the `check_ssmtp` plugin.
 
@@ -833,7 +836,7 @@ ssmtp_address   | **Required.** The host's address. Defaults to "$address$" if t
 ssmtp_port      | **Optional.** The port that should be checked. Defaults to 465.
 
 
-## <a id="plugin-check-command-swap"></a> swap
+### <a id="plugin-check-command-swap"></a> swap
 
 Check command object for the `check_swap` plugin.
 
@@ -845,7 +848,7 @@ swap_wfree      | **Optional.** The free swap space warning threshold in %. Defa
 swap_cfree      | **Optional.** The free swap space critical threshold in %. Defaults to 25.
 
 
-## <a id="plugin-check-command-tcp"></a> tcp
+### <a id="plugin-check-command-tcp"></a> tcp
 
 Check command object for the `check_tcp` plugin.
 
@@ -873,7 +876,7 @@ tcp_ctime       | **Optional.** Response time to result in critical status (seco
 tcp_timeout     | **Optional.** Seconds before connection times out. Defaults to 10.
 
 
-## <a id="plugin-check-command-udp"></a> udp
+### <a id="plugin-check-command-udp"></a> udp
 
 Check command object for the `check_udp` plugin.
 
@@ -888,7 +891,7 @@ udp_expect      | **Required.** The payload to expect in the response datagram.
 udp_quit        | **Optional.** The payload to send to 'close' the session.
 
 
-## <a id="plugin-check-command-ups"></a> ups
+### <a id="plugin-check-command-ups"></a> ups
 
 Check command object for the `check_ups` plugin.
 
@@ -906,7 +909,7 @@ ups_celsius     | **Optional.** Display the temperature in degrees Celsius inste
 ups_timeout     | **Optional.** The number of seconds before the connection times out. Defaults to 10.
 
 
-## <a id="plugin-check-command-users"></a> users
+### <a id="plugin-check-command-users"></a> users
 
 Check command object for the `check_users` plugin.
 
@@ -918,7 +921,7 @@ users_wgreater  | **Optional.** The user count warning threshold. Defaults to 20
 users_cgreater  | **Optional.** The user count critical threshold. Defaults to 50.
 
 
-## <a id="plugin-check-command-clamd"></a> clamd
+### <a id="plugin-check-command-clamd"></a> clamd
 
 Check command object for the `check_clamd` plugin.
 
@@ -946,7 +949,7 @@ clamd_ctime          | **Optional.** Response time to result in critical status
 clamd_timeout        | **Optional.** Seconds before connection times out. Defaults to 10.
 
 
-## <a id="plugin-check-command-mailq"></a> mailq
+### <a id="plugin-check-command-mailq"></a> mailq
 
 Check command object for the `check_mailq` plugin.
 
@@ -962,7 +965,7 @@ mailq_timeout               | **Optional.** Plugin timeout in seconds (default = 15).
 mailq_servertype       | **Optional.** [ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect).
 
 
-## <a id="plugin-check-command-pgsql"></a> pgsql
+### <a id="plugin-check-command-pgsql"></a> pgsql
 
 Check command object for the `check_pgsql` plugin.
 
@@ -970,7 +973,7 @@ Custom attributes passed as [command parameters](3-monitoring-basics.md#command-
 
 Name                   | Description
 ------------------------|---------------------------------------------------------------
-pgsql_hostname         | **Optional.** Host name, IP Address, or unix socket (must be an absolute path). 
+pgsql_hostname         | **Optional.** Host name, IP Address, or unix socket (must be an absolute path).
 pgsql_port             | **Optional.** Port number (default: 5432).
 pgsql_database         | **Optional.** Database to check (default: template1).
 pgsql_username         | **Optional.** Login name of user.
@@ -984,7 +987,7 @@ pgsql_query_warning | **Optional.** SQL query value to result in warning status
 pgsql_query_critical   | **Optional.** SQL query value to result in critical status (double).
 
 
-# <a id="windows-plugins"></a> Icinga 2 Windows plugins
+## <a id="windows-plugins"></a> Windows Plugins for Icinga 2
 
 To allow a basic monitoring of Windows clients Icinga 2 comes with a set of Windows only plugins. While trying to mirror the functionalities of their linux cousins from the monitoring-plugins package, the differences between Windows and Linux are too big to be able use the same CheckCommands for both systems.
 
@@ -995,7 +998,7 @@ A check-commands-windows.conf comes with Icinga 2, it asumes that the Windows Pl
 One of the differences between the Windows plugins and their linux counterparts is that they consistently do not require thresholds to run, functioning like dummies without.
 
 
-## <a id="windows-plugins-thresholds"></a> Threshold syntax
+### <a id="windows-plugins-thresholds"></a> Threshold syntax
 
 So not specified differently the thresholds for the plugins all follow the same pattern
 
@@ -1007,7 +1010,7 @@ Threshold    | Meaning
 "![10-40]"   | Same as above, but the result is inverted.
 
 
-## <a id="windows-plugins-disk-windows"></a> disk-windows
+### <a id="windows-plugins-disk-windows"></a> disk-windows
 
 Check command object for the `check_disk.exe` plugin.
 Aggregates the free disk space of all volumes and mount points it can find, or the ones defined in `disk_win_path`. Ignores removable storage like fash drives and discs (CD, DVD etc.).
@@ -1022,7 +1025,7 @@ disk\_win\_path | **Optional**. Check only these paths, default checks all.
 disk\_win\_unit | **Optional**. Use this unit to display disk space, thresholds are interpreted in this unit. Defaults to "mb", possible values are: b, kb, mb, gb and tb.
 
 
-## <a id="windows-plugins-load-windows"></a> load-windows
+### <a id="windows-plugins-load-windows"></a> load-windows
 
 Check command object for the `check_load.exe` plugin.
 This plugin collects the inverse of the performance counter `\Processor(_Total)\% Idle Time` two times, with a wait time of one second between the collection. To change this wait time use [`perfmon-windows`](7-icinga-template-library.md#windows-plugins-load-windows).
@@ -1035,7 +1038,7 @@ load\_win\_warn | **Optional**. The warning threshold.
 load\_win\_crit | **Optional**. The critical threshold.
 
 
-## <a id="windows-plugins-memory-windows"></a> memory-windows
+### <a id="windows-plugins-memory-windows"></a> memory-windows
 
 Check command object for the `check_memory.exe` plugin.
 The memory collection is instant.
@@ -1055,7 +1058,7 @@ memory\_win\_crit | **Optional**. The critical threshold.
 memory\_win\_unit | **Optional**. The unit to display the received value in, thresholds are interpreted in this unit. Defaults to "mb" (megabye), possible values are: b, kb, mb, gb and tb.
 
 
-## <a id="windows-plugins-network-windows"></a> network-windows
+### <a id="windows-plugins-network-windows"></a> network-windows
 
 Check command object for the `check_network.exe` plugin.
 Collects the total Bytes inbount and outbound for all interfaces in one second, to itemise interfaces or use a different collection interval use [`perfmon-windows`](7-icinga-template-library.md#windows-plugins-load-windows).
@@ -1068,7 +1071,7 @@ network\_win\_warn | **Optional**. The warning threshold.
 network\_win\_crit | **Optional**. The critical threshold.
 
 
-## <a id="windows-plugins-permon-windows"></a> perfmon-windows
+### <a id="windows-plugins-permon-windows"></a> perfmon-windows
 
 Check command object for the `check_perfmon.exe` plugin.
 This plugins allows to collect data from a Performance Counter. After the first data collection a second one is done after `perfmon_win_wait` milliseconds. When you know `perfmon_win_counter` only requires one set of data to provide valid data you can set `perfmon_win_wait` to `0`.
@@ -1086,7 +1089,7 @@ perfmon\_win\_wait    | **Optional**. Time in milliseconds to wait between data
 perfmon\_win\_type    | **Optional**. Format in which to expect perfomance values. Possible are: long, int64 and double (default).
 
 
-## <a id="windows-plugins-ping-windows"></a> ping-windows
+### <a id="windows-plugins-ping-windows"></a> ping-windows
 
 Check command object for the `check_ping.exe` plugin.
 ping-windows should automaticly detect whether `ping_win_address` is an IPv4 or IPv6 address, if not use ping4-windows and ping6-windows. Also note that check\_ping.exe waits at least `ping_win_timeout` milliseconds between the pings.
@@ -1102,7 +1105,7 @@ ping\_win\_packets | **Optional**. Number of packages to send. Default: 5.
 ping\_win\_timeout | **Optional**. The timeout in milliseconds. Default: 1000
 
 
-## <a id="windows-plugins-procs-windows"></a> procs-windows
+### <a id="windows-plugins-procs-windows"></a> procs-windows
 
 Check command object for `check_procs.exe` plugin.
 When useing `procs_win_user` this plugins needs adminstratice privileges to access the processes of other users, to just enumerate them no additional privileges are required.
@@ -1116,7 +1119,7 @@ procs\_win\_crit | **Optional**. The critical threshold.
 procs\_win\_user | **Optional**. Count this useres processes.
 
 
-## <a id="windows-plugins-service-windows"></a> service-windows
+### <a id="windows-plugins-service-windows"></a> service-windows
 
 Check command object for `check_service.exe` plugin.
 This checks thresholds work different since the binary decision whether a service is running or not does not allow for three states. As a default `check_service.exe` will return CRITICAL when `service_win_service` is not running, the `service_win_warn` flag changes this to WARNING.
@@ -1129,7 +1132,7 @@ service\_win\_warn    | **Optional**. Warn when service is not running.
 service\_win\_service | **Required**. The critical threshold.
 
 
-## <a id="windows-plugins-swap-windows"></a> swap-windows
+### <a id="windows-plugins-swap-windows"></a> swap-windows
 
 Check command object for `check_swap.exe` plugin.
 The data collection is instant.
@@ -1143,7 +1146,7 @@ swap\_win\_crit | **Optional**. The critical threshold.
 swap\_win\_unit | **Optional**. The unit to display the received value in, thresholds are interpreted in this unit. Defaults to "mb" (megabyte).
 
 
-## <a id="windows-plugins-update-windows"></a> update-windows
+### <a id="windows-plugins-update-windows"></a> update-windows
 
 Check command object for `check_update.exe` plugin.
 Querying Microsoft for Windows updates can take multiple seconds to minutes. An update is treated as important when it has the WSUS flag for SecurityUpdates or CriticalUpdates.
@@ -1162,7 +1165,7 @@ update\_win\_crit   | If set return critical when important updates that require
 update\_win\_reboot | Set to treat 'may need update' as 'definitely needs update'
 
 
-## <a id="windows-plugins-uptime-windows"></a> uptime-windows
+### <a id="windows-plugins-uptime-windows"></a> uptime-windows
 
 Check command opject for `check_uptime.exe` plugin.
 Uses GetTickCount64 to get the uptime, so boot time is not included.
@@ -1176,7 +1179,7 @@ uptime\_win\_crit | **Optional**. The critical threshold.
 uptime\_win\_unit | **Optional**. The unit to display the received value in, thresholds are interpreted in this unit. Defaults to "s"(seconds), possible values are ms (milliseconds), s, m (minutes), h (hours).
 
 
-## <a id="windows-plugins-users-windows"></a> users-windows
+### <a id="windows-plugins-users-windows"></a> users-windows
 
 Check command object for `check_users.exe` plugin.
 
@@ -1188,7 +1191,7 @@ users\_win\_warn | **Optional**. The warning threshold.
 users\_win\_crit | **Optional**. The critical threshold.
 
 
-# <a id="nscp-plugin-check-commands"></a> NSClient++ Check Commands
+## <a id="nscp-plugin-check-commands"></a> Plugin Check Commands for NSClient++
 
 Icinga 2 can use the `nscp client` command to run arbitrary NSClient++ checks.
 
@@ -1208,7 +1211,7 @@ not be necessary to manually set this constant.
 
 Note that it is not necessary to run NSClient++ as a Windows service for these commands to work.
 
-## <a id="nscp-check-local"></a> nscp-local
+### <a id="nscp-check-local"></a> nscp-local
 
 Check command object for NSClient++
 
@@ -1222,67 +1225,69 @@ nscp_boot       | **Optional.** Whether to use the --boot option. Defaults to tr
 nscp_query      | **Required.** The NSClient++ query. Try `nscp client -q x` for a list.
 nscp_arguments  | **Optional.** An array of query arguments.
 
-## <a id="nscp-check-local-cpu"></a> nscp-local-cpu
+### <a id="nscp-check-local-cpu"></a> nscp-local-cpu
 
 Check command object for the `check_cpu` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-memory"></a> nscp-local-memory
+### <a id="nscp-check-local-memory"></a> nscp-local-memory
 
 Check command object for the `check_memory` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-os-version"></a> nscp-local-os-version
+### <a id="nscp-check-local-os-version"></a> nscp-local-os-version
 
 Check command object for the `check_os_version` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-pagefile"></a> nscp-local-pagefile
+### <a id="nscp-check-local-pagefile"></a> nscp-local-pagefile
 
 Check command object for the `check_pagefile` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-process"></a> nscp-local-process
+### <a id="nscp-check-local-process"></a> nscp-local-process
 
 Check command object for the `check_process` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-service"></a> nscp-local-service
+### <a id="nscp-check-local-service"></a> nscp-local-service
 
 Check command object for the `check_service` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-uptime"></a> nscp-local-uptime
+### <a id="nscp-check-local-uptime"></a> nscp-local-uptime
 
 Check command object for the `check_uptime` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-version"></a> nscp-local-version
+### <a id="nscp-check-local-version"></a> nscp-local-version
 
 Check command object for the `check_version` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-disk"></a> nscp-local-disk
+### <a id="nscp-check-local-disk"></a> nscp-local-disk
 
 Check command object for the `check_drivesize` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-## <a id="nscp-check-local-counter"></a> nscp-local-counter
+### <a id="nscp-check-local-counter"></a> nscp-local-counter
 
 Check command object for the `check_pdh` NSClient++ plugin.
 
 This command has the same custom attributes like the `nscp-local` check command.
 
-# <a id="snmp-manubulon-plugin-check-commands"></a> SNMP Manubulon Plugin Check Commands
+
+
+## <a id="snmp-manubulon-plugin-check-commands"></a> Plugin Check Commands for Manubulon SNMP
 
 The `SNMP Manubulon Plugin Check Commands` provide example configuration for plugin check
 commands provided by the [SNMP Manubulon project](http://nagios.manubulon.com/index_snmp.html).
@@ -1295,7 +1300,7 @@ You can enable these plugin check commands by adding the following the include d
 
     include <manubulon>
 
-## Checks by Host Type
+### Checks by Host Type
 
 **N/A**      : Not available for this type.
 
@@ -1323,7 +1328,7 @@ You can enable these plugin check commands by adding the following the include d
   Cisco CSS               |   Yes      |   ??     |   Yes     | Yes |   No     | ??  | check_snmp_css.pl
 
 
-## <a id="plugin-check-command-snmp-load"></a> snmp-load
+### <a id="plugin-check-command-snmp-load"></a> snmp-load
 
 Check command object for the [check_snmp_load.pl](http://nagios.manubulon.com/snmp_load.html) plugin.
 
@@ -1349,7 +1354,7 @@ snmp_load_type          | **Optional.** Load type. Defaults to "stand". Check al
 snmp_perf               | **Optional.** Enable perfdata values. Defaults to true.
 snmp_timeout            | **Optional.** The command timeout in seconds. Defaults to 5 seconds.
 
-## <a id="plugin-check-command-snmp-memory"></a> snmp-memory
+### <a id="plugin-check-command-snmp-memory"></a> snmp-memory
 
 Check command object for the [check_snmp_mem.pl](http://nagios.manubulon.com/snmp_mem.html) plugin.
 
@@ -1374,7 +1379,7 @@ snmp_is_cisco             | **Optional.** Change OIDs for Cisco switches. Defaults to false
 snmp_perf               | **Optional.** Enable perfdata values. Defaults to true.
 snmp_timeout            | **Optional.** The command timeout in seconds. Defaults to 5 seconds.
 
-## <a id="plugin-check-command-snmp-storage"></a> snmp-storage
+### <a id="plugin-check-command-snmp-storage"></a> snmp-storage
 
 Check command object for the [check_snmp_storage.pl](http://nagios.manubulon.com/snmp_storage.html) plugin.
 
@@ -1399,7 +1404,7 @@ snmp_storage_name       | **Optional.** Storage name. Default to regex "^/$$". M
 snmp_perf               | **Optional.** Enable perfdata values. Defaults to true.
 snmp_timeout            | **Optional.** The command timeout in seconds. Defaults to 5 seconds.
 
-## <a id="plugin-check-command-snmp-interface"></a> snmp-interface
+### <a id="plugin-check-command-snmp-interface"></a> snmp-interface
 
 Check command object for the [check_snmp_int.pl](http://nagios.manubulon.com/snmp_int.html) plugin.
 
@@ -1435,7 +1440,7 @@ snmp_warncrit_percent       | **Optional.** Make the warning and critical levels
 snmp_perf                   | **Optional.** Enable perfdata values. Defaults to true.
 snmp_timeout                | **Optional.** The command timeout in seconds. Defaults to 5 seconds.
 
-## <a id="plugin-check-command-snmp-process"></a> snmp-process
+### <a id="plugin-check-command-snmp-process"></a> snmp-process
 
 Check command object for the [check_snmp_process.pl](http://nagios.manubulon.com/snmp_process.html) plugin.
 
@@ -1460,18 +1465,24 @@ snmp_process_name       | **Optional.** Name of the process (regexp). No trailin
 snmp_perf               | **Optional.** Enable perfdata values. Defaults to true.
 snmp_timeout            | **Optional.** The command timeout in seconds. Defaults to 5 seconds.
 
-# <a id="plugins-contrib"></a> Plugins Contrib
 
-The Plugins contrib collects various contributed command definitions.
+
+## <a id="plugins-contrib"></a> Contributed Plugin Check Commands
+
+The contributed Plugin Check Commands provides various additional command definitions
+contributed by community members.
 
 These check commands assume that the global constant named `PluginContribDir`
-is set to the path where the user installs custom plugins and can be enabled by uncommenting the corresponding line in icinga2.conf.
+is set to the path where the user installs custom plugins and can be enabled by
+uncommenting the corresponding line in [icinga2.conf](4-configuring-icinga-2.md#icinga2-conf):
+
+    include <plugins-contrib>
 
-## <a id="plugins-contrib-databases"></a> Databases
+### <a id="plugins-contrib-databases"></a> Databases
 
 All database plugins go in this category.
 
-### <a id="plugins-contrib-command-mssql_health"></a> mssql_health
+#### <a id="plugins-contrib-command-mssql_health"></a> mssql_health
 
 The plugin `mssql_health` utilises Perl DBD::Sybase based on FreeTDS to connect to MSSQL databases for monitoring.
 For release tarballs, detailed documentation especially on the different modes and scripts for creating a monitoring user see [https://labs.consol.de](https://labs.consol.de/nagios/check_mssql_health/). For development check [https://github.com](https://github.com/lausser/check_mssql_health).
@@ -1496,7 +1507,7 @@ mssql_health_units               | **Optional.** This is used for a better outpu
 mssql_health_offlineok           | **Optional.** Set this to true, if offline databases are perfectly ok for you. Defaults to false.
 mssql_health_commit              | **Optional.** Set this to true to turn on autocommit for the dbd::sybase module. Defaults to false.
 
-### <a id="plugins-contrib-command-mysql_health"></a> mysql_health
+#### <a id="plugins-contrib-command-mysql_health"></a> mysql_health
 
 The plugin `mysql_health` utilises Perl DBD::MySQL to connect to MySQL databases for monitoring.
 For release tarballs and detailed documentation especially on the different modes and required permissions see [https://labs.consol.de](https://labs.consol.de/nagios/check_mysql_health/). For development check [https://github.com](https://github.com/lausser/check_mysql_health).
@@ -1519,7 +1530,7 @@ mysql_health_name2               | **Optional.** If "mysql_health_name" is a sql
 mysql_health_units               | **Optional.** This is used for a better output of mode=sql and for specifying thresholds for mode=tablespace-free. Possible values are "%", "KB", "MB" and "GB".
 mysql_health_labelformat         | **Optional.** One of those formats pnp4nagios or groundwork. Defaults to pnp4nagios.
 
-### <a id="plugins-contrib-command-oracle_health"></a> oracle_health
+#### <a id="plugins-contrib-command-oracle_health"></a> oracle_health
 
 The plugin `oracle_health` utilises Perl DBD::Oracle based on oracle-instantclient-sdk or sqlplus to connect to Oracle databases for monitoring.
 For release tarballs and detailed documentation especially on the different modes and required permissions see [https://labs.consol.de](https://labs.consol.de/nagios/check_oracle_health/). For development check [https://github.com](https://github.com/lausser/check_oracle_health).
@@ -1549,7 +1560,7 @@ Name                | Description
 ORACLE_HOME         | **Required.** Specifies the location of the oracle instant client libraries. Defaults to "/usr/lib/oracle/11.2/client64/lib". Can be overridden by setting "oracle_home".
 TNS_ADMIN           | **Required.** Specifies the location of the tnsnames.ora including the database connection strings. Defaults to "/etc/icinga2/plugin-configs". Can be overridden by setting "oracle_tns_admin".
 
-### <a id="plugins-contrib-command-postgres"></a> postgres
+#### <a id="plugins-contrib-command-postgres"></a> postgres
 
 The plugin `postgres` utilises the psql binary to connect to PostgreSQL databases for monitoring.
 For release tarballs and detailed documentation especially the different actions and required persmissions see [https://bucardo.org/wiki/Check_postgres](https://bucardo.org/wiki/Check_postgres). For development check [https://github.com](https://github.com/bucardo/check_postgres).
@@ -1575,7 +1586,7 @@ postgres_production  | **Optional.** Assume that the server is in production mod
 postgres_action      | **Required.** Determines the test executed.
 postgres_unixsocket  | **Optional.** If "postgres_unixsocket" is set to true the unix socket is used instead of an address. Defaults to false.
 
-### <a id="plugins-contrib-command-mongodb"></a> mongodb
+#### <a id="plugins-contrib-command-mongodb"></a> mongodb
 
 The plugin `mongodb` utilises Python PyMongo.
 For development check [https://github.com](https://github.com/mzupan/nagios-plugin-mongodb).
@@ -1602,7 +1613,7 @@ mongodb_querytype                | **Optional.** The query type to check [query|
 mongodb_collection               | **Optional.** Specify the collection to check
 mongodb_sampletime               | **Optional.** Time used to sample number of pages faults
 
-### <a id="plugins-contrib-command-elasticsearch"></a> elasticsearch
+#### <a id="plugins-contrib-command-elasticsearch"></a> elasticsearch
 
 An [ElasticSearch](https://www.elastic.co/products/elasticsearch) availability
 and performance monitoring plugin available for download at [GitHub](https://github.com/anchor/nagios-plugin-elasticsearch).
@@ -1617,7 +1628,7 @@ elasticsearch_port           | **Optional.** TCP port to probe.  The ElasticSear
 elasticsearch_prefix         | **Optional.** Optional prefix (e.g. 'es') for the ElasticSearch API. Defaults to ''.
 elasticsearch_yellowcritical | **Optional.** Instead of issuing a 'warning' for a yellow cluster state, issue a 'critical' alert. Defaults to false.
 
-### <a id="plugins-contrib-command-redis"></a> redis
+#### <a id="plugins-contrib-command-redis"></a> redis
 
 The plugin `redis` can measure response time, hitrate, memory utilization, check replication sync and more. It can also test data in a specified key (if necessary doing average or sum on range).
 It is provided by `William Leibzon` at [https://github.com](https://github.com/willixix/naglio-plugins/blob/master/check_redis.pl).
@@ -1645,11 +1656,43 @@ redis_memory_utilization | **Optional.** This calculates percent of total memory
 redis_total_memory       | **Optional.** Amount of memory on a system for memory utilization calculation. Use system memory or max_memory setting of redis.
 redis_replication_delay  | **Optional.** Allows to set threshold on replication delay info.
 
-## <a id="plugins-contrib-ipmi"></a> IPMI Devices
+
+### <a id="plugins-contrib-hardware"></a> Hardware
+
+This category includes all plugins for various hardware checks.
+
+#### <a id="plugins-contrib-command-hpasm"></a> hpasm
+
+The plugin [check_hpasm](https://labs.consol.de/de/nagios/check_hpasm/index.html) is a plugin to monitor HP hardware through the HP Insight Agent via SNMP.
+
+Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters):
+
+Name                           | Description
+--------------------------------|-----------------------------------------------------------------------
+hpasm_hostname                 | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise.
+hpasm_community                        | **Optional.** SNMP community of the server (SNMP v1/2 only).
+hpasm_protocol                 | **Optional.** The SNMP protocol to use (default: 2c, other possibilities: 1,3).
+hpasm_port                     | **Optional.** The SNMP port to use (default: 161).
+hpasm_blacklist                        | **Optional.** Blacklist some (missing/failed) components.
+hpasm_ignore-dimms             | **Optional.** Ignore "N/A"-DIMM status on misc. servers (e.g. older DL320).
+hpasm_ignore-fan-redundancy    | **Optional.** Ignore missing redundancy partners.
+hpasm_customthresholds         | **Optional.** Use custom thresholds for certain temperatures.
+hpasm_eventrange               | **Optional.** Period of time before critical IML events respecively become warnings or vanish. A range is descibed as a number and a unit (s, m, h, d), e.g. --eventrange 1h/20m.
+hpasm_perfdata                 | **Optional.** Output performance data. If your performance data string becomes too long and is truncated by Nagios, then you can use --perfdata=short instead. This will output temperature tags without location information.
+hpasm_username                 | **Optional.** The securityName for the USM security model (SNMPv3 only).
+hpasm_authpassword             | **Optional.** The authentication password for SNMPv3.
+hpasm_authprotocol             | **Optional.** The authentication protocol for SNMPv3 (md5|sha).
+hpasm_privpassword             | **Optional.** The password for authPriv security level.
+hpasm_privprotocol             | **Optional.** The private protocol for SNMPv3 (des|aes|aes128|3des|3desde).
+hpasm_servertype               | **Optional.** The type of the server: proliant (default) or bladesystem.
+hpasm_eval-nics                        | **Optional.** Check network interfaces (and groups). Try it and report me whyt you think about it. I need to build up some know how on this subject. If get an error and you think, it is not justified for your configuration, please tell me about it. (alwasy send the output of "snmpwalk -On .... 1.3.6.1.4.1.232" and a description how you setup your nics and why it is correct opposed to the plugins error message.
+
+
+### <a id="plugins-contrib-ipmi"></a> IPMI Devices
 
 This category includes all plugins for IPMI devices.
 
-### <a id="plugins-contrib-command-ipmi-sensor"></a> ipmi-sensor
+#### <a id="plugins-contrib-command-ipmi-sensor"></a> ipmi-sensor
 
 With the plugin `ipmi-sensor` provided by <a href="https://www.thomas-krenn.com/">Thomas-Krenn.AG</a> you can monitor sensor data for IPMI devices. See https://www.thomas-krenn.com/en/wiki/IPMI_Sensor_Monitoring_Plugin for installation and configuration instructions.
 
@@ -1671,11 +1714,11 @@ ipmi_number_of_active_fans       | **Optional.** Number of fans that should be a
 ipmi_show_fru                    | **Optional.** Print the product serial number if it is available in the IPMI FRU data.
 ipmi_no_sel_checking             | **Optional.** Turn off system event log checking via ipmi-sel.
 
-## <a id="plugins-contrib-network-components"></a> Network Components
+### <a id="plugins-contrib-network-components"></a> Network Components
 
 This category includes all plugins for various network components like routers, switches and firewalls.
 
-### <a id="plugins-contrib-command-interfacetable"></a> interfacetable
+#### <a id="plugins-contrib-command-interfacetable"></a> interfacetable
 
 The plugin `interfacetable` generates a html page containing information about the monitored node and all of its interfaces. The actively developed and maintained version is `interfacetable_v3t` provided by `Yannick Charton` on [http://www.tontonitch.com](http://www.tontonitch.com/tiki/tiki-index.php?page=Nagios+plugins+-+interfacetable_v3t) or [https://github.com](https://github.com/Tontonitch/interfacetable_v3t).
 
@@ -1743,7 +1786,7 @@ interfacetable_defaulttablesorting  | **Optional.** Default table sorting can be
 interfacetable_tablesplit           | **Optional.** Generate multiple interface tables, one per interface type. Defaults to false.
 interfacetable_notype               | **Optional.** Remove the interface type for each interface. Defaults to false.
 
-### <a id="plugins-contrib-command-iftraffic"></a> iftraffic
+#### <a id="plugins-contrib-command-iftraffic"></a> iftraffic
 
 The plugin [check_iftraffic](https://exchange.icinga.org/exchange/iftraffic)
 checks the utilization of a given interface name using the SNMP protocol.
@@ -1761,7 +1804,7 @@ iftraffic_warn            | **Optional.** Percent of bandwidth usage necessary to result i
 iftraffic_crit         | **Optional.** Percent of bandwidth usage necessary to result in critical status (defaults to `98%`).
 iftraffic_max_counter  | **Optional.** Maximum counter value of net devices in kilo/mega/giga/bytes.
 
-### <a id="plugins-contrib-command-interfaces"></a> interfaces
+#### <a id="plugins-contrib-command-interfaces"></a> interfaces
 
 The plugin [check_interfaces](https://www.netways.org/projects/check-interfaces)
 Check interfaces and utilization.
@@ -1793,7 +1836,7 @@ interfaces_match_aliases  | **Optional.** Also match against aliases (Option --a
 interfaces_timeout        | **Optional.** Sets the SNMP timeout (in ms).
 interfaces_sleep          | **Optional.** Sleep between every SNMP query (in ms).
 
-### <a id="plugins-contrib-command-nwc_health"></a> nwc_health
+#### <a id="plugins-contrib-command-nwc_health"></a> nwc_health
 
 The plugin [check_nwc_health](https://labs.consol.de/de/nagios/check_nwc_health/index.html)
 Check switches, router, there interfaces and utilization.
@@ -1844,11 +1887,11 @@ nwc_health_offline              | **Optional.** The maximum number of seconds since the last
 nwc_health_multiline           | **Optional.** Multiline output
 
 
-## <a id="plugins-contrib-web"></a> Web
+### <a id="plugins-contrib-web"></a> Web
 
 This category includes all plugins for web-based checks.
 
-### <a id="plugin-check-command-webinject"></a> webinject
+#### <a id="plugin-check-command-webinject"></a> webinject
 
 Check command object for the [check_webinject](http://http://www.webinject.org/manual.html) plugin.
 
@@ -1863,7 +1906,7 @@ webinject_timeout       | **Optional.** The value [given in seconds] will be com
 webinject_report_type   | **Optional.** This setting is used to enable output formatting that is compatible for use with specific external programs. The available values you can set this to are: nagios, mrtg, external and standard.
 webinject_testcase_file | **Optional.** When you launch WebInject in console mode, you can optionally supply an argument for a testcase file to run. It will look for this file in the directory that webinject.pl resides in. If no filename is passed from the command line, it will look in config.xml for testcasefile declarations. If no files are specified, it will look for a default file named 'testcases.xml' in the current [webinject] directory. If none of these are found, the engine will stop and give you an error.
 
-### <a id="plugin-check-command-jmx4perl"></a> jmx4perl
+#### <a id="plugin-check-command-jmx4perl"></a> jmx4perl
 
 The plugin `jmx4perl` utilizes the api provided by the jolokia web application to query java message beans on an application server. It is part of the perl module provided by Roland HuĂŸ on [cpan](http://search.cpan.org/~roland/jmx4perl/) including a detailed [documentation](http://search.cpan.org/~roland/jmx4perl/scripts/check_jmx4perl) containing installation tutorial, security advices und usage examples.
 
@@ -1904,7 +1947,7 @@ jmx4perl_unknown_is_critical | **Optional.** Map UNKNOWN errors to errors with a
 jmx4perl_timeout             | **Optional.** Seconds before plugin times out. Defaults to "15".
 
 
-### <a id="plugins-contrib-squid"></a> squid
+#### <a id="plugins-contrib-squid"></a> squid
 
 Plugin for monitoring [Squid](https://exchange.icinga.org/exchange/check_squid).
 
@@ -1923,7 +1966,7 @@ squid_client              | **Optional.** Path of squidclient (default: /usr/bin/squidclient
 squid_timeout          | **Optional.** Seconds before plugin times out (default: 15).
 
 
-### <a id="plugins-contrib-nginx_status"></a> nginx_status
+#### <a id="plugins-contrib-nginx_status"></a> nginx_status
 
 Plugin for monitoring [nginx_status](https://github.com/regilero/check_nginx_status).
 
@@ -1945,11 +1988,11 @@ nginx_status_timeout            | **Optional.** timeout in seconds
 nginx_status_warn              | **Optional.** Warning threshold (number of active connections, ReqPerSec or ConnPerSec that will cause a WARNING) like '10000,100,200'.
 nginx_status_critical          | **Optional.** Critical threshold (number of active connections, ReqPerSec or ConnPerSec that will cause a CRITICAL) like '20000,200,300'.
 
-## <a id="plugins-contrib-operating-system"></a> Operating System
+### <a id="plugins-contrib-operating-system"></a> Operating System
 
 In this category you can find plugins for gathering information about your operating system or the system beneath like memory usage.
 
-### <a id="plugins-contrib-command-mem"></a> mem
+#### <a id="plugins-contrib-command-mem"></a> mem
 
 The plugin `mem` is used for gathering information about memory usage on linux and unix hosts. It is able to count cache memory as free when comparing it to the thresholds. It is provided by `Justin Ellison` on [https://github.com](https://github.com/justintime/nagios-plugins). For more details see the developers blog [http://sysadminsjourney.com](http://sysadminsjourney.com/content/2009/06/04/new-and-improved-checkmempl-nagios-plugin).
 
@@ -1963,14 +2006,14 @@ mem_cache    | **Optional.** If set to true plugin will count cache as free memo
 mem_warning  | **Required.** Specifiy the warning threshold as number interpreted as percent.
 mem_critical | **Required.** Specifiy the critical threshold as number interpreted as percent.
 
-### <a id="plugin-contrib-command-running-kernel"></a> running_kernel
+#### <a id="plugin-contrib-command-running-kernel"></a> running_kernel
 
 Check command object for the `check_running_kernel` plugin
 provided by the `nagios-plugins-contrib` package on Debian.
 
 The `running_kernel` check command does not support any vars.
 
-### <a id="plugin-contrib-command-yum"></a> yum
+#### <a id="plugin-contrib-command-yum"></a> yum
 
 The plugin `yum` is used to check the YUM package management system for package updates. To differentiate between security and normal updates it requires the YUM security plugin installed. It is provied by `Christoph Anton Mitterer` on [https://github.com](https://github.com/calestyo/check_yum).
 
@@ -1988,11 +2031,11 @@ yum_disablerepo         | **Optional.** Explicitly disables a reposity when call
 yum_installroot         | **Optional.** Specifies another installation root directory (for example a chroot).
 yum_timeout             | **Optional.** Set a timeout in seconds after which the plugin will exit (defaults to 55 seconds).
 
-## <a id="plugins-contrib-virtualization"></a> Virtualization
+### <a id="plugins-contrib-virtualization"></a> Virtualization
 
 This category includes all plugins for various virtualization technologies.
 
-### <a id="plugins-contrib-command-esxi-hardware"></a> esxi_hardware
+#### <a id="plugins-contrib-command-esxi-hardware"></a> esxi_hardware
 
 The plugin `esxi_hardware` is a plugin to monitor hardware of ESXi servers through the vmware api and cim service. It is provided by `Claudio Kuenzler` on [http://www.claudiokuenzler.com](http://www.claudiokuenzler.com/nagios-plugins/check_esxi_hardware.php). For instruction on creating the required local user and workarounds for some hardware types have a look on his homepage.
 
@@ -2013,11 +2056,11 @@ esxi_hardware_nocurrent | **Optional.** Do not collect current performance data,
 esxi_hardware_notemp    | **Optional.** Do not collect temperature performance data, when **esxi_hardware_perfdata** is set to true. Defaults to false.
 esxi_hardware_nofan     | **Optional.** Do not collect fan performance data, when **esxi_hardware_perfdata** is set to true. Defaults to false.
 
-# <a id="plugins-contrib-vmware"></a> VMware
+### <a id="plugins-contrib-vmware"></a> VMware
 
 Check commands for the [check_vmware_esx](https://github.com/BaldMansMojo/check_vmware_esx) plugin.
 
-## <a id="plugins-contrib-vmware-esx-dc-volumes"></a> vmware-esx-dc-volumes
+#### <a id="plugins-contrib-vmware-esx-dc-volumes"></a> vmware-esx-dc-volumes
 
 Check command object for the `check_vmware_esx` plugin. Shows all datastore volumes info.
 
@@ -2049,7 +2092,7 @@ vmware_warn             | **Optional.** The warning threshold for volumes. Defau
 vmware_crit             | **Optional.** The critical threshold for volumes. Defaults to "90%".
 
 
-## <a id="plugins-contrib-vmware-esx-dc-runtime-info"></a> vmware-esx-dc-runtime-info
+#### <a id="plugins-contrib-vmware-esx-dc-runtime-info"></a> vmware-esx-dc-runtime-info
 
 Check command object for the `check_vmware_esx` plugin. Shows all runtime info for the datacenter/Vcenter.
 
@@ -2071,7 +2114,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-dc-runtime-listvms"></a> vmware-esx-dc-runtime-listvms
+#### <a id="plugins-contrib-vmware-esx-dc-runtime-listvms"></a> vmware-esx-dc-runtime-listvms
 
 Check command object for the `check_vmware_esx` plugin. List of vmware machines and their power state. BEWARE!! In larger environments systems can cause trouble displaying the informations needed due to the mass of data. Use **vmware_alertonly** to avoid this.
 
@@ -2098,7 +2141,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-dc-runtime-listhost"></a> vmware-esx-dc-runtime-listhost
+#### <a id="plugins-contrib-vmware-esx-dc-runtime-listhost"></a> vmware-esx-dc-runtime-listhost
 
 Check command object for the `check_vmware_esx` plugin. List of VMware ESX hosts and their power state.
 
@@ -2125,7 +2168,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-dc-runtime-listcluster"></a> vmware-esx-dc-runtime-listcluster
+#### <a id="plugins-contrib-vmware-esx-dc-runtime-listcluster"></a> vmware-esx-dc-runtime-listcluster
 
 Check command object for the `check_vmware_esx` plugin. List of VMware clusters and their states.
 
@@ -2152,7 +2195,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-dc-runtime-issues"></a> vmware-esx-dc-runtime-issues
+#### <a id="plugins-contrib-vmware-esx-dc-runtime-issues"></a> vmware-esx-dc-runtime-issues
 
 Check command object for the `check_vmware_esx` plugin. All issues for the host.
 
@@ -2178,7 +2221,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-dc-runtime-status"></a> vmware-esx-dc-runtime-status
+#### <a id="plugins-contrib-vmware-esx-dc-runtime-status"></a> vmware-esx-dc-runtime-status
 
 Check command object for the `check_vmware_esx` plugin. Overall object status (gray/green/red/yellow).
 
@@ -2200,7 +2243,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-dc-runtime-tools"></a> vmware-esx-dc-runtime-tools
+#### <a id="plugins-contrib-vmware-esx-dc-runtime-tools"></a> vmware-esx-dc-runtime-tools
 
 Check command object for the `check_vmware_esx` plugin. Vmware Tools status.
 
@@ -2229,7 +2272,7 @@ vmware_multiline        | **Optional.** Multiline output in overview. This mean
 vmware_openvmtools     | **Optional** Prevent CRITICAL state for installed and running Open VM Tools.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-check"></a> vmware-esx-soap-host-check
+#### <a id="plugins-contrib-vmware-esx-soap-host-check"></a> vmware-esx-soap-host-check
 
 Check command object for the `check_vmware_esx` plugin. Simple check to verify a successfull connection to VMware SOAP API.
 
@@ -2251,7 +2294,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-uptime"></a> vmware-esx-soap-host-uptime
+#### <a id="plugins-contrib-vmware-esx-soap-host-uptime"></a> vmware-esx-soap-host-uptime
 
 Check command object for the `check_vmware_esx` plugin. Displays uptime of the VMware host.
 
@@ -2273,7 +2316,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-cpu"></a> vmware-esx-soap-host-cpu
+#### <a id="plugins-contrib-vmware-esx-soap-host-cpu"></a> vmware-esx-soap-host-cpu
 
 Check command object for the `check_vmware_esx` plugin. CPU usage in percentage.
 
@@ -2297,7 +2340,7 @@ vmware_warn             | **Optional.** The warning threshold in percent. Defaul
 vmware_crit             | **Optional.** The critical threshold in percent. Defaults to "90%".
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-cpu-ready"></a> vmware-esx-soap-host-cpu-ready
+#### <a id="plugins-contrib-vmware-esx-soap-host-cpu-ready"></a> vmware-esx-soap-host-cpu-ready
 
 Check command object for the `check_vmware_esx` plugin. Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU. CPU ready time is dependent on the number of virtual machines on the host and their CPU loads. High or growing ready time can be a hint CPU bottlenecks.
 
@@ -2319,7 +2362,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-cpu-wait"></a> vmware-esx-soap-host-cpu-wait
+#### <a id="plugins-contrib-vmware-esx-soap-host-cpu-wait"></a> vmware-esx-soap-host-cpu-wait
 
 Check command object for the `check_vmware_esx` plugin. CPU time spent in wait state. The wait total includes time spent the CPU idle, CPU swap wait, and CPU I/O wait states. High or growing wait time can be a hint I/O bottlenecks.
 
@@ -2341,7 +2384,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-cpu-usage"></a> vmware-esx-soap-host-cpu-usage
+#### <a id="plugins-contrib-vmware-esx-soap-host-cpu-usage"></a> vmware-esx-soap-host-cpu-usage
 
 Check command object for the `check_vmware_esx` plugin. Actively used CPU of the host, as a percentage of the total available CPU. Active CPU is approximately equal to the ratio of the used CPU to the available CPU.
 
@@ -2365,7 +2408,7 @@ vmware_warn             | **Optional.** The warning threshold in percent. Defaul
 vmware_crit             | **Optional.** The critical threshold in percent. Defaults to "90%".
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-mem"></a> vmware-esx-soap-host-mem
+#### <a id="plugins-contrib-vmware-esx-soap-host-mem"></a> vmware-esx-soap-host-mem
 
 Check command object for the `check_vmware_esx` plugin. All mem info(except overall and no thresholds).
 
@@ -2387,7 +2430,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-mem-usage"></a> vmware-esx-soap-host-mem-usage
+#### <a id="plugins-contrib-vmware-esx-soap-host-mem-usage"></a> vmware-esx-soap-host-mem-usage
 
 Check command object for the `check_vmware_esx` plugin. Average mem usage in percentage.
 
@@ -2411,7 +2454,7 @@ vmware_warn             | **Optional.** The warning threshold in percent. Defaul
 vmware_crit             | **Optional.** The critical threshold in percent. Defaults to "90%".
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-mem-consumed"></a> vmware-esx-soap-host-mem-consumed
+#### <a id="plugins-contrib-vmware-esx-soap-host-mem-consumed"></a> vmware-esx-soap-host-mem-consumed
 
 Check command object for the `check_vmware_esx` plugin. Amount of machine memory used on the host. Consumed memory includes Includes memory used by the Service Console, the VMkernel vSphere services, plus the total consumed metrics for all running virtual machines in MB.
 
@@ -2435,7 +2478,7 @@ vmware_warn             | **Optional.** The warning threshold in percent. No val
 vmware_crit             | **Optional.** The critical threshold in percent. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-mem-swapused"></a> vmware-esx-soap-host-mem-swapused
+#### <a id="plugins-contrib-vmware-esx-soap-host-mem-swapused"></a> vmware-esx-soap-host-mem-swapused
 
 Check command object for the `check_vmware_esx` plugin. Amount of memory that is used by swap. Sum of memory swapped of all powered on VMs and vSphere services on the host in MB. In case of an error all VMs with their swap used will be displayed.
 
@@ -2460,7 +2503,7 @@ vmware_crit             | **Optional.** The critical threshold in percent. No va
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-mem-overhead"></a> vmware-esx-soap-host-mem-overhead
+#### <a id="plugins-contrib-vmware-esx-soap-host-mem-overhead"></a> vmware-esx-soap-host-mem-overhead
 
 Check command object for the `check_vmware_esx` plugin. Additional mem used by VM Server in MB.
 
@@ -2484,7 +2527,7 @@ vmware_warn             | **Optional.** The warning threshold in percent. No val
 vmware_crit             | **Optional.** The critical threshold in percent. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-mem-memctl"></a> vmware-esx-soap-host-mem-memctl
+#### <a id="plugins-contrib-vmware-esx-soap-host-mem-memctl"></a> vmware-esx-soap-host-mem-memctl
 
 Check command object for the `check_vmware_esx` plugin. The sum of all vmmemctl values in MB for all powered-on virtual machines, plus vSphere services on the host. If the balloon target value is greater than the balloon value, the VMkernel inflates the balloon, causing more virtual machine memory to be reclaimed. If the balloon target value is less than the balloon value, the VMkernel deflates the balloon, which allows the virtual machine to consume additional memory if needed.used by VM memory control driver. In case of an error all VMs with their vmmemctl values will be displayed.
 
@@ -2509,7 +2552,7 @@ vmware_crit             | **Optional.** The critical threshold in percent. No va
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-net"></a> vmware-esx-soap-host-net
+#### <a id="plugins-contrib-vmware-esx-soap-host-net"></a> vmware-esx-soap-host-net
 
 Check command object for the `check_vmware_esx` plugin. Shows net info.
 
@@ -2533,7 +2576,7 @@ vmware_exclude          | **Optional.** Blacklist NICs. No value defined as defa
 vmware_isregexp         | **Optional.** Treat blacklist expression as regexp.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-net-usage"></a> vmware-esx-soap-host-net-usage
+#### <a id="plugins-contrib-vmware-esx-soap-host-net-usage"></a> vmware-esx-soap-host-net-usage
 
 Check command object for the `check_vmware_esx` plugin. Overall network usage in KBps(Kilobytes per Second).
 
@@ -2557,7 +2600,7 @@ vmware_warn             | **Optional.** The warning threshold in KBps(Kilobytes
 vmware_crit             | **Optional.** The critical threshold in KBps(Kilobytes per Second). No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-net-receive"></a> vmware-esx-soap-host-net-receive
+#### <a id="plugins-contrib-vmware-esx-soap-host-net-receive"></a> vmware-esx-soap-host-net-receive
 
 Check command object for the `check_vmware_esx` plugin. Data receive in KBps(Kilobytes per Second).
 
@@ -2581,7 +2624,7 @@ vmware_warn             | **Optional.** The warning threshold in KBps(Kilobytes
 vmware_crit             | **Optional.** The critical threshold in KBps(Kilobytes per Second). No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-net-send"></a> vmware-esx-soap-host-net-send
+#### <a id="plugins-contrib-vmware-esx-soap-host-net-send"></a> vmware-esx-soap-host-net-send
 
 Check command object for the `check_vmware_esx` plugin. Data send in KBps(Kilobytes per Second).
 
@@ -2605,7 +2648,7 @@ vmware_warn             | **Optional.** The warning threshold in KBps(Kilobytes
 vmware_crit             | **Optional.** The critical threshold in KBps(Kilobytes per Second). No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-net-nic"></a> vmware-esx-soap-host-net-nic
+#### <a id="plugins-contrib-vmware-esx-soap-host-net-nic"></a> vmware-esx-soap-host-net-nic
 
 Check command object for the `check_vmware_esx` plugin. Check all active NICs.
 
@@ -2629,7 +2672,7 @@ vmware_exclude          | **Optional.** Blacklist NICs. No value defined as defa
 vmware_isregexp         | **Optional.** Treat blacklist expression as regexp.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-volumes"></a> vmware-esx-soap-host-volumes
+#### <a id="plugins-contrib-vmware-esx-soap-host-volumes"></a> vmware-esx-soap-host-volumes
 
 Check command object for the `check_vmware_esx` plugin. Shows all datastore volumes info.
 
@@ -2661,7 +2704,7 @@ vmware_crit             | **Optional.** The critical threshold for volumes. Defa
 vmware_spaceleft        | **Optional.** This has to be used in conjunction with thresholds as mentioned above.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io"></a> vmware-esx-soap-host-io
+#### <a id="plugins-contrib-vmware-esx-soap-host-io"></a> vmware-esx-soap-host-io
 
 Check command object for the `check_vmware_esx` plugin. Shows all disk io info. Without subselect no thresholds can be given. All I/O values are aggregated from historical intervals over the past 24 hours with a 5 minute sample rate.
 
@@ -2683,7 +2726,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-aborted"></a> vmware-esx-soap-host-io-aborted
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-aborted"></a> vmware-esx-soap-host-io-aborted
 
 Check command object for the `check_vmware_esx` plugin. Number of aborted SCSI commands.
 
@@ -2707,7 +2750,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-resets"></a> vmware-esx-soap-host-io-resets
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-resets"></a> vmware-esx-soap-host-io-resets
 
 Check command object for the `check_vmware_esx` plugin. Number of SCSI bus resets.
 
@@ -2731,7 +2774,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-read"></a> vmware-esx-soap-host-io-read
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-read"></a> vmware-esx-soap-host-io-read
 
 Check command object for the `check_vmware_esx` plugin. Average number of kilobytes read from the disk each second.
 
@@ -2755,7 +2798,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-read-latency"></a> vmware-esx-soap-host-io-read-latency
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-read-latency"></a> vmware-esx-soap-host-io-read-latency
 
 Check command object for the `check_vmware_esx` plugin. Average amount of time (ms) to process a SCSI read command issued from the Guest OS to the virtual machine.
 
@@ -2779,7 +2822,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-write"></a> vmware-esx-soap-host-io-write
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-write"></a> vmware-esx-soap-host-io-write
 
 Check command object for the `check_vmware_esx` plugin. Average number of kilobytes written to disk each second.
 
@@ -2803,7 +2846,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-write-latency"></a> vmware-esx-soap-host-io-write-latency
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-write-latency"></a> vmware-esx-soap-host-io-write-latency
 
 Check command object for the `check_vmware_esx` plugin. Average amount of time (ms) taken to process a SCSI write command issued by the Guest OS to the virtual machine.
 
@@ -2827,7 +2870,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-usage"></a> vmware-esx-soap-host-io-usage
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-usage"></a> vmware-esx-soap-host-io-usage
 
 Check command object for the `check_vmware_esx` plugin. Aggregated disk I/O rate. For hosts, this metric includes the rates for all virtual machines running on the host.
 
@@ -2851,7 +2894,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-kernel-latency"></a> vmware-esx-soap-host-io-kernel-latency
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-kernel-latency"></a> vmware-esx-soap-host-io-kernel-latency
 
 Check command object for the `check_vmware_esx` plugin. Average amount of time (ms) spent by VMkernel processing each SCSI command.
 
@@ -2875,7 +2918,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-device-latency"></a> vmware-esx-soap-host-io-device-latency
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-device-latency"></a> vmware-esx-soap-host-io-device-latency
 
 Check command object for the `check_vmware_esx` plugin. Average amount of time (ms) to complete a SCSI command from the physical device.
 
@@ -2899,7 +2942,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-queue-latency"></a> vmware-esx-soap-host-io-queue-latency
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-queue-latency"></a> vmware-esx-soap-host-io-queue-latency
 
 Check command object for the `check_vmware_esx` plugin. Average amount of time (ms) spent in the VMkernel queue.
 
@@ -2923,7 +2966,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-io-total-latency"></a> vmware-esx-soap-host-io-total-latency
+#### <a id="plugins-contrib-vmware-esx-soap-host-io-total-latency"></a> vmware-esx-soap-host-io-total-latency
 
 Check command object for the `check_vmware_esx` plugin. Average amount of time (ms) taken during the collection interval to process a SCSI command issued by the guest OS to the virtual machine. The sum of kernelWriteLatency and deviceWriteLatency.
 
@@ -2947,7 +2990,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-media"></a> vmware-esx-soap-host-media
+#### <a id="plugins-contrib-vmware-esx-soap-host-media"></a> vmware-esx-soap-host-media
 
 Check command object for the `check_vmware_esx` plugin. List vm's with attached host mounted media like cd,dvd or floppy drives. This is important for monitoring because a virtual machine with a mount cd or dvd drive can not be moved to another host.
 
@@ -2973,7 +3016,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-service"></a> vmware-esx-soap-host-service
+#### <a id="plugins-contrib-vmware-esx-soap-host-service"></a> vmware-esx-soap-host-service
 
 Check command object for the `check_vmware_esx` plugin. Shows host service info.
 
@@ -2999,7 +3042,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime"></a> vmware-esx-soap-host-runtime
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime"></a> vmware-esx-soap-host-runtime
 
 Check command object for the `check_vmware_esx` plugin. Shows runtime info: VMs, overall status, connection state, health, storagehealth, temperature and sensor are represented as one value and without thresholds.
 
@@ -3021,7 +3064,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-con"></a> vmware-esx-soap-host-runtime-con
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-con"></a> vmware-esx-soap-host-runtime-con
 
 Check command object for the `check_vmware_esx` plugin. Shows connection state.
 
@@ -3043,7 +3086,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-listvms"></a> vmware-esx-soap-host-runtime-listvms
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-listvms"></a> vmware-esx-soap-host-runtime-listvms
 
 Check command object for the `check_vmware_esx` plugin. List of VMware machines and their status.
 
@@ -3069,7 +3112,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-status"></a> vmware-esx-soap-host-runtime-status
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-status"></a> vmware-esx-soap-host-runtime-status
 
 Check command object for the `check_vmware_esx` plugin. Overall object status (gray/green/red/yellow).
 
@@ -3091,7 +3134,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-health"></a> vmware-esx-soap-host-runtime-health
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-health"></a> vmware-esx-soap-host-runtime-health
 
 Check command object for the `check_vmware_esx` plugin. Checks cpu/storage/memory/sensor status.
 
@@ -3116,7 +3159,7 @@ vmware_include          | **Optional.** Whitelist status name. No value defined
 vmware_isregexp         | **Optional.** Treat blacklist and whitelist expressions as regexp.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-health-listsensors"></a> vmware-esx-soap-host-runtime-health-listsensors
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-health-listsensors"></a> vmware-esx-soap-host-runtime-health-listsensors
 
 Check command object for the `check_vmware_esx` plugin. List all available sensors(use for listing purpose only).
 
@@ -3141,7 +3184,7 @@ vmware_include          | **Optional.** Whitelist status name. No value defined
 vmware_isregexp         | **Optional.** Treat blacklist and whitelist expressions as regexp.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-health-nostoragestatus"></a> vmware-esx-soap-host-runtime-health-nostoragestatus
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-health-nostoragestatus"></a> vmware-esx-soap-host-runtime-health-nostoragestatus
 
 Check command object for the `check_vmware_esx` plugin. This is to avoid a double alarm if you use **vmware-esx-soap-host-runtime-health** and **vmware-esx-soap-host-runtime-storagehealth**.
 
@@ -3166,7 +3209,7 @@ vmware_include          | **Optional.** Whitelist status name. No value defined
 vmware_isregexp         | **Optional.** Treat blacklist and whitelist expressions as regexp.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-storagehealth"></a> vmware-esx-soap-host-runtime-storagehealth
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-storagehealth"></a> vmware-esx-soap-host-runtime-storagehealth
 
 Check command object for the `check_vmware_esx` plugin. Local storage status check.
 
@@ -3192,7 +3235,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-temp"></a> vmware-esx-soap-host-runtime-temp
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-temp"></a> vmware-esx-soap-host-runtime-temp
 
 Check command object for the `check_vmware_esx` plugin. Lists all temperature sensors.
 
@@ -3218,7 +3261,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-runtime-issues"></a> vmware-esx-soap-host-runtime-issues
+#### <a id="plugins-contrib-vmware-esx-soap-host-runtime-issues"></a> vmware-esx-soap-host-runtime-issues
 
 Check command object for the `check_vmware_esx` plugin. Lists all configuration issues for the host.
 
@@ -3244,7 +3287,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-storage"></a> vmware-esx-soap-host-storage
+#### <a id="plugins-contrib-vmware-esx-soap-host-storage"></a> vmware-esx-soap-host-storage
 
 Check command object for the `check_vmware_esx` plugin. Shows Host storage info.
 
@@ -3269,7 +3312,7 @@ vmware_include          | **Optional.** Whitelist adapters, luns and paths. No v
 vmware_isregexp         | **Optional.** Treat blacklist and whitelist expressions as regexp.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-storage-adapter"></a> vmware-esx-soap-host-storage-adapter
+#### <a id="plugins-contrib-vmware-esx-soap-host-storage-adapter"></a> vmware-esx-soap-host-storage-adapter
 
 Check command object for the `check_vmware_esx` plugin. List host bus adapters.
 
@@ -3295,7 +3338,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-storage-lun"></a> vmware-esx-soap-host-storage-lun
+#### <a id="plugins-contrib-vmware-esx-soap-host-storage-lun"></a> vmware-esx-soap-host-storage-lun
 
 Check command object for the `check_vmware_esx` plugin. List SCSI logical units. The listing will include: LUN, canonical name of the disc, all of displayed name which is not part of the canonical name and status.
 
@@ -3321,7 +3364,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-host-storage-path"></a> vmware-esx-soap-host-storage-path
+#### <a id="plugins-contrib-vmware-esx-soap-host-storage-path"></a> vmware-esx-soap-host-storage-path
 
 Check command object for the `check_vmware_esx` plugin. List multipaths and the associated paths.
 
@@ -3348,7 +3391,7 @@ vmware_isregexp         | **Optional.** Treat blacklist and whitelist expression
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-cpu"></a> vmware-esx-soap-vm-cpu
+#### <a id="plugins-contrib-vmware-esx-soap-vm-cpu"></a> vmware-esx-soap-vm-cpu
 
 Check command object for the `check_vmware_esx` plugin. Shows all CPU usage info.
 
@@ -3373,7 +3416,7 @@ vmware_authfile         | **Optional.** Use auth file instead username/password
 
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-cpu-ready"></a> vmware-esx-soap-vm-cpu-ready
+#### <a id="plugins-contrib-vmware-esx-soap-vm-cpu-ready"></a> vmware-esx-soap-vm-cpu-ready
 
 Check command object for the `check_vmware_esx` plugin. Percentage of time that the virtual machine was ready, but could not get scheduled to run on the physical CPU.
 
@@ -3399,7 +3442,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-cpu-wait"></a> vmware-esx-soap-vm-cpu-wait
+#### <a id="plugins-contrib-vmware-esx-soap-vm-cpu-wait"></a> vmware-esx-soap-vm-cpu-wait
 
 Check command object for the `check_vmware_esx` plugin. CPU time spent in wait state. The wait total includes time spent the CPU idle, CPU swap wait, and CPU I/O wait states. High or growing wait time can be a hint I/O bottlenecks.
 
@@ -3425,7 +3468,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-cpu-usage"></a> vmware-esx-soap-vm-cpu-usage
+#### <a id="plugins-contrib-vmware-esx-soap-vm-cpu-usage"></a> vmware-esx-soap-vm-cpu-usage
 
 Check command object for the `check_vmware_esx` plugin. Amount of actively used virtual CPU, as a percentage of total available CPU. This is the host's view of the CPU usage, not the guest operating system view. It is the average CPU utilization over all available virtual CPUs in the virtual machine.
 
@@ -3451,7 +3494,7 @@ vmware_warn             | **Optional.** Warning threshold in percent. Defaults t
 vmware_crit             | **Optional.** Critical threshold in percent. Defaults to "90%".
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-mem"></a> vmware-esx-soap-vm-mem
+#### <a id="plugins-contrib-vmware-esx-soap-vm-mem"></a> vmware-esx-soap-vm-mem
 
 Check command object for the `check_vmware_esx` plugin. Shows all memory info, except overall.
 
@@ -3475,7 +3518,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-mem-usage"></a> vmware-esx-soap-vm-mem-usage
+#### <a id="plugins-contrib-vmware-esx-soap-vm-mem-usage"></a> vmware-esx-soap-vm-mem-usage
 
 Check command object for the `check_vmware_esx` plugin. Average mem usage in percentage of configured virtual machine "physical" memory.
 
@@ -3501,7 +3544,7 @@ vmware_warn             | **Optional.** Warning threshold in percent. Defaults t
 vmware_crit             | **Optional.** Critical threshold in percent. Defaults to "90%".
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-mem-consumed"></a> vmware-esx-soap-vm-mem-consumed
+#### <a id="plugins-contrib-vmware-esx-soap-vm-mem-consumed"></a> vmware-esx-soap-vm-mem-consumed
 
 Check command object for the `check_vmware_esx` plugin. Amount of guest physical memory in MB consumed by the virtual machine for guest memory. Consumed memory does not include overhead memory. It includes shared memory and memory that might be reserved, but not actually used. Use this metric for charge-back purposes.<br>
 **vm consumed memory = memory granted - memory saved**
@@ -3528,7 +3571,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-mem-memctl"></a> vmware-esx-soap-vm-mem-memctl
+#### <a id="plugins-contrib-vmware-esx-soap-vm-mem-memctl"></a> vmware-esx-soap-vm-mem-memctl
 
 Check command object for the `check_vmware_esx` plugin. Amount of guest physical memory that is currently reclaimed from the virtual machine through ballooning. This is the amount of guest physical memory that has been allocated and pinned by the balloon driver.
 
@@ -3555,7 +3598,7 @@ vmware_crit             | **Optional.** The critical threshold. No value defined
 
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-net"></a> vmware-esx-soap-vm-net
+#### <a id="plugins-contrib-vmware-esx-soap-vm-net"></a> vmware-esx-soap-vm-net
 
 Check command object for the `check_vmware_esx` plugin. Shows net info.
 
@@ -3579,7 +3622,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-net-usage"></a> vmware-esx-soap-vm-net-usage
+#### <a id="plugins-contrib-vmware-esx-soap-vm-net-usage"></a> vmware-esx-soap-vm-net-usage
 
 Check command object for the `check_vmware_esx` plugin. Overall network usage in KBps(Kilobytes per Second).
 
@@ -3605,7 +3648,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-net-receive"></a> vmware-esx-soap-vm-net-receive
+#### <a id="plugins-contrib-vmware-esx-soap-vm-net-receive"></a> vmware-esx-soap-vm-net-receive
 
 Check command object for the `check_vmware_esx` plugin. Receive in KBps(Kilobytes per Second).
 
@@ -3631,7 +3674,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-net-send"></a> vmware-esx-soap-vm-net-send
+#### <a id="plugins-contrib-vmware-esx-soap-vm-net-send"></a> vmware-esx-soap-vm-net-send
 
 Check command object for the `check_vmware_esx` plugin. Send in KBps(Kilobytes per Second).
 
@@ -3657,7 +3700,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-io"></a> vmware-esx-soap-vm-io
+#### <a id="plugins-contrib-vmware-esx-soap-vm-io"></a> vmware-esx-soap-vm-io
 
 Check command object for the `check_vmware_esx` plugin. SShows all disk io info. Without subselect no thresholds can be given. All I/O values are aggregated from historical intervals over the past 24 hours with a 5 minute sample rate.
 
@@ -3681,7 +3724,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-io-read"></a> vmware-esx-soap-vm-io-read
+#### <a id="plugins-contrib-vmware-esx-soap-vm-io-read"></a> vmware-esx-soap-vm-io-read
 
 Check command object for the `check_vmware_esx` plugin. Average number of kilobytes read from the disk each second.
 
@@ -3707,7 +3750,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-io-write"></a> vmware-esx-soap-vm-io-write
+#### <a id="plugins-contrib-vmware-esx-soap-vm-io-write"></a> vmware-esx-soap-vm-io-write
 
 Check command object for the `check_vmware_esx` plugin. Average number of kilobytes written to disk each second.
 
@@ -3733,7 +3776,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-io-usage"></a> vmware-esx-soap-vm-io-usage
+#### <a id="plugins-contrib-vmware-esx-soap-vm-io-usage"></a> vmware-esx-soap-vm-io-usage
 
 Check command object for the `check_vmware_esx` plugin. Aggregated disk I/O rate.
 
@@ -3759,7 +3802,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-runtime"></a> vmware-esx-soap-vm-runtime
+#### <a id="plugins-contrib-vmware-esx-soap-vm-runtime"></a> vmware-esx-soap-vm-runtime
 
 Check command object for the `check_vmware_esx` plugin. Shows virtual machine runtime info.
 
@@ -3783,7 +3826,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-runtime-con"></a> vmware-esx-soap-vm-runtime-con
+#### <a id="plugins-contrib-vmware-esx-soap-vm-runtime-con"></a> vmware-esx-soap-vm-runtime-con
 
 Check command object for the `check_vmware_esx` plugin. Shows the connection state.
 
@@ -3807,7 +3850,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-runtime-powerstate"></a> vmware-esx-soap-vm-runtime-powerstate
+#### <a id="plugins-contrib-vmware-esx-soap-vm-runtime-powerstate"></a> vmware-esx-soap-vm-runtime-powerstate
 
 Check command object for the `check_vmware_esx` plugin. Shows virtual machine power state: poweredOn, poweredOff or suspended.
 
@@ -3831,7 +3874,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-runtime-status"></a> vmware-esx-soap-vm-runtime-status
+#### <a id="plugins-contrib-vmware-esx-soap-vm-runtime-status"></a> vmware-esx-soap-vm-runtime-status
 
 Check command object for the `check_vmware_esx` plugin. Overall object status (gray/green/red/yellow).
 
@@ -3855,7 +3898,7 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-runtime-consoleconnections"></a> vmware-esx-soap-vm-runtime-consoleconnections
+#### <a id="plugins-contrib-vmware-esx-soap-vm-runtime-consoleconnections"></a> vmware-esx-soap-vm-runtime-consoleconnections
 
 Check command object for the `check_vmware_esx` plugin. Console connections to virtual machine.
 
@@ -3881,7 +3924,7 @@ vmware_warn             | **Optional.** The warning threshold. No value defined
 vmware_crit             | **Optional.** The critical threshold. No value defined as default.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-runtime-gueststate"></a> vmware-esx-soap-vm-runtime-gueststate
+#### <a id="plugins-contrib-vmware-esx-soap-vm-runtime-gueststate"></a> vmware-esx-soap-vm-runtime-gueststate
 
 Check command object for the `check_vmware_esx` plugin. Guest OS status. Needs VMware Tools installed and running.
 
@@ -3904,7 +3947,7 @@ vmware_username         | **Optional.** The username to connect to Host or vCent
 vmware_password         | **Optional.** The username's password. No value defined as default.
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-runtime-tools"></a> vmware-esx-soap-vm-runtime-tools
+#### <a id="plugins-contrib-vmware-esx-soap-vm-runtime-tools"></a> vmware-esx-soap-vm-runtime-tools
 
 Check command object for the `check_vmware_esx` plugin. Guest OS status. VMware tools  status.
 
@@ -3929,7 +3972,7 @@ vmware_authfile         | **Optional.** Use auth file instead username/password
 vmware_openvmtools     | **Optional** Prevent CRITICAL state for installed and running Open VM Tools.
 
 
-## <a id="plugins-contrib-vmware-esx-soap-vm-runtime-issues"></a> vmware-esx-soap-vm-runtime-issues
+#### <a id="plugins-contrib-vmware-esx-soap-vm-runtime-issues"></a> vmware-esx-soap-vm-runtime-issues
 
 Check command object for the `check_vmware_esx` plugin. All issues for the virtual machine.
 
@@ -3953,33 +3996,3 @@ vmware_password         | **Optional.** The username's password. No value define
 vmware_authfile         | **Optional.** Use auth file instead username/password to session connect. No effect if **vmware_username** and **vmware_password** are defined <br> **Autentication file content:** <br>  username=vmuser <br> password=p@ssw0rd
 vmware_multiline        | **Optional.** Multiline output in overview. This mean technically that a multiline output uses a HTML **\<br\>** for the GUI. No value defined as default.
 
-
-## <a id="plugins-contrib-hardware"></a> Hardware
-
-This category includes all plugins for various hardware checks.
-
-### <a id="plugins-contrib-command-hpasm"></a> hpasm
-
-The plugin [check_hpasm](https://labs.consol.de/de/nagios/check_hpasm/index.html) is a plugin to monitor HP hardware through the HP Insight Agent via SNMP.
-
-Custom attributes passed as [command parameters](3-monitoring-basics.md#command-passing-parameters):
-
-Name                           | Description
---------------------------------|-----------------------------------------------------------------------
-hpasm_hostname                 | **Optional.** The host's address. Defaults to "$address$" if the host's `address` attribute is set, "$address6$" otherwise.
-hpasm_community                        | **Optional.** SNMP community of the server (SNMP v1/2 only).
-hpasm_protocol                 | **Optional.** The SNMP protocol to use (default: 2c, other possibilities: 1,3).
-hpasm_port                     | **Optional.** The SNMP port to use (default: 161).
-hpasm_blacklist                        | **Optional.** Blacklist some (missing/failed) components.
-hpasm_ignore-dimms             | **Optional.** Ignore "N/A"-DIMM status on misc. servers (e.g. older DL320).
-hpasm_ignore-fan-redundancy    | **Optional.** Ignore missing redundancy partners.
-hpasm_customthresholds         | **Optional.** Use custom thresholds for certain temperatures.
-hpasm_eventrange               | **Optional.** Period of time before critical IML events respecively become warnings or vanish. A range is descibed as a number and a unit (s, m, h, d), e.g. --eventrange 1h/20m.
-hpasm_perfdata                 | **Optional.** Output performance data. If your performance data string becomes too long and is truncated by Nagios, then you can use --perfdata=short instead. This will output temperature tags without location information.
-hpasm_username                 | **Optional.** The securityName for the USM security model (SNMPv3 only).
-hpasm_authpassword             | **Optional.** The authentication password for SNMPv3.
-hpasm_authprotocol             | **Optional.** The authentication protocol for SNMPv3 (md5|sha).
-hpasm_privpassword             | **Optional.** The password for authPriv security level.
-hpasm_privprotocol             | **Optional.** The private protocol for SNMPv3 (des|aes|aes128|3des|3desde).
-hpasm_servertype               | **Optional.** The type of the server: proliant (default) or bladesystem.
-hpasm_eval-nics                        | **Optional.** Check network interfaces (and groups). Try it and report me whyt you think about it. I need to build up some know how on this subject. If get an error and you think, it is not justified for your configuration, please tell me about it. (alwasy send the output of "snmpwalk -On .... 1.3.6.1.4.1.232" and a description how you setup your nics and why it is correct opposed to the plugins error message.
index dc0b261dc7b7919ab21f579898c9b0a71a310ed4..b23057e2b5349aa7805c933c6b57f08dfa789d17 100644 (file)
@@ -112,12 +112,12 @@ can be specified with the `--app` command-line option.
 
 ### Libraries
 
-Instead of loading libraries using the [`library` config directive](20-language-reference.md#library)
+Instead of loading libraries using the [`library` config directive](18-language-reference.md#library)
 you can also use the `--library` command-line option.
 
 ### Constants
 
-[Global constants](20-language-reference.md#constants) can be set using the `--define` command-line option.
+[Global constants](18-language-reference.md#constants) can be set using the `--define` command-line option.
 
 ### <a id="config-include-path"></a> Config Include Path
 
@@ -273,9 +273,9 @@ nodes in a [remote monitoring ](11-icinga2-client.md#icinga2-client) or
 
 The `object` CLI command can be used to list all configuration objects and their
 attributes. The command also shows where each of the attributes was modified.
-That way you can also identify which objects have been created from your [apply rules](20-language-reference.md#apply).
+That way you can also identify which objects have been created from your [apply rules](18-language-reference.md#apply).
 
-More information can be found in the [troubleshooting](17-troubleshooting.md#list-configuration-objects) section.
+More information can be found in the [troubleshooting](16-troubleshooting.md#list-configuration-objects) section.
 
     # icinga2 object --help
     icinga2 - The Icinga 2 network monitoring daemon (version: v2.1.1-299-gf695275)
@@ -406,7 +406,7 @@ cleared after review.
 
 ## <a id="cli-command-troubleshoot"></a> CLI command: Troubleshoot
 
-Collects basic information like version, paths, log files and crash reports for troubleshooting purposes and prints them to a file or the console. See [troubleshooting](17-troubleshooting.md#troubleshooting-information-required).
+Collects basic information like version, paths, log files and crash reports for troubleshooting purposes and prints them to a file or the console. See [troubleshooting](16-troubleshooting.md#troubleshooting-information-required).
 
 Its output defaults to a file named `troubleshooting-[TIMESTAMP].log` so it won't overwrite older troubleshooting files.
 
@@ -472,7 +472,7 @@ Lists all configured variables (constants) in a similar fasion like [object list
     Icinga home page: <https://www.icinga.org/>
 
 
-## <a id="features"></a> Enabling/Disabling Features
+## <a id="enable-features"></a> Enabling/Disabling Features
 
 Icinga 2 provides configuration files for some commonly used features. These
 are installed in the `/etc/icinga2/features-available` directory and can be
@@ -555,12 +555,12 @@ Or manually passing the `-C` argument:
 > `# icinga2 daemon -C`
 
 If you encouter errors during configuration validation, please make sure
-to read the [troubleshooting](17-troubleshooting.md#troubleshooting) chapter.
+to read the [troubleshooting](16-troubleshooting.md#troubleshooting) chapter.
 
 You can also use the [CLI command](8-cli-commands.md#cli-command-object) `icinga2 object list`
 after validation passes to analyze object attributes, inheritance or created
 objects by apply rules.
-Find more on troubleshooting with `object list` in [this chapter](17-troubleshooting.md#list-configuration-objects).
+Find more on troubleshooting with `object list` in [this chapter](16-troubleshooting.md#list-configuration-objects).
 
 Example filtered by `Service` objects with the name `ping*`:
 
@@ -604,5 +604,5 @@ safely reload the Icinga 2 daemon.
 > which will validate the configuration in a separate process and not stop
 > the other events like check execution, notifications, etc.
 >
-> Details can be found [here](19-migrating-from-icinga-1x.md#differences-1x-2-real-reload).
+> Details can be found [here](21-migrating-from-icinga-1x.md#differences-1x-2-real-reload).
 
index 2717e20d76e94f381ea5ceb4399b64d9c2fa4613..faa08c5c812002b531320f999cc1b3a00bc90457 100644 (file)
@@ -72,7 +72,7 @@ Succesful requests will send back a response body containing a `results`
 list. Depending on the number of affected objects in your request, the
 results may contain one or more entries.
 
-The [output](9-icinga2-api.md#icinga2-api-output-format) will be sent back as a JSON object:
+The output will be sent back as a JSON object:
 
 
     {
@@ -147,7 +147,7 @@ Example for an API user with all permissions:
     permissions = [ "*" ]
 
 A yet more sophisticated approach is to specify additional permissions
-and their filters. The latter must be defined as [lamdba function](20-language-reference.md#nullary-lambdas)
+and their filters. The latter must be defined as [lamdba function](18-language-reference.md#nullary-lambdas)
 returning a boolean expression.
 
 The `permission` attribute contains the action and the specific capitalized
@@ -238,7 +238,7 @@ Please check the respective sections for detailed URL information and parameters
 There are several actions available for Icinga 2 provided by the `actions`
 URL endpoint `/v1/actions`. You can run actions by sending a `POST` request.
 
-In case you have been using the [external commands](5-advanced-topics.md#external-commands)
+In case you have been using the [external commands](15-features.md#external-commands)
 in the past, the API actions provide a similar interface with filter
 capabilities for some of the more common targets which do not directly change
 the configuration.
@@ -260,7 +260,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/process-check-result`.
   Parameter         | Type         | Description
   ------------------|--------------|--------------
   type              | string       | **Required.** `Host` or `Service`.
-  filter            | string       | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter            | string       | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
   exit\_status      | integer      | **Required.** For services: 0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN, for hosts: 0=OK, 1=CRITICAL.
   plugin\_output    | string       | **Required.** The plugins main output, i.e. the text before the `|`. Does **not** contain the perfomance data.
   performance\_data | string array | **Optional.** One array entry per `;` separated block.
@@ -290,7 +290,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/reschedule-check`.
   Parameter    | Type      | Description
   -------------|-----------|--------------
   type         | string    | **Required.** `Host` or `Service`.
-  filter       | string    | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter       | string    | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
   next\_check  | timestamp | **Optional.** The next check will be run at this timestamp. Defaults to `now`.
   force\_check | boolean   | **Optional.** Defaults to `false`. See blow for further information.
 
@@ -322,7 +322,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/send-custom-notification`
   Parameter | Type    | Description
   ----------|---------|--------------
   type      | string  | **Required.** `Host` or `Service`.
-  filter    | string  | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter    | string  | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
   author    | string  | **Required.** Name of the author, may be empty.
   comment   | string  | **Required.** Comment text, may be empty.
   force     | boolean | **Optional.** Default: false. If true, the notification is sent regardless of downtimes or whether notifications are enabled or not.
@@ -334,7 +334,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/delay-notification`.
   Parameter | Type      | Description
   ----------|-----------|--------------
   type      | string    | **Required.** `Host` or `Service`.
-  filter    | string    | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter    | string    | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
   timestamp | timestamp | **Required.** Delay notifications until this timestamp.
 
 Note that this will only have an effect if the service stays in the same problem
@@ -348,7 +348,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/acknowledge-problem`.
   Parameter | Type      | Description
   ----------|-----------|--------------
   type      | string     | **Required.** `Host` or `Service`.
-  filter    | string    | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter    | string    | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
   author    | string    | **Required.** Name of the author, may be empty.
   comment   | string    | **Required.** Comment text, may be empty.
   expiry    | timestamp | **Optional.** If set the acknowledgement will vanish after this timestamp.
@@ -379,7 +379,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/remove-acknowledgement`.
   parameter | type   | description
   ----------|--------|--------------
   type      | string | **Required.** `Host` or `Service`.
-  filter    | string | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter    | string | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
 
 Remove the acknowledgements for services or hosts. Once the acknowledgement has
 been removed notifications will be sent out again.
@@ -391,7 +391,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/add-comment`.
   parameter | type   | description
   ----------|--------|--------------
   type      | string | **Required.** `Host` or `Service`.
-  filter    | string | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter    | string | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
   author    | string | **Required.** name of the author, may be empty.
   comment   | string | **Required.** Comment text, may be empty.
 
@@ -404,7 +404,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/remove-all-comments`.
   parameter   | type    | description
   ------------|---------|--------------
   type        | string  | **Required.** `Host` or `Service`.
-  filter      | string  | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter      | string  | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
 
 Removes all comments for services or hosts.
 
@@ -429,12 +429,12 @@ Send a `POST` request to the URL endpoint `/v1/actions/schedule-downtime`.
   parameter   | type      | description
   ------------|-----------|--------------
   type        | string    | **Required.** `Host` or `Service`.
-  filter      | string    | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter      | string    | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
   start\_time | timestamp | **Required.** Timestamp marking the begining of the downtime.
   end\_time   | timestamp | **Required.** Timestamp marking the end of the downtime.
   duration    | integer   | **Required.** Duration of the downtime in seconds if `fixed` is set to false.
-  fixed       | boolean   | **Optional.** Defaults to `false`. If true the downtime is `fixed` otherwise `flexible`. See [downtimes](5-advanced-topics.md#Downtimes) for more information.
-  trigger\_id | integer   | **Optional.** Sets the trigger for a triggered downtime. See [downtimes](5-advanced-topics.md#Downtimes) for more information on triggered downtimes.
+  fixed       | boolean   | **Optional.** Defaults to `false`. If true the downtime is `fixed` otherwise `flexible`. See [downtimes](#Downtimes) for more information.
+  trigger\_id | integer   | **Optional.** Sets the trigger for a triggered downtime. See [downtimes](#Downtimes) for more information on triggered downtimes.
 
 Example:
 
@@ -460,7 +460,7 @@ Send a `POST` request to the URL endpoint `/v1/actions/remove-all-downtimes`.
   parameter | type   | description
   ----------|--------|--------------
   type      | string | **Required.** `Host` or `Service`.
-  filter    | string | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api#icinga2-api-filters).
+  filter    | string | **Optional.** Apply the action only to objects matching the [filter](9-icinga2-api.md#icinga2-api-filters).
 
 Removes all downtimes for services or hosts.
 
index c49741dcb2e31ff7263dfcc9b2137d28124b3810..fd103dddd94a5b9598bccf2261393660e15c626b 100644 (file)
@@ -16,15 +16,14 @@ pages:
 - [12-agent-based-checks.md, Additional Agent-based Checks]
 - [13-distributed-monitoring-ha.md, Distributed Monitoring and High Availability]
 - [14-addons-plugins.md, Addons and Plugins]
-- [15-alternative-frontends.md, Alternative Frontends]
-- [16-livestatus.md, Livestatus]
-- [17-troubleshooting.md, Troubleshooting]
-- [18-upgrading-icinga-2.md, Upgrading Icinga 2]
-- [19-migrating-from-icinga-1x.md, Migrating from Icinga 1.x]
-- [20-language-reference.md, Language Reference]
-- [21-library-reference.md, Library Reference]
-- [22-debug.md, Debug]
-- [23-appendix.md, Appendix]
+- [15-features.md, Features]
+- [16-troubleshooting.md, Troubleshooting]
+- [17-upgrading-icinga-2.md, Upgrading Icinga 2]
+- [18-language-reference.md, Language Reference]
+- [19-library-reference.md, Library Reference]
+- [20-debug.md, Debug]
+- [21-migrating-from-icinga-1x.md, Migrating from Icinga 1.x]
+- [22-appendix.md, Appendix]
 theme: readthedocs
 markdown_extensions: [smarty]
 extra_javascript: [scroll.js]