Update documentation.

This commit is contained in:
Gunnar Beutner 2013-09-27 07:19:13 +02:00
parent e954e38c5e
commit 22dccac2b0
7 changed files with 340 additions and 325 deletions

View File

@ -1,22 +1,20 @@
# About # About Icinga 2
## About Icinga 2 ## What is Icinga 2?
### What is Icinga?
Icinga 2 is a network monitoring application. Icinga 2 is a network monitoring application.
### Licensing ## Licensing
Icinga 2 and the Icinga 2 documentation are licensed under the terms of the GNU Icinga 2 and the Icinga 2 documentation are licensed under the terms of the GNU
General Public License Version 2, you will find a copy of this license in the General Public License Version 2, you will find a copy of this license in the
LICENSE file included in the package. LICENSE file included in the package.
### Support ## Support
Support for Icinga 2 is available in a number of ways. Please have a look at Support for Icinga 2 is available in a number of ways. Please have a look at
the support overview page at https://www.icinga.org/support/. the support overview page at https://www.icinga.org/support/.
## What's New in Version 0.0.3 ## What's New in Version 0.0.3
* Lots of things. * Lots of things.

View File

@ -6,7 +6,7 @@ This tutorial is a step-by-step introduction to installing Icinga 2 and
the standalone version of the Icinga 1.x classic web interface. It assumes the standalone version of the Icinga 1.x classic web interface. It assumes
that you are familiar with the system you're installing Icinga 2 on. that you are familiar with the system you're installing Icinga 2 on.
### Installing Icinga 2 ### Setting up Icinga 2
In order to get started with Icinga 2 you will have to install it. The In order to get started with Icinga 2 you will have to install it. The
preferred way of doing this is to use the official Debian or RPM preferred way of doing this is to use the official Debian or RPM
@ -27,6 +27,8 @@ In case you're running a distribution for which Icinga 2 packages are
not yet available you will have to check out the Icinga 2 Git repository not yet available you will have to check out the Icinga 2 Git repository
from git://git.icinga.org/icinga2 and read the *INSTALL* file. from git://git.icinga.org/icinga2 and read the *INSTALL* file.
#### Installation Paths
By default Icinga 2 uses the following files and directories: By default Icinga 2 uses the following files and directories:
Path |Description Path |Description
@ -39,6 +41,8 @@ By default Icinga 2 uses the following files and directories:
/var/cache/icinga2 |Performance data files and status.dat/objects.cache. /var/cache/icinga2 |Performance data files and status.dat/objects.cache.
/var/lib/icinga2 |The Icinga 2 state file. /var/lib/icinga2 |The Icinga 2 state file.
#### Configuration
An example configuration file is installed for you in /etc/icinga2/icinga2.conf. An example configuration file is installed for you in /etc/icinga2/icinga2.conf.
Here's a brief description of the concepts the example configuration file Here's a brief description of the concepts the example configuration file
@ -149,7 +153,7 @@ The *macros* attribute can be used to define macros that are available for all
services which belong to this host. Most of the templates in the Icinga Template services which belong to this host. Most of the templates in the Icinga Template
Library require an *address* macro. Library require an *address* macro.
### Installing the Icinga Classic UI ### Setting up the Icinga Classic UI
Icinga 2 can write status.dat and objects.cache files in the format that 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 (a.k.a. the is supported by the Icinga 1.x Classic UI. External commands (a.k.a. the
@ -163,6 +167,8 @@ You should be able to find the status.dat and objects.cache files in
/var/cache/icinga2. The log files can be found in /var/log/icinga2/compat. /var/cache/icinga2. The log files can be found in /var/log/icinga2/compat.
The command pipe can be found in /var/run/icinga2. The command pipe can be found in /var/run/icinga2.
#### Installing the Icinga Classic UI
You can install the Icinga 1.x Classic UI in standalone mode using the You can install the Icinga 1.x Classic UI in standalone mode using the
following commands: following commands:
@ -179,9 +185,11 @@ following commands:
> found on the Icinga Wiki here: > found on the Icinga Wiki here:
> [https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Classic+UI+Standalone](https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Classic+UI+Standalone) > [https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Classic+UI+Standalone](https://wiki.icinga.org/display/howtos/Setting+up+Icinga+Classic+UI+Standalone)
#### Configuring the Classic UI
After installing the Classic UI you will need to update the following After installing the Classic UI you will need to update the following
settings in your cgi.cfg configuration file in the "STANDALONE (ICINGA 2) settings in your *cgi.cfg* configuration file in the *STANDALONE (ICINGA 2)
OPTIONS" section: OPTIONS* section:
Configuration Setting |Value Configuration Setting |Value
------------------------------------|------------------------------------ ------------------------------------|------------------------------------
@ -215,4 +223,50 @@ write permissions for the command pipe:
Verify that your Icinga 1.x Classic UI works by browsing to your Classic Verify that your Icinga 1.x Classic UI works by browsing to your Classic
UI installation URL, e.g. UI installation URL, e.g.
[http://localhost/icinga](http://localhost/icinga) [http://localhost/icinga](http://localhost/icinga)
### Configuring IDO Support
TODO
## Running Icinga
TODO
## Monitoring Basics
### Hosts
TODO
### Services
TODO
### Check Commands
TODO
### Macros
TODO
## Using Templates
TODO
## Groups
TODO
## Host/Service Dependencies
TODO
## Time Periods
TODO
## Notifications
TODO

View File

@ -0,0 +1 @@
# Configuring Icinga

View File

@ -1,8 +1,6 @@
Configuration Syntax ## Configuration Syntax
====================
Object Definition ### Object Definition
-----------------
Icinga 2 features an object-based configuration format. In order to Icinga 2 features an object-based configuration format. In order to
define objects the *object* keyword is used: define objects the *object* keyword is used:
@ -29,7 +27,7 @@ Each object is uniquely identified by its type (*Host*) and name
property declarations. The following data types are available for property declarations. The following data types are available for
property values: property values:
### Numeric Literals #### Numeric Literals
A floating-point number. A floating-point number.
@ -37,7 +35,7 @@ Example:
-27.3 -27.3
### Duration Literal #### Duration Literals
Similar to floating-point numbers except for the fact that they support Similar to floating-point numbers except for the fact that they support
suffixes to help with specifying time durations. suffixes to help with specifying time durations.
@ -49,7 +47,7 @@ Example:
Supported suffixes include ms (milliseconds), s (seconds), m (minutes) Supported suffixes include ms (milliseconds), s (seconds), m (minutes)
and h (hours). and h (hours).
### String Literals #### String Literals
A string. A string.
@ -74,7 +72,7 @@ In addition to these pre-defined escape sequences you can specify
arbitrary ASCII characters using the backslash character (\\) followed arbitrary ASCII characters using the backslash character (\\) followed
by an ASCII character in octal encoding. by an ASCII character in octal encoding.
### Multiline String Literals #### Multiline String Literals
Strings spanning multiple lines can be specified by enclosing them in Strings spanning multiple lines can be specified by enclosing them in
{{{ and }}}. {{{ and }}}.
@ -86,15 +84,15 @@ Example.
a multi-line a multi-line
string.}}} string.}}}
### Boolean Literals #### Boolean Literals
The keywords *true* and *false* are equivalent to 1 and 0 respectively. The keywords *true* and *false* are equivalent to 1 and 0 respectively.
### Null Value #### Null Value
The *null* keyword can be used to specify an empty value. The *null* keyword can be used to specify an empty value.
### Dictionary #### Dictionary
An unordered list of key-value pairs. Keys must be unique and are An unordered list of key-value pairs. Keys must be unique and are
compared in a case-insensitive manner. compared in a case-insensitive manner.
@ -121,7 +119,7 @@ Example:
> Setting a dictionary key to null causes the key and its value to be > Setting a dictionary key to null causes the key and its value to be
> removed from the dictionary. > removed from the dictionary.
### Array #### Array
An ordered list of values. An ordered list of values.
@ -130,26 +128,20 @@ comma. The comma after the last element is optional.
Example: Example:
[ [ "hello", 42 ]
"hello",
"world",
42,
[ "a", "nested", "array" ]
]
> **Note** > **Note**
> >
> An array may simultaneously contain values of different types, e.g. > An array may simultaneously contain values of different types, such as
> strings and numbers. > strings and numbers.
Operators ### Operators
---------
In addition to the *=* operator shown above a number of other operators In addition to the *=* operator shown above a number of other operators
to manipulate configuration objects are supported. Here's a list of all to manipulate configuration objects are supported. Here's a list of all
available operators: available operators:
### Operator = #### Operator =
Sets a dictionary element to the specified value. Sets a dictionary element to the specified value.
@ -162,7 +154,7 @@ Example:
In this example a has the value 7 after both instructions are executed. In this example a has the value 7 after both instructions are executed.
### Operator += #### Operator +=
Modifies a dictionary or array by adding new elements to it. Modifies a dictionary or array by adding new elements to it.
@ -178,7 +170,7 @@ only works for dictionaries and arrays.
<!-- <!--
### Operator *-=* #### Operator -=
Removes elements from a dictionary. Removes elements from a dictionary.
@ -192,7 +184,7 @@ Example:
In this example a contains *"hello"*. Trying to remove an item that does In this example a contains *"hello"*. Trying to remove an item that does
not exist is not an error. Not implemented yet. not exist is not an error. Not implemented yet.
### Operator *\*=* #### Operator \*=
Multiplies an existing dictionary element with the specified number. If Multiplies an existing dictionary element with the specified number. If
the dictionary element does not already exist 0 is used as its value. the dictionary element does not already exist 0 is used as its value.
@ -207,7 +199,7 @@ Example:
In this example a is 300. This only works for numbers. Not implemented In this example a is 300. This only works for numbers. Not implemented
yet. yet.
### Operator */=* #### Operator /=
Divides an existing dictionary element by the specified number. If the Divides an existing dictionary element by the specified number. If the
dictionary element does not already exist 0 is used as its value. dictionary element does not already exist 0 is used as its value.
@ -224,10 +216,9 @@ yet.
--> -->
Attribute Shortcuts ### Indexer
-------------------
### Indexer Shortcut The indexer syntax provides a convenient way to set dictionary elements.
Example: Example:
@ -243,8 +234,7 @@ This is equivalent to writing:
} }
} }
Inheritance ### Inheritance
-----------
Objects can inherit attributes from other objects. Objects can inherit attributes from other objects.
@ -278,8 +268,7 @@ templates though in general they are.
Parent objects are resolved in the order they're specified using the Parent objects are resolved in the order they're specified using the
*inherits* keyword. *inherits* keyword.
Variables ### Variables
---------
Global variables can be set using the *set* keyword: Global variables can be set using the *set* keyword:
@ -287,8 +276,7 @@ Global variables can be set using the *set* keyword:
The value can be a string, number, array or a dictionary. The value can be a string, number, array or a dictionary.
Constant Expressions ### Constant Expressions
--------------------
Simple calculations can be performed using the constant expression syntax: Simple calculations can be performed using the constant expression syntax:
@ -318,8 +306,7 @@ Global variables may be used in constant expressions.
> Constant expressions are evaluated as soon as they're encountered in > Constant expressions are evaluated as soon as they're encountered in
> the configuration file. > the configuration file.
Comments ### Comments
--------
The Icinga 2 configuration format supports C/C++-style comments. The Icinga 2 configuration format supports C/C++-style comments.
@ -333,8 +320,7 @@ Example:
retry_interval = 15 retry_interval = 15
} }
Includes ### Includes
--------
Other configuration files can be included using the *include* directive. Other configuration files can be included using the *include* directive.
Paths must be relative to the configuration file that contains the Paths must be relative to the configuration file that contains the
@ -361,8 +347,7 @@ paths.
Wildcards are not permitted when using angle brackets. Wildcards are not permitted when using angle brackets.
Library directive ### Library directive
-----------------
The *library* directive can be used to manually load additional The *library* directive can be used to manually load additional
libraries. Libraries can be used to provide additional object types and libraries. Libraries can be used to provide additional object types and
@ -378,8 +363,7 @@ Example:
<!-- <!--
Type Definition ### Type Definition
---------------
By default Icinga has no way of semantically verifying its configuration By default Icinga has no way of semantically verifying its configuration
objects. This is where type definitions come in. Using type definitions objects. This is where type definitions come in. Using type definitions

