Dexor is proud to be an official partner of Icinga since 2018. Over the years, the Icinga2 Fundamentals training content has evolved into a well-structured and solid material that is easy to understand. In turn, the practical tasks on each covered aspect of Icinga reinforce the theory on each chapter of the training. As icinga2 is an extremely flexible tool, the conveyance of best practices helps in designing and implementing very efficient monitoring systems. After the training, participants leave with a solid understanding of monitoring concepts with icinga2.
In 2021, the official training material has been significantly revised. The focus of the training has been shifted from the traditional way of configuring Icinga – using configuration files – to configuring using Icinga Director. This approach is currently considered the most efficient way of monitoring for general purposes. However, this does not mean that training is useless for those engineers who already have a configuration files-based setup of icinga2. Almost every object we will create in the Director will be shown a corresponding structure in Icinga’s DSL.
Let’s take a look at the contents of the training in more detail.
Content of the Icinga2 Fundamentals training
Introduction & Setup
To make the acquisition of the training material easy and smooth, we will start our journey with the basic configuration of icinga2. We will learn the relationship between the basic components of Icinga as a system. We will write from scratch the absolute minimum main configuration file of icinga2. And we will configure the very first API user. We will learn the basic syntax of the icinga2 configuration language and do the basic configuration of icingaweb2 and Icinga Director.
We will create all the necessary objects to meet the best practices for adding hosts to the monitoring system. We will define the objects Host, Host Templates; Data Lists and Data Fields for providing custom variables; and discover the possibilities of their interrelationship and binding. At this point, we will work with Apply Rules for the first time.
Plugins in the Icinga universe are executable files that reside on hosts to which a monitoring system has access. We will look at the general agreements on the behavior of plugins and perform some checks manually. Finally, we will install a third-party plugin and create our own one.
After defining what a service in Icinga terminology is, we will create service templates and bind them to the host using Apply Rules. At this point, we will create a complex assignment expression for Apply Rules, which will show us the flexibility of this approach.
Since a Check Command is a description of a plugin for icinga2, we will learn how to define one using the features provided by the Director. For Check Commands, as well as for Hosts and Services, we will make intensive use of the Icinga documentation in the tutorial to enable you to develop complex constructions yourself. For Check Commands and Services this is of particular importance as we will be using the Icinga Template Library (ITL) to create almost all objects.
Agent Based Monitoring
We define an Icinga cluster – a master and agents (the cluster also contains so-called satellites, but working with them is part of the Icinga Advanced Training). In general, a monitoring system must be able to perform our checks over the whole monitoring system we have defined. For interconnection of the Icinga application, we establish a secure connection using SSL. To do this we will look a little at the basic concept of SSL.
To get a complete picture of the monitoring infrastructure, we will define the basic objects of the monitoring system layer: Endpoints and Zones. We will learn and practice setting up master-agent relationships for Linux-Linux and Linux-Windows pairs. We will also learn the basics of using the icinga2 agent as a remote node and as a bridge to command execution.
Icinga Master can only be installed on Linux OS, but icinga2 Agent can also be installed on Windows. In 2021, the Icinga team released a revised Icinga for Windows and additional Powershell components. The installation of the icinga2 agent and the configuration of the basic checks are the subject of the training.
Monitoring the monitoring system itself is the essential skill of a good monitoring engineer. We will use a systems approach to understand which components we need to monitor for agents and for the master on the hosts.
A check can be in a hard state or a soft state. We will learn the conditions for the typical state transitions and how to change them for certain checks. And when a check indicates a warning or critical state. What to do then? Besides the obvious option of fixing the problem, we will also consider other response options, such as acknowledgments or, for planned maintenance, downtimes.
Monitoring via the Simple Network Management Protocol (SNMP) opens the door to monitoring almost all network devices in your infrastructure. As part of the training, we will enable monitoring via SNMP in the lab.
Do you have your own system that can deliver check results by itself? That’s no problem at all. With a passive check result, you can deliver it directly to icinga2. We show you all the basic options for providing a passive check to your services.
This is one of the most important aspects of monitoring. In icinga2 we have a very tangible way of notifications to avoid an overflux of notifications or infrequent notifications. To get you familiar with this, we learn many best practices on how notifications need to be issued. We consider a guide on how to escalate notifications and perform many practices to configure your test notification system.
A proper configuration of Dependencies helps to avoid a notification storm if a key element of some major branch of your infrastructure fails. So we will learn how to define a hierarchy of the checks so as not to overwhelm a monitoring engineer with tons of alerts and only display the right ones.
Business Process is not a part of icinga2 – it is a module of Icinga Web 2. This is a very powerful module that allows translating technical checks like memory, storage, open ports, and running MySQL services into an eloquent presentation of checks for a management staff for example. This makes it easy to examine the entire application with a top-down approach to easily identify broken elements. We learn the basic syntax of business processes and how it is implemented at the system level.
Icinga Web 2
Although we have been actively using Icinga Web 2 in the tutorial, there are still some undiscovered aspects that we will learn by the end of the training. For example, a command-line interface for Icinga Web 2 allows us to manage modules and check the state of the system without accessing the web GUI. Or the definition and modification of dashboards. We will see how the Icinga Web 2 application extends its menu with custom entries. We learn how host and service actions extend the application with a custom activity that will express your needs in a convenient way.
Long stroy short
After completing an Icinga Fundamental training course, an engineer will be able to deploy a monitoring system Icinga2. He will be equipped with all the necessary knowledge to pass the way from connecting an endpoint to Icinga to creating essential Icinga objects such as commands, services, hosts, and their templates. According to the business requirements, the former participant will be able to configure all the necessary notifications and dependencies. He will have enough knowledge to cover the entire infrastructure with monitoring including network devices (via SNMP) and servers, regardless of whether they are running Linux or Windows.
Dexor and Icinga
We at Dexor love monitoring and love working with icinga2. Take a look at our blog where you will find some valuable information for your monitoring. For example, here you can read a slightly simplified overview of the basic monitoring components. Under that tag icinga, you can find what else we have about this monitoring system.
If you would like to attend an Icinga Fundamentals training online or onsite and there is no information about an upcoming event from Dexor – just drop a message in the contact form. We will find a solution for everyone.
Training is available in English, German, Russian and Ukrainian language.