#### Changes
* Generated object names (host with services array) use an exclamation mark instead of a colon
-as seperator. State file objects with downtimes, comments, etc are invalid (unknown) for that
+as separator. State file objects with downtimes, comments, etc are invalid (unknown) for that
reason.
* Script variables are set using 'var' and 'const' instead of the previous 'set' identifier
* ITL constants are now embedded in libicinga
* `IdoMysqlConnection` for Icinga 1.x Reporting, NagVis
* `LivestatusListener` for addons using the livestatus interface (history tables tbd)
* `PerfDataWriter` for graphing addons such as PNP/inGraph/graphite (can be loaded multiple times!)
-* `GraphiteWriter` for sending metrics to directly to graphite carbon sockets
+* `GraphiteWriter` for sending metrics directly to graphite carbon sockets
* `CheckResultReader` to collect Icinga 1.x slave checkresults (migrate your distributed setup step-by-step)
* `ClusterListener` for real distributed architecture including config and runtime data (checks, comments, downtimes) sync and replay
* `SyslogLogger`, `FileLogger` and `ConsoleLogger` for different types of logging
Packages for distributions other than the ones listed above may also be
available. Please check http://packages.icinga.org/ to see if packages
-are available for your favorite distribution.
+are available for your favourite distribution.
> **Note**
>
update the `plugindir` macro in your Icinga 2 configuration. This macro is used
by the service templates contained in the Icinga Template Library to determine
where to find the plugin binaries.
+Alternatively you can create a symbolic link pointing to the installation path
+of the plugins.
-### <a id="integrate-additional-plugins"></a> Integrate Additonal Plugins
+### <a id="integrate-additional-plugins"></a> Integrate Additional Plugins
You may require a custom check plugin not provided by the official Nagios plugins.
All existing Nagios or Icinga 1.x plugins found on public community websites
* [MonitoringExchange](https://www.monitoringexchange.org)
* [Icinga Wiki](https://wiki.icinga.org)
-Once you have downloaded the plugin copy them into the directory defined by the global
+Once you have downloaded the plugin copy it into the directory defined by the global
`IcingaMacro` `$plugindir$` and make sure that the user the Icinga daemon is running as
-can execute the the plugin binary. Plugins should provide the `--help` parameter
-providing details how they must get called in your command definition later on.
+can execute the the plugin binary. Plugins should support the `--help` parameter
+providing details how they have to be called in your command definition later on.
# cp check_snmp_int.pl /usr/local/icinga/libexec/
# chmod +x /usr/local/icinga/libexec/check_snmp_int.pl
## <a id="configuring-ido"></a> Configuring IDO
-The IDO (Icinga Data Output) modules for Icinga 2 takes care of exporting all
+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.
+---------+
Check the `schema/upgrade` directory for an incremental schema upgrade file, e.g.
-if your database schema version is `1.10.0` look for `mysql-upgrade-1.12.0.sql`
+if your database schema version is `1.11.0` look for `mysql-upgrade-1.12.0.sql`
and newer. If there isn't an upgrade file available there's nothing to do.
> **Note**
# sudo -u postgres createlang plpgsql icinga
Locate your pg_hba.conf (Debian: `/etc/postgresql/*/main/pg_hba.conf`,
-RHEL/SUSE: `/var/lib/pgsql/data/pg_hba.conf`), add the icinga user with md5
+RHEL/SUSE: `/var/lib/pgsql/data/pg_hba.conf`), add the icinga user with md5
authentification method and restart the postgresql server.
# vim /var/lib/pgsql/data/pg_hba.conf
-## <a id=setting-up-livestatus""></a> Setting up Livestatus
+## <a id="setting-up-livestatus"></a> Setting up Livestatus
The [MK Livestatus](http://mathias-kettner.de/checkmk_livestatus.html) project
implements a query protocol that lets users query their Icinga instance for
### <a id="setting-up-icingaweb2"></a> Setting up Icinga Web 2
-Icinga Web 2 currently supports `status.dat`, `DB IDO` or `Livestatus` as backends.
+Icinga Web 2 currently supports `status.dat`, `DB IDO`, or `Livestatus` as backends.
Please consult the INSTALL documentation shipped with `Icinga Web 2` for
further instructions.
are well integrated into user interfaces.
The most famous ones are PNP or inGraph (graphing performance data), graphite, NagVis
-(network maps), etc
+(network maps), etc.
* Temperature Sensors
* Other local or network-accessible services
-Host objects provide a mechanism to group together services that are running
+Host objects provide a mechanism to group services that are running
on the same physical device.
Here is an example of a host object which defines two child services:
Define the default check command macros `wfree` and `cfree` (freely
definable naming schema) and their default threshold values. You can
-then use these macros in the command line.
+then use these macros on the command line.
> **Note**
>
events being triggered.
Common use case scenarios are a failing HTTP check requiring an immediate
-restart via event command, or a an application is locked and requires
-a restart on detection.
+restart via event command, or if an application is locked and requires
+a restart upon detection.
> **Note**
>
### <a id="user-runtime-macros"></a> User Runtime Macros
-The following service macros are available in all commands that are executed for
+The following macros are available in all commands that are executed for
users:
Name | Description
}
More details in the chapter [Constant Expressions](#constant-expressions).
+
events being triggered.
Common use case scenarios are a failing HTTP check requiring an immediate
-restart via event command, or a an application is locked and requires
-a restart on detection.
+restart via event command, or if an application is locked and requires
+a restart upon detection.
}
For debugging purposes you can install a `FileLogger` object
-and forward the `debug` serverity into an Icinga 2 debug file.
+and forward the `debug` severity into an Icinga 2 debug file.
object FileLogger "debug-file" {
severity = "debug",
> **Note**
>
-> Semi-colons in the check result output are replaced with colons because
+> Semicolons in the check result output are replaced with colons because
> they are used as attribute separators.
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 informal representation in
+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. Futhermore the
`Livestatus` feature uses these logs for answering queries to
> **Note**
>
-> Semi-colons in the check result output are replaced with colons because
+> Semicolons in the check result output are replaced with colons because
> they are used as attribute separators.
#### NSClient++
[NSClient++](http://nsclient.org) works on both Windows and Linux platforms and is well
-known for its magnificant Windows support. There are alternatives like the WMI interface,
+known for its magnificent Windows support. There are alternatives like the WMI interface,
but using `NSClient++` will allow you to run local scripts similar to check plugins fetching
the required output and performance counters.
For details on the `NSClient++` configuration please refer to the [official documentation](http://www.nsclient.org/nscp/wiki/doc/configuration/0.4.x).
+> ** Note **
+>
+> The format of the `NSClient++` configuration file has changed from 0.3.x to 0.4!
+
#### Icinga 2 Agent
passing the check results to Icinga 2.
-
> **Note**
>
-> Unlike in ordinary strings special characters to not have to be escaped
+> Unlike in ordinary strings special characters do not have to be escaped
> in multi-line string literals.
#### <a id="boolean-literals"></a> Boolean Literals
> **Note**
>
-> The final macros dictionary contains all 3 macros and the macro
+> The final macros dictionary contains all three macros and the macro
> `color` has the value `"blue"`.
Parent objects are resolved in the order they're specified using the
The same method applies for disabling services defined in the inline `services`
-dictionary by exiplicitely overriding their value with `null`.
+dictionary by explicitly overriding their value with `null`.
services["ping6"] = null
const VarName = "some value"
-The value can be a string, number, array or a dictionary.
+The value can be a string, number, array, or a dictionary.
Constants cannot be changed once they are set.
> **Best Practice**
>
> Rather than creating a `Service` object for a specific host it is usually easier
-> to just create a `Service` template and using the `services` attribute in the `Host`
+> to just create a `Service` template and use the `services` attribute in the `Host`
> object to associate these templates with a host.
Example:
> **Best Practice**
>
> Rather than creating a `Notification` object for a specific service it is usually easier
-> to just create a `Notification` template and using the `notifications` attribute in the `Service`
+> to just create a `Notification` template and use the `notifications` attribute in the `Service`
> object to associate these templates with a service.
Example:
> **Best Practice**
>
> Rather than creating a `ScheduledDowntime` object for a specific service it is usually easier
-> to just create a `ScheduledDowntime` template and using the `scheduled_downtimes` attribute in the `Service`
+> to just create a `ScheduledDowntime` template and use the `scheduled_downtimes` attribute in the `Service`
> object to associate these templates with a service.
Example:
[NConf](http://www.nconf.org/) or [NagiosQL](http://www.nagiosql.org/)
store their configuration in a custom format in their backends (LDAP or RDBMS).
Currently only LConf 1.4.x supports Icinga 2 configuration export. If you require
-your favorite configuration tool to export Icinga 2 configuration, please get in
+your favourite configuration tool to export Icinga 2 configuration, please get in
touch with their developers.
If you're looking for puppet manifests, chef cookbooks, ansible recipes, etc - we're happy
include_recursive "conf.d" "*.conf"
-Below `conf.d` you're free to choose. An Example based on host objects with
+Below `conf.d` you're free to choose. An example based on host objects with
inline services in `conf.d/hosts` and their templates below `conf.d/services/`
would be:
----------------|--------------
plugindir | **Required.** The directory containing this plugin.
wgreater | **Optional.** The user count warning threshold. Defaults to 20.
-cgreater | **Optional.** The user count warning threshold. Defaults to 50.
+cgreater | **Optional.** The user count critical threshold. Defaults to 50.
### <a id="itl-processes"></a> processes
----------------|--------------
plugindir | **Required.** The directory containing this plugin.
wgreater | **Optional.** The process count warning threshold. Defaults to 250.
-cgreater | **Optional.** The process count warning threshold. Defaults to 400.
+cgreater | **Optional.** The process count critical threshold. Defaults to 400.
### <a id="itl-load"></a> load
> **Note**
>
> Downtimes may overlap with their start and end times. If there
-> are multiple downtimes triggered, the overall downtime depth
+> are multiple downtimes triggered for one object, the overall downtime depth
> will be more than `1`. This is useful when you want to extend
> your maintenance window taking longer than expected.
Unlike a `fixed` downtime, a `flexible` downtime end does not necessarily
happen at the provided end time. Instead the downtime will be triggered
-in the time span defined by start and end time, but then last a defined
-duration in minutes.
+by the state change in the time span defined by start and end time, but
+then last a defined duration in minutes.
Imagine the following scenario: Your service is frequently polled
by users trying to grab free deleted domains for immediate registration.
* node-3
and `node-3` is only reachable from `node-2`, you have to consider this in your
-peer configuration
+peer configuration.
### <a id="configure-cluster-endpoints"></a> Configure Cluster Endpoints
attributes are mandatory, `child_host` and `child_service` attributes are obsolete within
inline definitions in an existing service object or service inline definition.
-A service can depend on a host, and vice versa. A service has an implicit dependeny (parent)
+A service can depend on a host, and vice versa. A service has an implicit dependency (parent)
to its host. A host to host dependency acts implicit as host parent relation.
A common scenario is the Icinga 2 server behind a router. Checking internet
> **Note**
>
-> Flapping must be explicitely enabled seting the `Service` object attribute
+> Flapping must be explicitely enabled setting the `Service` object attribute
> `enable_flapping = 1`.
## <a id="volatile-services"></a> Volatile Services
## <a id="configuration-migration"></a> Configuration Migration
-The Icinga 2 configuration format introduces plenty of behavioral changes. In
+The Icinga 2 configuration format introduces plenty of behavioural changes. In
order to ease migration from Icinga 1.x,
Icinga 2 ships its own config migration script.
For a long-term migration of your configuration you should consider re-creating
your configuration based on the Icinga 2 proposed way of doing configuration right.
-Please read the [next chapter](#differences-1x-2) to get an idea about the differences between 1.x and 2.
\ No newline at end of file
+Please read the [next chapter](#differences-1x-2) to get an idea about the differences between 1.x and 2.
### <a id="differences-1x-2-action-url-notes-url-notes"></a> Action Url, Notes Url, Notes
Icinga 1.x objects support configuration attributes not required as runtime
-values but for external ressources such as Icinga 1.x Classic UI or Web.
+values but for external resources such as Icinga 1.x Classic UI or Web.
The `notes`, `notes_url`, `action_url`, `icon_image`, `icon_image_alt`
attributes for host and service objects, additionally `statusmap_image` and
`2d_coords` for the host's representation in status maps.