Smokeping auf Debian Wheezy mit Nginx

http://blog.imitran.com/2013/08/smokeping-on-nginx/

Wenn man davon ausgeht, dass Nginx schon installiert ist und man Smokeping in einem Unterverzeichnis seiner Domain haben möchte (domain.com/smokeping) muss man nur folgendes tun:

apt-get install smokeping sendmail

Das wird Apache gleich mitinstallieren, das schmeißen wir anschließend direkt wieder runter mit:

apt-get remove --purge apache*

Nachdem Apache nun wieder restlos entfernt wurde können wir uns Smokeping widmen. Smokepings Interface ist ein CGI-Script, weshalb wir das Paket fcgiwrap brauchen um mit Nginx das Interface darstellen zu können.

apt-get install fcgiwrap

Dann kopieren wir die fcgiwrap Konfigurationsdatei für Nginx in den Nginx Config Ordner:

cp /usr/share/doc/fcgiwrap/examples/nginx.conf /etc/nginx/fcgiwrap.conf

Das macht CGI-Scripte im Allgemeinen ausführbar mit Nginx. Im wesentlichen wird die /cgi-bin/ Location damit „verlinkt“. Diese Config wird abschließend noch in dem Host, auf dem man Smokeping nutzen möchte aktiviert, indem man folgende Zeilen einfügt. Alternativ kann man diese Zeilen auch in die nginx.conf direkt einfügen und sich den vorigen cp-Command sparen.


include /etc/nginx/fcgiwrap.conf;
location ~ \.cgi$
{
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}

Nun noch 2 Symlinks um den Smokeping Interface Ordner im www-Verzeichnis für Nginx verfügbar zu machen:

ln -s /usr/share/smokeping/www /var/www/smokeping
ln -s /usr/lib/cgi-bin/smokeping.cgi /usr/share/smokeping/www/smokeping.cgi

Und da jetzt die URL bei Aufruf von /smokeping noch korrekt umgeleitet werden soll in der Nginx Config für den Host folgende Zeilen einfügen:

location /smokeping/ {
index smokeping.cgi;
gzip off;
}

Am besten alles einmal neu starten und los gehts mit domain.com/smokeping. Konfigurationshilfe gibt es dann im Wiki bei Andreas Laub. Viel Spaß!