Skip to main content
Eric Zillmann
Automatisches Monitoring mit Icinga

Anyone who works with websites or other digital products knows how important it is to constantly monitor functions and performance. Feature failures or excessively long loading times due to technical errors or overload can sometimes be critical for the entire company. An admin would theoretically have to monitor the functionalities all day long. Various automatic monitoring services are available to support developers and system administrators. We at arocom use Icinga.

Contents

What is Icinga?

Icinga is an open source monitoring tool. It collects status data, evaluates it and if a critical status is reached, this can be communicated via various channels. For example, the loading time of a website: fluctuations are normal. As long as the loading time fluctuates within a predefined range, Icinga registers this, but no message is sent to the administrator. However, if the loading time rises above a critical value (also defined in advance) or the website is no longer accessible, Icinga notifies the admin via one of the channels such as email, SMS, Slack, Skype or a ticket system.

In principle, the tool can be used for anything that can be accessed via a computer - from web servers to networked coffee machines (keyword: Internet of Things). There are now a large number of interfaces to various systems, meaning that Icinga can be used simultaneously for several different projects with one account.

Icinga is a so-called Fork1 of Nagios, which brings many new features and is partially compatible with the original tool.

Fork bei Nagios und Icinga

A major advantage is that Icinga and Nagios are widely used, solid tools for which there are already a large number of freely available tests that can be used to check functionalities. As the tools are compatible with various programming languages (compiled C, shell scripts, Perl and Python, to name but a few), they can easily be extended with your own tests.

What does the user interface look like?

The Icinga user interface (version 2) looks like this by default:

Benutzeroberfläche von Icinga

Test results can be accessed via the navigation on the left. The dashboard is configurable to give the admin a quick overview of the active projects. The colored elements allow problems to be found quickly and the situation to be assessed easily: Successful tests are represented by green entries. Errors are marked in red and the status of purple entries could not usually be queried.

In addition, details can be displayed to further narrow down the problem and finally solve it.

Icinga offers the option of monitoring several projects within one user interface. This is particularly useful when working with many projects and saves a lot of time and work for the admin.

How does Icinga work?

Informationsfluss bei Icinga

The illustration shows how information is forwarded with Icinga or Nagios: Objects (e.g. web servers, routers or application servers) are connected to the tool via interfaces. Active Checks are tests that originate from Icinga and are executed on the objects. The results are then sent back to the tool. The admin can define the frequency at which the tests are executed. Passive checks are carried out by other, external applications. If a predefined status (usually critical) is reached, Icinga sends this status to the admin, e.g. via the browser, as an SMS or as an email. Depending on the plugin, other messaging services or display tools can also be used. At arocom, we use e-mail and Slack. This enables us to guarantee fast and reliable processing of errors.

What does arocom use Icinga for?

As a Drupal agency, we have many web projects running in parallel and also operate our own servers. With Icinga, we have a tool that supports our developers in their daily work and allows us to find errors before our customers notice them. Among other things, we use it to check whether:

  • Our web servers are accessible
  • Backups are created
  • Deployments are possible2
  • websites have been compromised
  • Cron is executed3
  • Drupal reports problems
  • Google anonymization is switched on
  • There are more errors in the logs
  • And much more.

Further tests, such as checking a content setting in Drupal and uploading a file in a web form, are also carried out with it. If our customers have special requirements, we can also write new tests for them.

Configuration

Depending on the size, type and number of projects, Icinga can be freely configured to provide the admin with the best possible support. The configuration of Icinga is located by default under /etc/icinga2 or /etc/icinga2/conf.d. It consists of

  • Commands (test commands)
  • Notifications (various notification options)
  • Hosts and their services
  • groups
  • templates
  • Users (to whom the notifications are sent)

This makes the tool very powerful and flexible. Subdirectories can be created for the clean separation of your own configurations. This is useful, for example, if different servers are operated. This allows the admin to carry out targeted tests and filter or sort results in order to obtain an optimal overview of all running processes.

Using Icinga

In addition to the option of setting up monitoring yourself, there are of course also service providers who offer this. If you have little experience with the use of configuration files and services, a service provider is recommended, at least at the beginning.

If you are interested in monitoring your digital project, please contact us. We will find the optimal solution for you.

Footnotes:

1 Fork: If a project is released as open source and third parties wish to make changes, but the original developer no longer works on this project, you can make a copy of the current status and continue to develop the project yourself. This results in a fork of the project, whereby both versions (can) continue to exist.

2 Deployment / software distribution: Software deployment is the targeted transfer of software or software updates to all computers working with this software or to all computers involved in an operational process. (https://www.itwissen.info/deployment-Softwareverteilung.html)

3 Cron: Cron is a service that can automatically start scripts and programs at predefined times. Drupal itself also contains a cron system which can be used for Drupal tasks such as the automated regeneration of the XML sitemap. Drupal Cron can be executed via System Cron.