For the complete documentation index, see llms.txt. This page is also available as Markdown.

Icinga Integration

The ilert Icinga Integration helps you to easily connect ilert with Icinga.

Icinga is an open-source, scalable, and extensible monitoring system that checks the availability of your network resources, notifies users of outages, and generates performance data for reporting. With the ilert Icinga Notification Plugin, you can easily integrate Icinga with ilert and extend your existing Icinga with advanced alerting by SMS, phone calls, and push notifications as well as on-call schedules.

System requirements

  • Icinga 2.x.

  • Python >= 3.7 (alternatively Python >= 2.7.9, we suggest 2.7.10)

Are you using Icinga 1.x? Please refer to our Nagios integration guide.

In ilert: Create an Icinga alert source

  1. Go to Alerting → Alert sources and click Create new alert source.

  2. Search for Icinga, click its tile, and click Next.

  3. Give your alert source a name, optionally assign teams, and click Next.

  4. Choose who gets notified: select Use existing escalation policy and pick a policy, or Generate new escalation policy to start with a basic one that notifies you first. Click Next.

    The escalation step of the ilert alert source wizard, headed Who should be notified about alerts, with an escalation policy selected and a preview of its escalation rules below.
    Pick an existing escalation policy, or generate a basic one without leaving the wizard.
  5. Select Default grouping and click Continue setup. It groups events by the alert key the integration sets; the other grouping options are easier to judge once events are arriving.

  6. The next page shows more settings, such as notification priority and alert templates. Click Finish setup for now; you can change them later.

  7. On the final page, ilert shows the integration key and URL for this alert source. You will need them later in this guide.

In Icinga: Install notification plugin

  1. Download the ilert Icinga plugin and unzip it

  1. Move the plugin file ilert-icinga.py into the /usr/local/bin directory

The file must be executable by both Icinga and the cron daemon

  1. Open the plugin configuration file ilert-icinga.conf and paste the API Key in the pager field of the user definition, e.g.

  1. Copy the file to the Icinga configuration directory (varies depending on the installation)

  1. Optional: You can enable ilert as a notification contact using vars.notification.enable_ilert = true attribute in host and service definitions. To enable ilert for all hosts and services, add the attribute to the template /etc/icinga2/conf.d/templates.conf

  1. Edit the crontab file from the icinga user

  1. Add the following entry:

Via this cron job, events are sent to ilert every minute that failed in the first send attempt (e.g. due to a network error).

  1. Restart Icinga:

  1. After server restart you should see the ilert user in Icinga

FAQ

Which Icinga Notification Types are processed by the plugin?

The plugin processes the notification types PROBLEM , ACKNOWLEDGEMENT and RECOVERY . The notification types FLAPPING* and DOWNTIME* are ignored.

What happens if my internet connection is lost? Are the events generated in Icinga lost?

There are no events lost. Because the plugin stores the events locally in a temporary directory (by default in /tmp/ilert-icinga ) and tries to send them to ilert every minute. This means that as soon as your connection is available again, cached events will be sent to ilert. In addition, we recommend that you monitor your Internet connection using our Heartbeats feature.

Can I override the alert source default alert priority via the Icinga plugin?

Yes, use ICINGA_ILERTPRIORITY variable in the notification command template and set it to LOW or HIGH e.g.

Does the plugin also support Icinga 1.x?

No, you should use the ilert Nagios Integration.

The plugin does not work. How do I find the mistake?

Please look first in the log file. The plugin uses the Unix / Linux system log for logging (eg under /var/log/messages or /var/log/syslog ). If you can not find the error, please contact our support at support@ilert.com.

I received the following error: import urllib.request ImportError: No module named request. This error message indicates that you are using the Python 3 script with Python 2. Please make sure that you are using the correct Python 2 script:

Last updated

Was this helpful?