Smokeping unter Red Hat Linux
Hier eine Anleitung wie man unter Red Hat Linux bzw. CentOS das Tool Smokeping zum Laufen bekommt. Ich habe dies anhand eines Red Hat Linux 6 64bit durchgeführt.
Abhängigkeiten erfüllen
Es wird das EPEL Repository benötigt! Mehr Infos wie man dies nutzt findet man hier:
Zuerst müssen die Abhängigkeiten für smokeping installiert werden:
yum install httpd php php-common perl perl-CPAN perl-YAML rrdtool rrdtool-perl perl-libwww-perl perl-Socket6 perl-FCGI perl-CGI perl-Net-Telnet fping curl perl-Net-OpenSSH perl-Net-DNS perl-Test-Simple perl-CGI-SpeedyCGI perl-IO-Socket-SSL perl-LDAP
dann den apache Server in den Autostart befördern:
chkconfig httpd on
Nun noch ein paar PERL Module via cpan nachinstallieren:
cpan
dann im cpan:
Config::Grammar
Installation Smokeping
Das neuste Paket bekommt ihr hier:
cd /usr/src/
wget http://oss.oetiker.ch/smokeping/pub/smokeping-2.6.8.tar.gz
tar -xzvf smokeping-2.6.8.tar.gz
cd smokeping-2.6.8
./configure --prefix=/opt/smokeping
make install
ln -s /opt/smokeping/etc /etc/smokeping
mkdir /opt/smokeping/htdocs/cache
chmod 777 -R /opt/smokeping/htdocs/cache
mkdir /opt/smokeping/data
mkdir /opt/smokeping/var
chmod o-r /opt/smokeping/etc/smokeping_secrets.dist
Konfiguration
cd /opt/smokeping
cp bin/smokeping_cgi htdocs/smokeping.cgi
mv etc/config.dist etc/config
Ich werde hier nur auf die Basics eingehen, die Konfiguriert werden sollten, alle weiteren Einstellungen kann man in der Dokumentation von smokeping nachlesen:
/etc/smokeping/config
*** General ***
*** General *** owner = YOURName contact = yourmail@domain.tld mailhost = localhost imgcache = /opt/smokeping/htdocs/cache imgurl = cache cgiurl = http://YOURSERVERIP/smokeping/smokeping.cgi
*** Alerts ***
*** Alerts *** to = yourmail@domain.tld from = smokealert@hostname.tld
*** Probes ***
*** Probes *** + FPing binary = /usr/sbin/fping + DNS binary = /usr/bin/dig lookup = domain-to-lookup.com pings = 5 step = 180 + Curl # probe-specific variables binary = /usr/bin/curl step = 60 follow_redirects = yes include_redirects = yes # a default for this target-specific variable urlformat = http://%host%/
*** Targets ***
# Ping Tests + PING probe = FPing menu = Ping Tests title = Ping Tests ++ SERVER1 menu = Server1 title = Ping Latency Server1 host = server1.domain.tld # HTTP Tests + HTTP probe = Curl menu = HTTP Tests title = Ping Tests ++ SERVER1 menu = Server1 title = HTTP Latency Server1 host = server1.domain.tld # DNS Tests + DNS probe = DNS menu = DNS Latency title = DNS Latency ++ SERVER1 host = server1.domain.tld
Nun sollte noch das Smokeping CGI über den Apache verfügbar gemacht werden. Hierfür sollte man folgende Zeilen der Apache Konfiguration anhängen. Will man das Ganze nur für einen vhost verfügbar machen, sollte man dies in der Vhost Konfiguration einfügen, ansonsten kann man einfach eine Datei /etc/httpd/conf.d/smokeping.conf
mit dem folgenden Inhalt anlegen.
ScriptAlias /smokeping/smokeping.cgi /opt/smokeping/htdocs/smokeping.cgi Alias /smokeping /opt/smokeping/htdocs <Directory /opt/smokeping/htdocs> Options -Indexes ExecCGI FollowSymLinks AllowOverride all Order Deny,Allow Allow from all </Directory>
Anschließend muss der Apache neugestartet werden:
apachectl configtest
apachectl restart
Nun sollte unter folgender URL ein erster Preview möglich sein:
- http://IPorSERVERNAME/smokeping/smokeping.cgi
Test und Init Skript
Der erste Test kann nun wie folgt erfolgen, hier sollte nun einmalig ein smokeping Durchlauf stattfinden.
./bin/smokeping --config=/opt/smokeping/etc/config --debug
der folgende Aufruf startet smokeping
./bin/smokeping --config=/opt/smokeping/etc/config --logfile=smoke.log
Läuft alles wie gewollt, kann man das folgende INIT Script verwenden. Als vorlage diente hier das original INIT Script von Michel Tokic.
/etc/init.d/smokeping
nun noch in den Autostart und starten:
chkconfig --add smokeping
chkconfig smokeping on
/etc/init.d/smokeping start
mit dem folgenden Befehl kann der Autostart geprüft werden:
chkconfig --list smokeping
smokeping 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Die folgenden Optionen sind beim init Script verfügbar:
/etc/init.d/smokeping usage: /etc/init.d/smokeping (start|stop|restart|status|strace_debug|help) start - start smokeping stop - stop smokeping restart - restart smokeping if running or start if not running status - show status if smokeping is running or not help - this screen