HeikoBornholdt / uberspace-icinga

Anleitung zum Betrieb von Icinga auf einem Uberspace
17 stars 4 forks source link

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 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