Introduction

If you’re looking to install and configure Nagios, it’s worth looking at the Open Source fork called Icinga. Some brief history and a comparison of the two products can be found here.

This post will concentrate on getting a basic Icinga 1 Core with Classic web interface installation completed on a Raspberry Pi with Raspbian.

If you want to read up on the Icinga 1 architecture and where the Core product fits in, click here.

NOTE: while a lot of this is stated as Raspberry Pi specific it’s really just general Icinga 1 configuration on a Debian based system (e.g. Ubuntu).

I’ve refreshed this post based on ongoing experience with the Raspberry and Icinga 1.  I’ve made the IDO2DB module (explained later) optional and explained how to disable it if you’re already running it and want to test performance without it (as the IDO2DB MySQL interaction causes high CPU wait times on IO).

Core installation

By default installing Icinga will install the Exim4 MTA for mail notification functionality.  If you don’t want to use this ensure you install your preferred agent first.  I have another post here that covers configuring Exim.

Next let’s get the all the packages installed to get a basic Icinga 1 Core completed:

$ sudo apt-get update

$ sudo apt-get install icinga icinga-doc

Questions you’ll get asked during the installation:

  • Do you want to enable External Commands?
    External commands allow you to issue commands to Icinga from the core web interface.
    NOTE: Whichever you choose here, you can change in the future.
  • What web servers do you want to configure for Icinga: [apache2]
    NOTE: Ensure you use the space bar to place a check in the box labelled apache2.
  • Enter an Icinga web admin password and enter again to confirm.
    This will be used to log onto the interface as user icingaadmin

Wait around 5-10 minutes for the packages to be installed and set up.

View localhost Status

That is a very basic installation of Icinga 1 Core.  To view the Icinga 1 Classic UI, browse to:

http://<ip_address>/icinga/ using the username icingaadmin and your web admin password set earlier.

You should see the following on landing:

icinga1-core-rpi1

Click on Service Detail on the left hand side and you’ll be presented with the current monitored services on localhost:

icinga1-core-rpi2

NRPE [Optional]

If you plan to monitor remote Linux servers it’s worth installing the NRPE plugin basics (with no dependant packages) now.

$ sudo apt-get –no-install-recommends install nagios-nrpe-plugin

Date and Time Format [Optional]

By default short dates are displayed in iso8601 format (YYYY-MM-DD HH:MM:SS). If you wish to change this (you can change to us, euro or strict-iso8601) open the Icinga config file and change the date_format option:

$ sudo nano /etc/icinga/icinga.cfg

Press Ctrl+W to search, then type euro and press Return.

Change date_format to your selected date & time format.  Save the file and exit.

Restart the Icinga service:

$ sudo service icinga restart

IDO2DB configuration [Optional]

The IDOUtils allow Icinga to store all configuration and event data into a relational database (e.g. MySQL). While not essential for a basic installation it will allow you to immediately use other add-ons that rely on accessing data through a MySQL backend.

You can read more about IDOUtils here.

Let’s install MySQL and IDOUtils (Icinga Data Output Utils) to support this configuration.

$ sudo apt-get install icinga-idoutils mysql-server libdbd-mysql mysql-client

Questions you’ll get asked during the installation:

  • Password for the MySQL root user account.
  • Allow setup to Configure database for icinga-idoutils with dbconfig-common? [Yes]
  • Database type to be used by icinga-idoutils: [mysql]
  • Password of the database’s administrative user: [Enter your MySQL root user password from earlier]
  • Enter a MySQL application password for icinga-idoutils and enter again to confirm.
  • Wait another 5 mins for the installation to complete.

Enable the IDO2DB daemon and start it:

$ sudo nano /etc/default/icinga

Change : IDO2DB=no
To : IDO2DB=yes

$ sudo service ido2db start

To complete the IDO2DB configuration, enable the idomod module:

$ sudo cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfg

$ sudo service icinga restart

Wait a minute or so and then check your Icinga log to confirm IDOMOD successfully connected and initialized:

$ tail /var/log/icinga/icinga.log