View File

@ -1,48 +1,14 @@
Global Variables ## Global Variables
================
IcingaPrefixDir Icinga 2 provides a number of special global variables:
---------------
**Read-only.** Contains the installation prefix that was specified with ./configure --prefix. Defaults to /usr/local Variable |Description
-------------------|-------------------
IcingaLocalStateDir IcingaPrefixDir |**Read-only.** Contains the installation prefix that was specified with ./configure --prefix. Defaults to /usr/local
------------------- IcingaLocalStateDir|**Read-only.** Contains the path of the local state directory. Defaults to IcingaPrefixDir + "/var".
IcingaPkgLibDir |**Read-only.** Contains the path of the package lib directory. Defaults to IcingaPrefixDir + "/lib/icinga2".
**Read-only.** Contains the path of the local state directory. Defaults to IcingaPrefixDir + "/var". IcingaPkgDataDir |**Read-only.** Contains the path of the package data directory. Defaults to IcingaPrefixDir + "/share/icinga2".
IcingaStatePath |**Read-write.** Contains the path of the Icinga 2 state file. Defaults to IcingaLocalStateDir + "/lib/icinga2/icinga2.state".
IcingaPkgLibDir IcingaPidPath |**Read-write.** Contains the path of the Icinga 2 PID file. Defaults to IcingaLocalStateDir + "/run/icinga2/icinga2.pid".
--------------- IcingaMacros |**Read-write.** Contains a dictionary with global macros. Not set by default.
ApplicationType |**Read-write.** Contains the name of the Application type. Defaults to "IcingaApplication".
**Read-only.** Contains the path of the package lib directory. Defaults to IcingaPrefixDir + "/lib/icinga2".
IcingaPkgDataDir
----------------
**Read-only.** Contains the path of the package data directory. Defaults to IcingaPrefixDir + "/share/icinga2".
IcingaStatePath
---------------
**Read-write.** Contains the path of the Icinga 2 state file. Defaults to IcingaLocalStateDir + "/lib/icinga2/icinga2.state".
IcingaPidPath
-------------
**Read-write.** Contains the path of the Icinga 2 PID file. Defaults to IcingaLocalStateDir + "/run/icinga2/icinga2.pid".
IcingaMacros
------------
**Read-write.** Contains global macros. Not set by default.
Example:
set IcingaMacros = {
plugindir = "/opt/check-plugins"
}
ApplicationType
---------------
**Read-write.** Contains the name of the Application type. Defaults to "IcingaApplication".

