Skip to content

Configuration

Configuration of Icingabeat is split into 3 sections: Connection, Evenstream and Statuspoller. On Linux configuration files are located at /etc/icingabeat

Connection

Settings in this section apply to both modes.

host

Hostname of Icinga 2 API. This can be either an IP address or domain. Defaults to localhost

port

Defaults to 5665

user

Username to be used for the API connection. You need to create this user in your Icinga 2 configuration. Make sure that it has sufficient permissions to read the data you want to collect.

Here is an example of an API user in your Icinga 2 configuration:

object ApiUser "icinga" {
  password = "icinga"
  permissions = ["events/*", "status/query"]
}

Learn more about the ApiUser and its permissions in the Icinga 2 docs.

password

Defaults to icinga

ssl.verify

Configure SSL verification. If false is configured, all server hosts and certificates will be accepted. In this mode, SSL based connections are susceptible to man-in-the-middle attacks. Use only for testing. Default is true.

ssl.certificate_authorities

List of root certificates for HTTPS server verifications

Example:

ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]

Eventstream

Settings in this section apply to the eventstream mode. To disable the eventstream completely, comment out the section.

eventstream.types

You can select which particular Icinga 2 events you want to receive and store. The following types are available, you must set at least one:

  • CheckResult
  • StateChange
  • Notification
  • AcknowledgementSet
  • AcknowledgementCleared
  • CommentAdded
  • CommentRemoved
  • DowntimeAdded
  • DowntimeRemoved
  • DowntimeStarted
  • DowntimeTriggered

To set multiple types, do the following:

  eventstream.types:
    - CheckResult
    - StateChange
    - Notification
    - AcknowledgementSet
    - AcknowledgementCleared

eventstream.filter

In addition to selecting the types of events, you can filter them by attributes using the prefix event.. By default no filter is set.

Examples

Only check results with the exit code 2:

  eventstream.filter: "event.check_result.exit_status==2"

Only check results of services that match mysql*:

  eventstream.filter: 'match("mysql*", event.service)'

eventstream.retry_interval

On a connection loss Icingabeat will try to reconnect to the API periodically. This setting defines the interval for connection retries. Defaults to 10s

Statuspoller

Settings of this section apply to the statuspoller mode.

statuspoller.interval

Interval at which the status API is called. Set to 0 to disable polling. Defaults to 60s

Fields

Icingabeat exports a bunch of fields. Have a look to the fields.asciidoc for details.