/uberspace-icinga

Anleitung zum Betrieb von Icinga auf einem Uberspace

Icinga auf einem Uberspace betreiben

Diese Anleitung beschreibt die Installation von Icinga innerhalb eines Uberspaces.

Installation

Zuerst wird der Quelltext auf dem Uberspace herunterladen und anschließend entpackt:

mkdir ~/src
cd ~/src/
wget https://github.com/Icinga/icinga-core/releases/download/v1.11.7/icinga-1.11.7.tar.gz
tar xzf icinga-1.11.7.tar.gz

cd icinga-1.11.7/
./configure --prefix=/home/$USER/opt/icinga \
--with-icinga-user=$USER \
--with-icinga-group=$USER \
--with-command-user=$USER \
--with-command-group=$USER \
--with-web-user=$USER \
--with-web-group=$USER \
--with-httpd-conf=/home/$USER/opt/icinga/etc/apache2 \
--with-init-dir=/home/$USER/opt/icinga/etc/init.d \
--with-cgiurl=/cgi-bin/icinga \
--disable-idoutils

Trotz des angegebenen Benutzers/der angegebenen Gruppe müssen wir noch händisch die Datei Makefile anpassen.

In Zeile 58, bei INIT_OPTS muss root gegen den eigenen Benutzer-/Gruppennamen ausgetauscht werden.

sed -i "/^INIT_OPTS=/s/root/$USER/g" Makefile

Jetzt müssen noch ein paar Verzeichnisse/Symlinks erstellt werden, damit die Dateien direkt in den vorgesehenen Verzeichnissen landen:

mkdir -p ~/opt/icinga/var/{rw,lock}
mkdir -p ~/opt/icinga/etc/{apache2,init.d}
mkdir /var/www/virtual/$USER/html/icinga
mkdir /var/www/virtual/$USER/cgi-bin/icinga
ln -s /var/www/virtual/$USER/cgi-bin/icinga ~/opt/icinga/sbin
ln -s /var/www/virtual/$USER/html/icinga ~/opt/icinga/share

Jetzt können wir Icinga kompilieren:

make all
make fullinstall

Im Falle einer Neuinstallation muss die Konfigration erzeugt werden:

make install-config

Damit suEXEC die Ausführung der .cgi-Dateien nicht verweigert, müssen deren Zugriffsrechte angepasst werden:

chmod -R 755 /var/www/virtual/$USER/cgi-bin/icinga

Nun muss die Datei /home/$USER/opt/icinga/etc/icinga.cfg angepasst werden:

use_syslog ist dabei auf 0 zu setzen

sed -i '/use_syslog=1/s/1/0/' /home/$USER/opt/icinga/etc/icinga.cfg

/home/$USER/opt/icinga/etc/init.d/icinga benötigt ebenfalls eine Anpassung:

IcingaLockDir ist dabei auf ${prefix}/var/lock/subsys zu setzen.

sed -i '/^IcingaLockDir=/s/=/=${prefix}/' /home/$USER/opt/icinga/etc/init.d/icinga

Nun wird die Weboberfläche von Icinga noch gegen unbefugte Zugriffe abgesichert. Damit deine Zugangsdaten nicht unverschlüsselt übertragen werden, wird SSL forciert:

htpasswd -s -c /var/www/virtual/$USER/html/icinga/.htpasswd icingaadmin
cat <<__EOF__ > /var/www/virtual/$USER/html/icinga/.htaccess
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

AuthName "Icinga Access"
AuthType Basic
AuthUserFile /var/www/virtual/$USER/html/icinga/.htpasswd
Require valid-user
__EOF__

Die CGI-Skripte von Icinga sollten auch geschützt werden:

cp /var/www/virtual/$USER/html/icinga/.htaccess /var/www/virtual/$USER/cgi-bin/icinga/

Jetzt noch Icinga ausführbar machen:

chmod +x ~/opt/icinga/etc/init.d/icinga 

Icinga selber ist nun fertig installiert und kann auch schon gestartet werden:

  • Icinga-Konfiguration prüfen: ~/opt/icinga/etc/init.d/icinga checkconfig
  • Icinga steuern: ~/opt/icinga/etc/init.d/icinga {start|stop|restart|reload|force-reload|status|checkconfig|show-errors}

Icinga ist nun unter der URL https://USERNAME.HOSTNAME.uberspace.de/icinga/ erreichbar.

Damit Icinga beim Neustart des Servers ebenfalls mitgestartet wird, muss ein daemon eingerichtet werden. Das run-Skript kann dabei wie folgt aussehen:

#!/bin/sh

# These environment variables are sometimes needed by the running daemons
export USER=DEIN_USERNAME
export HOME=/home/DEIN_USERNAME

# Include the user-specific profile
. $HOME/.bash_profile

# Now let's go!
exec ~/opt/icinga/bin/icinga ~/opt/icinga/etc/icinga.cfg 2>&1

Nagios Plugins

Die ganzen Skripte mit den Prüfroutinen (check_xyz) müssen separat installiert werden:

cd ~/src/

wget wget https://www.nagios-plugins.org/download/nagios-plugins-2.0.tar.gz
tar xzf nagios-plugins-2.0.tar.gz

cd nagios-plugins-2.0/
./configure --prefix=/home/$USER/opt/icinga \
--with-nagios-user=$USER \
--with-nagios-group=$USER 

make
make install

NRPE

Wer andere Server via NRPE überwachen möchte benötigt check_nrpe:

cd ~/src/
wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz/download -O nrpe-2.15.tar.gz
tar xzf nrpe-2.15.tar.gz

cd nrpe-2.15/
./configure --prefix=/home/$USER/opt/icinga \
--with-nagios-user=$USER \
--with-nagios-group=$USER \
--with-nrpe-user=$USER \
--with-nrpe-group=$USER

make
make install