Install Icinga with MySQL and IDOUtils on FreeBSD
It’s not hard to install Icinga on FreeBSD, at least if you’re satisfied with default options.
Should you however require Icinga with IDOUtils and MySQL support, then you need to take additional steps.
Note: This howto requires a patch to your FreeBSD ports tree. The patch has been submitted to the FreeBSD port maintainers. I hope that it will eventually end up in the ports tree.
My initial readings about this was on the official Icinga docs covering installing Icinga on FreeBSD with IDOUtils.
However, as it turned out, the docs our a bit outdated, and yet do not reflect a way of doing the install using ports.
So here’s just a short primer on what I did do install Icinga from ports, imposing as little additional work four you, my fellow reader, as well 😉
Now let’s turn to Icinga, which has a port on it’s own, which you’ll find it at /usr/ports/net-mgtm/icinga. First change to that directory.
cd /usr/ports/net-mgtm/icinga
Now download the patch file I made into your ports directory.
The patch will inject a new rc-script for ido2db and enable your port to build IDOutils.
[root@localhost /usr/ports/net-mgmt/icinga]# fetch http://phaq.phunsites.net/files/2012/01/patch_icinga_1.5.1_idoutils_fbs_port.txt
Then apply the patch like this:
[root@localhost /usr/ports/net-mgmt/icinga]# patch -p0 < patch_icinga_1.5.1_idoutils_fbs_port.txt Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- Makefile.org 2012-01-28 16:36:46.000000000 +0000 |+++ Makefile 2012-01-28 17:51:38.000000000 +0000 -------------------------- Patching file Makefile using Plan A... Hunk #1 succeeded at 27. Hunk #2 succeeded at 109. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |--- /dev/null 2012-01-28 18:00:51.000000000 +0000 |+++ files/ido2db.in 2012-01-28 18:00:30.000000000 +0000 -------------------------- (Creating file files/ido2db.in...) Patching file files/ido2db.in using Plan A... Hunk #1 succeeded at 1. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |--- files/pkg-message.in.org 2012-01-28 17:48:37.000000000 +0000 |+++ files/pkg-message.in 2012-01-28 17:49:38.000000000 +0000 -------------------------- Patching file files/pkg-message.in using Plan A... Hunk #1 succeeded at 4. done
Now you’re ready to configure the port:
[root@localhost /usr/ports/net-mgmt/icinga]# make config
Note the now IDOUtils option that now has appeared. Check it to enable IDOUtils.
Then compile and install as usual. The port will install also all required dependies, two of them being mysql55-client and libdbi-drivers, both to be found at /usr/ports/databases.
[root@localhost /usr/ports/net-mgmt/icinga]# make install clean
Afterwards, you should end up with a few additional files, which would not be installed with the stock FreeBSD port.
[root@localhost /usr/ports/net-mgmt/icinga]# ls -l /usr/local/bin/ido* -rwxrwxr-- 1 root wheel 238326 Jan 28 16:53 /usr/local/bin/ido2db -rwxrwxr-- 1 root wheel 80419 Jan 28 16:53 /usr/local/bin/idomod.o [root@mgmp-bs01 /usr/ports/net-mgmt/icinga]# ls -l /usr/local/etc/rc.d/ido2db -r-xr-xr-x 1 root wheel 738 Jan 28 18:00 /usr/local/etc/rc.d/ido2db
Now you can enable Icinage and IDO2DB in /etc/rc.conf by adding these lines:
icinga_enable="YES" ido2db_enable="YES"
Of course, you still need to perform the usual Icinga configuration steps, which are not covered in this post.
Please check with the official docs for this procedure.
If your configuration is proper, you should notice this in your logs indicating that IDOMOD (IDOUtils) is really working.
[1327773651] Icinga 1.5.1 starting... (PID=95448) [1327773651] Local time is Sat Jan 28 18:00:51 UTC 2012 [1327773651] LOG VERSION: 2.0 [1327773651] idomod: IDOMOD 1.5.1 (09-09-2011) Copyright (c) 2005-2008 Ethan Galstad (nagios@nagios.org), Copyright (c) 2009-2011 Icinga Development Team (http://www.icinga.org)) [1327773651] idomod: Successfully connected to data sink. 26 queued items to flush. [1327773651] idomod: Successfully flushed 26 queued items to data sink. [1327773651] Event broker module '/usr/local/bin/idomod.o' initialized successfully. [1327773651] Finished daemonizing... (New PID=95450)
That’s it, you conquered the beast!