Icinga 2 & Openindiana
Hierbei handelt es sich um einen alten Artikel aus dem Archiv, den ich lediglich der Vollständigkeit halber hier im Blog eingliedere.
- What’s this all about?
-
Icinga 2 on Openindiana
- Install some dependencies
- Preparing Git
- Local package repository
- Branch icinga2-2.10.2
- Building the package
- Cleaning up everything
- Installing required packages and preparing the environment
- Building the software and creating sample manifest
- Generate dependencies
- Tests
- Pre-publish
- Publish
- Using this userland repo
- And finally: install the package!
- Building the check plugins
What’s this all about?
In this howto I’ll try to cover the aspects to get Icinga 2 client core up and running on an Openindiana host. I did not take care about database integration, so if you’re willing to use Icinga 2 as a master on Openindiana you’re on your own – it’s probably not that complicated, but who knows?
Build process is based on oi-userland 2
, but unfortunately Icinga 2 still isn’t a verified component there; I have too few testers to confirm the resulting package as valid… My goal would be to get it in the official oi-userland
- meanwhile you
- either have to check out
oi-userland
and do it on your own or - you have to checkout my fork with
icinga2
branch – your choice
So let’s start building the icinga2
package on Openindiana. Use this howto on your own risk.
- I wrote it based on
illumos-9b40c3052b
- it’s also tested for
illumos-68d7704518
- it’s verified on a freshly installed
illumos-022bfefbca
I’m running it in production since 02/2018 without any issues, so it might be suitable for you, too.
Icinga 2 on Openindiana
Install some dependencies
You should build your packages as root
as anything else is just annoying.
$ pkg install build-essential boost libyajl2
Preparing Git
Now prepare the environment: you are invited to use my fork on GitHub.
$ mkdir /scratch
$ cd /scratch
$ git clone https://github.com/sysadmama/oi-userland.git
Local package repository
$ cd /scratch/oi-userland/components
$ gmake setup
This creates /scratch/oi-userland/i368/repo
for later package installation use.
Branch icinga2-2.10.2
$ cd /scratch/oi-userland/
$ git branch -a
* oi/hipster
remotes/origin/HEAD -> origin/oi/hipster
remotes/origin/feature_icinga2-2.10.2
remotes/origin/oi/hipster
remotes/origin/unleashed
remotes/origin/upstream
$ git checkout -b icinga2 remotes/origin/feature_icinga2-2.10.2
Branch 'icinga2' set up to track remote branch 'feature_icinga2-2.10.2' from 'origin'.
Switched to a new branch 'icinga2'
Building the package
$ cd /scratch/oi-userland/components/sysutils/icinga2
Cleaning up everything
$ gmake clobber
Installing required packages and preparing the environment
$ gmake env-prep
$ gmake prep
Building the software and creating sample manifest
$ gmake sample-manifest
Now you’re able to vimdiff
and to update the component manifest if needed – but usually it isn’t
Generate dependencies
$ gmake REQUIRED_PACKAGES
If not provided at the end of the component Makefile
, the list of dependencies should be generated; usually not necessary in our context.
Tests
$ gmake test
Pre-publish
Check if the publication of the component can complete without actually publishing the package to the local repository.
$ gmake pre-publish
Publish
Everything was fine? Publish it to your /scratch/oi-userland/i386/repo
– now you can use it!
$ gmake publish
Using this userland repo
What are the currently used publishers?
$ pkg publisher
PUBLISHER TYPE STATUS P LOCATION
openindiana.org origin online F http://pkg.openindiana.org/hipster/
So we have to add our own repo:
$ pkg set-publisher -p file:///scratch/oi-userland/i386/repo
## Maybe needed: $ pkg set-publisher --non-sticky openindiana.org
$ pkg publisher
PUBLISHER TYPE STATUS P LOCATION
userland origin online F file:///scratch/oi-userland/i386/repo/
openindiana.org origin online F http://pkg.openindiana.org/hipster/
And when new builded packages are ready, refresh repo:
$ pkgrepo refresh -s /scratch/oi-userland/i386/repo/
$ pkgrepo rebuild -s /scratch/oi-userland/i386/repo/
And finally: install the package!
$ pkg search icinga2
$ pkg install icinga2
$ pkg info icinga2
Name: system/monitoring/icinga2
Summary: Icinga 2 - An open source host and network monitoring system
Category: Applications/System Utilities
State: Installed
Publisher: userland
Version: 2.10.2
Branch: 2018.0.0.0
Packaging Date: January 16, 2019 at 08:06:11 AM
Size: 367.47 MB
FMRI: pkg://userland/system/monitoring/icinga2@2.10.2-2018.0.0.0:20190116T080611Z
Project URL: https://github.com/icinga
Source URL: https://github.com/Icinga/icinga2/archive/v2.10.2.tar.gz
With icinga2.xml
I deliver a basic version for SVC. Let’s check ist.
$ svcs icinga2
STATE STIME FMRI
disabled 11:44:29 svc:/application/monitoring/icinga2:default
Disabled means: this service is not running. So let’s enable it.
$ svcadm enable icinga2
$ svcs icinga2
STATE STIME FMRI
online Jan_24 svc:/application/monitoring/icinga2:default
If you encounter issues when starting your daemon, take a look at the logfiles stored in /var/svc/log
– try tail -f application-monitoring-icinga2\:default.log
Building the check plugins
I found no way to get the check plugins into oi-userland
, and I tried several times… Spending enough time and with help from the mailing list it probably would be possible, but I didn’t follow this approach. So what I do it to build the nagios-plugins
completely by hand. But as you’ll see: this is not hard at all.
Wait - what? nagios-plugins?
I know the wars of monitoring-plugins
vs. nagios-plugins
, but I’m not interested in that. In fact, it’s not possible to compile monitoring-plugins
on OpenSolaris Hipster without accident. As I am not an developer – I can’t fix the source to get it running and it’s not my job – I decided to use a working alternative. Feel free to do it your way.
Getting source
Obtain latest source tarball, unpack and prepare it.
$ cd /usr/src
$ wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
$ tar xvfz nagios-plugins-2.2.1.tar.gz
$ cd nagios-plugins-2.2.1
Configure and build
Use a prefix you prefer – in fact there’s no need to have nagios
in that PATH
, but I usually keep it due to historical reasons.
$ ./configure \
--with-nagios-user=icinga \
--with-nagios-group=icinga \
--prefix=/usr/lib/nagios/plugins \
--libexecdir=/usr/lib/nagios/plugins \
--enable-perl-modules
$ gmake
$ gmake install && gmake install-root
And that’s it! 🙂 The plugins are installed under /usr/lib/nagios/plugins
as known from other systems, and they’re ready to use.
Hintergrundbild: Blick in meine Stiftebox, 2019, 1500x 1000px, Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten