First steps with icinga, need help

Hi there,

I am new to Icinga, coming from nagios and I have some troubles to get a basic check running.

At the moment I have a Icinga2 master server installed with icingaweb2 and director.
I configured a new host (with a host template) and a new service (simple load check). Deployment to the host worked fine, on the host icinga2 is running.

But now I stuck and I can’t find any tutorial how to proceed from here (or at least a recent tutorial, because everything older than 1 year won’t work or do not apply anymore to director).
Where can I find results of of this check?
How do I add a dashlet for this? My dasboard is completly empty, saying:
" Currently there is no dashlet available. This might change once you enabled some of the available modules"

Which modules do I need?
Any help here for further reading/steps would be really appreciated.


First of all, welcome to the wonderful world of Icinga. :slight_smile:

You will need to enable the monitoring module in Icinga 2.

You can use icinga2 object list to see if your configuration is active. If it doesn’t return a list with your host and service than you might have missed a step.

You’ll find more hints at

If you can read German than you might enjoy the Icinga 2 book (affiliate link)

This has a step-by-step introduction on how to set up Icinga 2, Icinga Web 2 and Director.

1 Like

Thank you Thomas.

Enabling monitoring:
Ok, what do I need for this? A module “monitoring” is not listed Configuration/Modules. Do I need to install something here?

I already read the docs, but I might missed the chapter about this. Sorry if this is the case.

icinga2 object list:
This command dumps a few thousand lines of objects, with grepping the output I can find some endpoints of mine (both on my agent host and my master). So I assume my setup seems to work?

Thank you for book recommendation. But I am a bit hesitated to buy this. I am trying to get Icinga2 working for the last 2 days with every tutorial I found on the internet and everything I found was outdated and seems to work different now. Even the documentation for the director on github (working with agents) is not up to date. So I am not sure, if this is helping me at the moment if I stuck at getting a simple load (or ping) check working.

Ok, the long list in objects is a good thing. This means you already got a big bite of the way to go.

You can do all this by using the GUI, but CLI commands are easier to copy&paste, so here you go:

[root@monitor02 ~]# icingacli module enable monitoring
[root@monitor02 ~]# icingacli module list
director       master    enabled   Director - Config tool for Icinga 2
ipl            v0.1.1    enabled   The Icinga PHP library
monitoring     2.6.2     enabled   Icinga monitoring module
reactbundle    v0.4.1    enabled   ReactPHP-based 3rd party libraries
x509           1.0.0     enabled   Scan and view X.509 certificate usage

Note that this is from a testing environment. I wouldn’t use the master of Director but go for a release instead.

Another thing to check:

[root@monitor02 ~]# icinga2 feature list
Disabled features: command compatlog debuglog elasticsearch gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: api checker ido-mysql mainlog notification

You need an IDO connection for Icinga Web to work.

Thanks Thomas,

    icinga2 feature list
Disabled features: command compatlog debuglog elasticsearch gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: api checker ido-mysql mainlog notification


icingacli module enable monitoring
ERROR: Icinga\Exception\ConfigurationError in /usr/share/php/Icinga/Application/Modules/Manager.php:248 with message: Cannot enable module "monitoring". Module is not installed.

Icingacli module list
director       master    enabled   Director - Config tool for Icinga 2

So this is master, what is a recommended stable release? On github I see a tag v1.6.2 or branch support/1.6? Would that be better? I noticed both have been pushed 3 hours ago? Should I go for 1.5?

I just checked. says version 1.6.2 would be latest. I can try that

Use the latest release, please. In this case 1.6.2. The support branch is not for direct use, just for development. The developers keep master stable and react very fast to feedback if something is broken but in case you need support helping you to deal with problems aside from bugs, using a tested and known release helps a lot.

The monitoring module missing indicates that there’s something very wrong with your installation. It’s part of the icingaweb2 base package. You can’t install the package without this module. How did you install it and on which OS?

It is a Debian 9 (stretch), following this

apt-get install icingaweb2 icingacli

after adding the repository. Then this must be failure in packaging, because everything seems to work with the web GUI.

Edit: oh, and of course there was also an

apt install icinga2 (obviously)
apt install icinga2-ido-mysql

I didn’t use a snapshot here. My sources.list is for a release build:
deb icinga-stretch main
deb-src icinga-stretch main

These are my installed packages (if this helps):

dpkg -l | grep icinga
ii  icinga2                              2.10.2-1.stretch               amd64        host and network monitoring system
ii  icinga2-bin                          2.10.2-1.stretch               amd64        host and network monitoring system - daemon
ii  icinga2-common                       2.10.2-1.stretch               all          host and network monitoring system - common files
ii  icinga2-ido-mysql                    2.10.2-1.stretch               amd64        host and network monitoring system - MySQL support
ii  icingacli                            2.6.2-1.stretch                all          simple CLI tool for Icingaweb2 and its modules
ii  icingaweb2                           2.6.2-1.stretch                all          simple and responsive web interface for Icinga
ii  icingaweb2-common                    2.6.2-1.stretch                all          simple and responsive web interface for Icinga - common files
ii  php-icinga                           2.6.2-1.stretch                all          PHP library to communicate with and use Icinga
ii  vim-icinga2                          2.10.2-1.stretch               all          syntax highlighting for Icinga 2 config files in VIM

