icingabeat/docs/03-configuration.md
2017-12-22 13:11:42 +01:00

110 lines
3.0 KiB
Markdown

# 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:
``` c++
object ApiUser "icinga" {
password = "icinga"
permissions = ["events/*", "status/query"]
}
```
Learn more about the `ApiUser` and its permissions in the
[Icinga 2 docs](https://docs.icinga.com/icinga2/latest/doc/module/icinga2/chapter/icinga2-api#icinga2-api-permissions).
### `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:
```yaml
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:
```yaml
eventstream.filter: "event.check_result.exit_status==2"
```
Only check results of services that match `mysql*`:
```yaml
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](https://github.com/Icinga/icingabeat/blob/master/docs/fields.asciidoc) for details.