Example snippet:
[1381521349] idomod: IDOMOD 1.7.1 (06-18-2012) Copyright(c) 2005-2008 Ethan Galstad, Copyright(c) 2009-2012 Icinga Development Team (https://www.icinga.org)
[1381521349] idomod: Successfully connected to data sink. 0 queued items to flush.
[1381521349] Event broker module ‘IDOMOD’ version ‘1.7.1’ from ‘/usr/lib/icinga/idomod.so’ initialized successfully.

Disable IDO2DB

If you’ve already got the IDO2DB module installed and want to disable it, you can do the following to disable the IDO2DB daemon and stop it:

sudo nano /etc/default/icinga

Change : IDO2DB=yes
To : IDO2DB=no

sudo service ido2db stop

To complete the IDO2DB removal, disable the idomod module and service check configuration file:

sudo rm /etc/icinga/modules/idoutils.cfg /etc/icinga/objects/ido2db_check_proc.cfg

sudo service icinga restart

You should notice the load on the Raspberry Pi drops significantly after disabling this module.

UPDATE: I had prepared another post covering the addition of the icinga-web interface but when I’d completed the steps on the Raspberry Pi the performance was almost unusable with the apache2 processes hogging all the CPU while the cronks were stuck at “loading” sometimes indefinitely. This appears to be related to the Raspberry Pi’s processing power but the classic interface is still quick and responsive so suits for now.

Updated (30/07/2014) – Reworked the article and republished.  Ensured the very basic installation of Icinga 1 was clear and other components marked as optional.

Some Icinga Core basics – Part One

Some Icinga Core basics – Part Two

Some Icinga Core basics – Part Three

Some Icinga Core basics – Part Four

Some Icinga Core basics – Part Five

Install pnp4nagios on Icinga 1 Classic UI (performance history and graphs)

 

Install Icinga 1 Core on the Raspberry Pi
Tweet about this on TwitterShare on Google+0Share on Facebook0Email this to someone
Tagged on:                 

17 thoughts on “Install Icinga 1 Core on the Raspberry Pi

  • Pingback: Some Icinga Core basics – Part One « geeklee's Notes

  • Pingback: Some Icinga Core basics – Part Three « geeklee's Notes

  • 11 June 2014 at 11:36
    Permalink

    Thank you for this post. Just a note that I have tried icinga-web and it does seem that the Pi just cant handle all the processing that needs to be done.

    Reply
    • 11 June 2014 at 11:39
      Permalink

      Hi – thanks for the feedback on the post and on icinga-web (it’s good to get confirmation on the latter!).

      The Icinga documentation is really good but if you want some quick starters to get going check out my other series of Icinga posts (Parts One to Five).

      Reply
  • 22 July 2014 at 15:07
    Permalink

    Hi, has there been an update since you wrote this? I’ve tried a couple of times but each time I’m getting a 404 error on the webpage and when I check the web server says there is no content.

    I’ve updated the packages and re run the install a few times but still no luck.

    Any hints appreciated. Cheers. David.

    Reply
    • 22 July 2014 at 15:30
      Permalink

      Hi DavidS – do you mean you’re getting issues with the icinga-web component mentioned above?

      Reply
  • 23 July 2014 at 12:44
    Permalink

    Not the new component as I didn’t install that, but when I browse to the Pi’s IP address and /icinga I get the 404 error.
    If I go to the Pi ip address I get a message from the Apache server saying;

    “It works!

    This is the default web page for this server.

    The web server software is running but no content has been added, yet.”

    I’m maybe being very dumb and missing something crucial. I followed the above instructions and it all seemed to install fine. Thanks for getting back to me.

    Reply
    • 23 July 2014 at 12:55
      Permalink

      OK, that’s good news on the root URL – getting the default apache2 page.

      Can you check /etc/apache2/conf.d/icinga.conf and look at the second line beginning ‘Alias’ – does this have the following?
      Alias /icinga /usr/share/icinga/htdocs

      If the Icinga service is stopped you shouldn’t get a 404 – you should still get prompted for credentials or a mix of Authorization Required and the left pane. Worth checking though with ‘sudo service icinga status’

      Lastly, can you have a look in /var/log/apache2/error.log and see what it says for the error against /icinga.

      Do you have anything else using apache2 on the Pi or was it already installed as part of something else?

      Reply
      • 23 July 2014 at 15:40
        Permalink

        forgot to say this is a clean install of both Raspbian and icinga as well as reply below which I put in a new post.

        Reply
  • 23 July 2014 at 15:29
    Permalink

    /etc/apache2/conf.d/icinga.conf does not exist on my system, confirmed by the error.log which syas File does not exist: /var/www/icinga

    Service is running.

    At what point does it create this file? I can look back over the install output and see if there’s something that failed.

    Reply
    • 23 July 2014 at 15:46
      Permalink

      I’d need to investigate further (although I think it’s icinga-common, so could maybe try a dpkg-reconfigure icinga-common) but does your installation have /etc/icinga/apache2.conf? If not were you asked which web servers you wanted to configure (see section above). I’ll fire up a fresh Pi build tonight and try to replicate.

      Reply
      • 23 July 2014 at 15:52
        Permalink

        yup, it has /etc/icinga/apache2.conf

        I was asked and chose the default apache

        Reply
        • 23 July 2014 at 17:03
          Permalink

          As a quick test you can do the following to create the symbolic link:

          $ cd /etc/apache2/conf.d
          $ sudo ln -s /etc/icinga/apache2.conf icinga.conf
          $ sudo service apache2 reload

          Try connecting in your browser again.

          I deleted and recreated this link successfully on an existing Pi but I don’t know if this is the only missing item in your installation as I’ve not seen it miss this before.

          As mentioned earlier, I’ll be firing up the Pi again later with a fresh build to run through the above.

          Reply
        • 23 July 2014 at 20:53
          Permalink

          I’ve spun up a new Raspbian build and run a few scenarios – I think I see what *might* have happened – when you were asked to select the web server did you place a check in the apache2 box or just hit Enter?

          When I built a scenario without the check, I didn’t get the symbolic link created or asked for the web admin password. The package to reconfigure properly is icinga-cgi :

          $ sudo dpkg-reconfigure icinga-cgi

          place a check (with the space bar) in the apache2 box and then hit Enter. Enter your Icinga web admin password and hit Enter.

          Reply
          • 24 July 2014 at 08:54
            Permalink

            aah, you know I tabbed between the options and tried a few keys but assumed that it would accept the highlighted option. Thank you, I haven’t tried it yet but it sounds like the solution.

            Thanks for taking the time to help. The articles look excellent.

          • 24 July 2014 at 09:02
            Permalink

            perfect! up and running. Thank you, now to work through the other basics. 🙂

          • 24 July 2014 at 21:18
            Permalink

            No problem, that’s great news 🙂 I’ll update the post to make that step clearer as well.

Leave a Reply

Your email address will not be published. Required fields are marked *