Could you list what’s in your /usr/share/icingaweb2/ directory? There has to be a modules directory which contains a monitoring directory. Maybe Apache has no access to this directory?

Any Debian people out there? @mfrosch , maybe?

This is all I have in this dir:

ls -al /usr/share/icingaweb2/modules
total 28
drwxr-xr-x  7 root root 4096 Mar  1 15:07 .
drwxr-xr-x  9 root root 4096 Feb 25 17:41 ..
drwxrwxr-x 10 root root 4096 Mar  1 15:07 director
drwxr-xr-x  4 root root 4096 Feb 25 17:41 migrate
drwxr-xr-x  5 root root 4096 Feb 25 17:41 setup
drwxr-xr-x  3 root root 4096 Feb 25 17:41 test
drwxr-xr-x  5 root root 4096 Feb 25 17:41 translation

I just tested the installation on Debian. It seems, there are far more packages there. There is a icingaweb2-module-monitoring package I don’t recognize from CentOS. My Debian testing system wants to install it right away. Maybe something is wrong with your dependency resolution on your box?

Since monitoring is only a module it is shipped in a separate package, which is only recommended.

When you install it you will be able to enable and configure it.

I found this just in this moment while doing an apt search icinga.

Installed it and I got the monitor plugin now.
Don’t know what was wrong. This is a fresh Debian install, didn’t change anything here.

Ok, fine, at least I have a monitor plugin, although I got exceptions everywhere, most of them saying “No backend has been configured”…

So, digging into this now…

Configuring the backend should have been a part of the initial Web wizard.

I’d say this would be far easier to set it up. You’ll end up with several files in /etc/icingaweb2/modules/monitoring/ and some extra configuration in other files. We can help you with writing them “manually” but rerunning the installation wizard with the monitoring module in place would be far more easily done.

Thank you again Thomas,

Right now I have to do a new and fresh install. ATM I got errors on almost every click, (“No objects found.”, although my API user can connect (tested with curl) and the director is looking for a master zone I don’t have, etc…

I will give it a last try before switching back to nagios. I am already spending too much time on getting the basics up and running. And I still bothering with the documentation (a hint for the Debian situation with a separate monitor package in the docs would have been great for instance).

Anyway, thank you guys for your help, it is really appreciated. :slightly_smiling_face:

You’re very welcome.

Ok, I might be a bit biased, but I’d not go back to Nagios. The codebase is almost dead and you will miss many features that will make you live easier when you are finally up and running. I have to admit that the first steps might be a bit hard because of the complexity but when it runs it runs. :wink:

I can imagine that you hit some new bug (we had a lot of fresh releases just recently) so maybe you are giving yourself a hard time without reason.

I don’t know what’s not working but I’ve done a lot of installation and even when it’s complex it shouldn’t take you days to get it up and running, especially when you have experience with Nagios. So I think there might be some nasty small problem that’s ruining the whole experience for you. But when that’s fixed you might be very happy you gave it another try.

Yeah, I know nagios is old and (sometimes) ugly. And I wanted something new and modern, this is why I even tried Icinga. Otherwise, nagios would be already running here and monitoring my servers.

It is not so much about features, I have a rather simple setup here:
A few web servers, 2 RDBs, a NoSQL, a postfix. Plus I have to write some checks on my own for our docker setup (these are very specific checks, e.g. how often did the container restart within an hour, etc). Over the time this might be hundred containers or so, but nothing special at all.

My far most obstacles here is the documentation (as said before). Maybe it is due to a lot of fresh releases recently. But while this might be great that this product is driven forward with a lot of development, having an outdated documentation is useless for a new user like me. Pretty sure, an experienced user can handle this.

As mentioned above, the docs for director / working with agents took me already a few hours, just to figure out, how to do it with the current release (this specific documentation page is from 2017!).

The missing monitoring package in Debian added some hours as well.
The auto-generated nginx configuration does not work with the routing of the web backend (I got very nice, animated 404 on every route, means it loads all the css, js, etc. but everything was a 404).
So I got back to apache although I would prefer a small nginx server over a huge apache monster.
And so on… Somehow I run into a lot of different problems here and it is sometimes a bit frustrating.

So, if I knew this before, I would have been using a Ubuntu server (maybe the monitoring module is part of the web package there) and I would have been using apache in first place, this would have saved me a day at least.

Tutorials on the internet older than a year are pretty much useless (at least when it comes to installation, initial setup/configuration). Not sure if your book is useful if the development is so fast.

Anyway, thank you for your help.
Have a great weekend. :slight_smile:

Did you save that one? Would be worth an issue on GitHub to improve the CLI tools.

In terms of the initial getting started guides, you’re not alone. We’re thinking about improved guides for specific simple “get going easily” tasks.

On a side note, the Icinga book abstracts things very well and is a good source for beginners and advanced monitoring people. Maybe not so much about the installation itself, this is a must for the projects documentation itself and it being outdated clearly is a bug (requiring an issue).