View File

@ -1,123 +1,71 @@
Object Types ## Object Types
============
ConsoleLogger ### Host
-------------
Specifies Icinga 2 logging to the console. A host.
Example:
object ConsoleLogger "my-debug-console" {
severity = "debug"
}
Attributes:
Name |Description
----------------|----------------
severity |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
FileLogger
----------
Specifies Icinga 2 logging to a file.
Example:
object FileLogger "my-debug-file" {
severity = "debug",
path = "/var/log/icinga2/icinga2-debug.log"
}
Attributes:
Name |Description
----------------|----------------
path |**Required.** The log path.
severity |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
SyslogLogger
------------
Specifies Icinga 2 logging to syslog.
Example:
object SyslogLogger "my-crit-syslog" {
severity = "critical"
}
Attributes:
Name |Description
----------------|----------------
severity |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
CheckCommand
------------
A check command definition. Additional default command macros can be
defined here.
Example:
object CheckCommand "check_snmp" inherits "plugin-check-command" {
command = "$plugindir$/check_snmp -H $address$ -C $community$ -o $oid$",
macros = {
address = "127.0.0.1",
community = "public",
}
}
NotificationCommand
-------------------
A notification command definition.
Example:
object NotificationCommand "mail-service-notification" inherits "plugin-notification-command" {
command = [
"/opt/bin/send-mail-notification",
"$CONTACTEMAIL$",
"$NOTIFICATIONTYPE$ - $HOSTNAME$ - $SERVICEDESC$ - $SERVICESTATE$",
{{{***** Icinga *****
Notification Type: $NOTIFICATIONTYPE$
Service: $SERVICEDESC$
Host: $HOSTALIAS$
Address: $HOSTADDRESS$
State: $SERVICESTATE$
Date/Time: $LONGDATETIME$
Additional Info: $SERVICEOUTPUT$
Comment: [$NOTIFICATIONAUTHORNAME$] $NOTIFICATIONCOMMENT$}}}
]
}
EventCommand
------------
An event command definition.
> **Note** > **Note**
> >
> Similar to Icinga 1.x event handlers. > Unlike in Icinga 1.x hosts are not checkable objects in Icinga 2.
Example: Example:
object EventCommand "restart-httpd-event" inherits "plugin-event-command" { object Host "localhost" {
command = "/opt/bin/restart-httpd.sh", display_name = "The best host there is",
groups = [ "all-hosts" ],
check = "ping",
host_dependencies = [ "router" ],
service_dependencies = [
{ host = "db-server", service = "mysql" }
],
services["ping"] = {
templates = [ "ping" ]
},
services["http"] = {
templates = [ "my-http" ],
macros = {
vhost = "test1.example.org",
port = 81
}
}
} }
Attributes:
Service Name |Description
------- ----------------|----------------
display_name |**Optional.** A short description of the host.
check |**Optional.** A service that is used to determine whether the host is up or down. This must be a service short name of a service that belongs to the host.
groups |**Optional.** A list of host groups this host belongs to.
host_dependencies|**Optional.** A list of host names which this host depends on. These dependencies are used to determine whether the host is unreachable.
service_dependencies|**Optional.** A list of services which this host depends on. Each array element must be a dictionary containing the keys "host" and "service". These dependencies are used to determine whether the host is unreachable.
services |**Optional.** Inline definition of services. Each dictionary item specifies a service.<br /><br />The *templates* attribute can be used to specify an array of templates that should be inherited by the service.<br /><br />The new service's name is "hostname:service" - where "service" is the dictionary key in the services dictionary.<br /><br />The dictionary key is used as the service's short name.
macros |TODO
### HostGroup
A group of hosts.
Example:
object HostGroup "my-hosts" {
display_name = "My hosts",
}
Attributes:
Name |Description
----------------|----------------
display_name |**Optional.** A short description of the host group.
### Service
Service objects describe network services and how they should be checked Service objects describe network services and how they should be checked
by Icinga 2. by Icinga 2.
@ -156,13 +104,13 @@ Attributes:
host |**Required.** The host this service belongs to. There must be a *Host* object with that name. host |**Required.** The host this service belongs to. There must be a *Host* object with that name.
short_name |**Required.** The service name. Must be unique on a per-host basis (Similar to the service_description attribute in Icinga 1.x). short_name |**Required.** The service name. Must be unique on a per-host basis (Similar to the service_description attribute in Icinga 1.x).
display_name |**Optional.** A short description of the service. display_name |**Optional.** A short description of the service.
macros |TODO macros |**Optional.**
check\_command |**Required.** The name of the check command. check\_command |**Required.** The name of the check command.
max\_check\_attempts|TODO max\_check\_attempts|TODO
check\_period |TODO check\_period |**Optional.** The name of a time period which determines when this service should be checked. Not set by default.
check\_interval |**Optional.** The check interval (in seconds). check\_interval |**Optional.** The check interval (in seconds).
retry\_interval |**Optional.** The retry interval (in seconds). This is used when the service is in a soft state. Defaults to 1/5th of the check interval if not specified. retry\_interval |**Optional.** The retry interval (in seconds). This is used when the service is in a soft state. Defaults to 1/5th of the check interval if not specified.
event\_command |TODO event\_command |**Optional.** The name of an event command that should be executed every time the service's state changes.
flapping\_threshold|TODO flapping\_threshold|TODO
volatile |TODO volatile |TODO
host\_dependencies|TODO host\_dependencies|TODO
@ -170,8 +118,7 @@ Attributes:
groups |**Optional.** The service groups this service belongs to. groups |**Optional.** The service groups this service belongs to.
notifications |TODO notifications |TODO
ServiceGroup ### ServiceGroup
------------
A group of services. A group of services.
@ -187,8 +134,7 @@ Attributes:
----------------|---------------- ----------------|----------------
display_name |**Optional.** A short description of the service group. display_name |**Optional.** A short description of the service group.
Notification ### Notification
------------
TODO TODO
@ -200,11 +146,11 @@ Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
host |TODO host |**Required.** The name of the host this notification belongs to.
service |TODO service |**Required.** The short name of the service this notification belongs to.
macros |TODO macros |TODO
users |TODO users |**Optional.** A list of user names who should be notified.
user_groups |TODO user_groups |**Optional.** A list of user group names who should be notified.
times |TODO times |TODO
notification_command|TODO notification_command|TODO
notification_interval|TODO notification_interval|TODO
@ -212,10 +158,9 @@ Attributes:
notification_type_filter|TODO notification_type_filter|TODO
notification_state_filter|TODO notification_state_filter|TODO
User ### User
----
TODO A user.
Example: Example:
@ -225,7 +170,7 @@ Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
display_name |TODO display_name |**Optional.** A short description of the user.
macros |TODO macros |TODO
groups |TODO groups |TODO
enable_notifications|TODO enable_notifications|TODO
@ -233,10 +178,26 @@ Attributes:
notification_type_filter|TODO notification_type_filter|TODO
notification_state_filter|TODO notification_state_filter|TODO
UserGroup ### UserGroup
---------
TODO A user group.
Example:
object UserGroup "noc-staff" {
display_name = "NOC Staff"
}
Attributes:
Name |Description
----------------|----------------
display_name |**Optional.** A short description of the user group.
### TimePeriod
Time periods can be used to specify when services should be checked or to limit
when notifications should be sent out.
Example: Example:
@ -246,90 +207,73 @@ Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
display_name |TODO display_name |**Optional.** A short description of the time period.
TimePeriod
----------
TODO
Example:
TODO
Attributes:
Name |Description
----------------|----------------
display_name |TODO
methods |TODO methods |TODO
ranges |TODO ranges |TODO
TimePeriod ### ConsoleLogger
----------
TODO Specifies Icinga 2 logging to the console.
Example: Example:
TODO object ConsoleLogger "my-debug-console" {
severity = "debug"
}
Attributes: Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
display_name |TODO severity |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
Domain ### FileLogger
------
TODO Specifies Icinga 2 logging to a file.
Example: Example:
TODO object FileLogger "my-debug-file" {
severity = "debug",
path = "/var/log/icinga2/icinga2-debug.log"
}
Attributes: Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
acl |TODO path |**Required.** The log path.
severity |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
Host ### SyslogLogger
----
A host. Specifies Icinga 2 logging to syslog.
> **Note**
>
> Unlike in Icinga 1.x hosts are not checkable objects in Icinga 2.
Example: Example:
object Host "localhost" { object SyslogLogger "my-crit-syslog" {
display_name = "The best host there is", severity = "critical"
}
groups = [ "all-hosts" ], Attributes:
check = "ping", Name |Description
----------------|----------------
host_dependencies = [ "router" ], severity |**Optional.** The minimum severity for this log. Can be "debug", "information", "warning" or "critical". Defaults to "information".
service_dependencies = [ ### CheckCommand
{ host = "db-server", service = "mysql" }
],
services["ping"] = { A check command definition. Additional default command macros can be
templates = [ "ping" ] defined here.
},
services["http"] = { Example:
templates = [ "my-http" ],
macros = { object CheckCommand "check_snmp" inherits "plugin-check-command" {
vhost = "test1.example.org", command = "$plugindir$/check_snmp -H $address$ -C $community$ -o $oid$",
port = 81
} macros = {
address = "127.0.0.1",
community = "public",
} }
} }
@ -337,33 +281,79 @@ Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
display_name |**Optional.** A short description of the host. methods |TODO
check |**Optional.** A service that is used to determine whether the host is up or down. This must be a service short name of a service that belongs to the host. command |TODO
groups |**Optional.** A list of host groups this host belongs to. export_macros |TODO
host_dependencies|**Optional.** An array of host names which this host depends on. These dependencies are used to determine whether the host is unreachable. escape_macros |TODO
service_dependencies|**Optional.** An array of service names which this host depends on. Each array element must be a dictionary containing the keys "host" and "service". These dependencies are used to determine whether the host is unreachable.
services |**Optional.** Inline definition of services. Each dictionary item specifies a service.<br /><br />The *templates* attribute can be used to specify an array of templates that should be inherited by the service.<br /><br />The new service's name is "hostname:service" - where "service" is the dictionary key in the services dictionary.<br /><br />The dictionary key is used as the service's short name.
macros |TODO macros |TODO
timeout |TODO
HostGroup ### NotificationCommand
---------
A group of hosts. A notification command definition.
Example: Example:
object HostGroup "my-hosts" { object NotificationCommand "mail-service-notification" inherits "plugin-notification-command" {
display_name = "My hosts", command = [
"/opt/bin/send-mail-notification",
"$CONTACTEMAIL$",
"$NOTIFICATIONTYPE$ - $HOSTNAME$ - $SERVICEDESC$ - $SERVICESTATE$",
{{{***** Icinga *****
Notification Type: $NOTIFICATIONTYPE$
Service: $SERVICEDESC$
Host: $HOSTALIAS$
Address: $HOSTADDRESS$
State: $SERVICESTATE$
Date/Time: $LONGDATETIME$
Additional Info: $SERVICEOUTPUT$
Comment: [$NOTIFICATIONAUTHORNAME$] $NOTIFICATIONCOMMENT$}}}
]
} }
Attributes: Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
display_name |**Optional.** A short description of the host group. methods |TODO
command |TODO
export_macros |TODO
escape_macros |TODO
macros |TODO
timeout |TODO
PerfdataWriter ### EventCommand
--------------
An event command definition.
> **Note**
>
> Similar to Icinga 1.x event handlers.
Example:
object EventCommand "restart-httpd-event" inherits "plugin-event-command" {
command = "/opt/bin/restart-httpd.sh",
}
Attributes:
Name |Description
----------------|----------------
methods |TODO
command |TODO
export_macros |TODO
escape_macros |TODO
macros |TODO
timeout |TODO
### PerfdataWriter
Writes check result performance data to a defined path using macro Writes check result performance data to a defined path using macro
pattern. pattern.
@ -391,8 +381,7 @@ Attributes:
> When rotating the perfdata file the current UNIX timestamp is appended to the path specified > When rotating the perfdata file the current UNIX timestamp is appended to the path specified
> in *perfdata\_path* to generate a unique filename. > in *perfdata\_path* to generate a unique filename.
IdoMySqlConnection ### IdoMySqlConnection
------------------
IDO DB schema compatible output into MySQL database. IDO DB schema compatible output into MySQL database.
@ -448,8 +437,7 @@ Cleanup Items:
servicechecks_age |**Optional.** Max age for servicechecks table rows (start_time) servicechecks_age |**Optional.** Max age for servicechecks table rows (start_time)
systemcommands_age |**Optional.** Max age for systemcommands table rows (start_time) systemcommands_age |**Optional.** Max age for systemcommands table rows (start_time)
LiveStatusListener ### LiveStatusListener
------------------
Livestatus API interface available as TCP or UNIX socket. Livestatus API interface available as TCP or UNIX socket.
@ -481,55 +469,65 @@ Attributes:
> >
> UNIX sockets are not supported on Windows. > UNIX sockets are not supported on Windows.
StatusDataWriter ### StatusDataWriter
----------------
TODO Periodically writes status data files which are used by the Classic UI and other third-party tools.
Example: Example:
TODO library "compat"
object StatusDataWriter "status" {
status\_path = "/data/status.dat",
objects\_path = "/data/objects.path"
}
Attributes: Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
status\_path |TODO status\_path |**Optional.** Path to the status.dat file. Defaults to IcingaLocalStateDir + "/cache/icinga2/status.dat".
objects\_path |TODO objects\_path |**Optional.** Path to the objects.cache file. Defaults to IcingaLocalStateDir + "/cache/icinga2/objects.cache".
ExternalCommandListener ### ExternalCommandListener
-----------------------
TODO Implements the Icinga 1.x command pipe which can be used to send commands to Icinga.
Example: Example:
TODO library "compat"
object ExternalCommandListener "external" {
command\_path = "/data/icinga2.cmd"
}
Attributes: Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
command\_path |TODO command\_path |**Optional.** Path to the command pipe. Defaults to IcingaLocalStateDir + "/run/icinga2/icinga2.cmd".
CompatLogger ### CompatLogger
------------
TODO Writes log files in a format that's compatible with Icinga 1.x.
Example: Example:
TODO library "compat"
object CompatLogger "my-log" {
log\_dir = "/data/compat-log",
rotation\_method = "HOURLY"
}
Attributes: Attributes:
Name |Description Name |Description
----------------|---------------- ----------------|----------------
log\_dir |TODO log\_dir |**Optional.** Path to the compat log directory. Defaults to IcingaLocalStateDir + "/log/icinga2/compat".
rotation\_method|TODO rotation\_method|**Optional.** Specifies when to rotate log files. Can be one of "HOURLY", "DAILY", "WEEKLY" or "MONTHLY". Defaults to "HOURLY".
CheckResultReader ### CheckResultReader
-----------------
TODO TODO
@ -543,8 +541,7 @@ Attributes:
----------------|---------------- ----------------|----------------
spool\_dir |TODO spool\_dir |TODO
CheckerComponent ### CheckerComponent
----------------
TODO TODO
@ -554,8 +551,7 @@ Example:
object CheckerComponent "checker" { } object CheckerComponent "checker" { }
NotificationComponent ### NotificationComponent
---------------------
TODO TODO
@ -565,8 +561,7 @@ Example:
object NotificationComponent "notification" { } object NotificationComponent "notification" { }
ClusterListener ### ClusterListener
---------------
TODO TODO
@ -584,8 +579,7 @@ Attributes:
bind\_port |TODO bind\_port |TODO
peers |TODO peers |TODO
Endpoint ### Endpoint
--------
Endpoint objects are used to specify connection information for remote Endpoint objects are used to specify connection information for remote
Icinga 2 instances. Icinga 2 instances.
@ -606,4 +600,18 @@ Attributes:
node |**Required.** The hostname/IP address of the remote Icinga 2 instance. node |**Required.** The hostname/IP address of the remote Icinga 2 instance.
service |**Required.** The service name/port of the remote Icinga 2 instance. service |**Required.** The service name/port of the remote Icinga 2 instance.
config\_files |TODO config\_files |TODO
accept\_config |TODO accept\_config |**Optional.** A list of endpoint names from which this endpoint accepts configuration files.
### Domain
TODO
Example:
TODO
Attributes:
Name |Description
----------------|----------------
acl |TODO

View File

@ -40,6 +40,10 @@
padding-left: 20px; padding-left: 20px;
} }
#toc .toc-h4 {
padding-left: 30px;
}
#toc .toc-active { #toc .toc-active {
background: #336699; background: #336699;
box-shadow: inset -5px 0px 10px -5px #000; box-shadow: inset -5px 0px 10px -5px #000;