| Kategorie Netzwerktechnik - Forum Wettbewerb [2. Platz] SmokePing mit Slackware Linux 10
geschrieben am 11.06.2006 um 23:47 von puppet SmokePing mit Slackware Linux 10.x
 Da SmokePing auf der Hauptseite ja schon angesprochen wurde aber noch nichts genaueres zur (für Einsteiger nicht gerade einfachen) Installation gesagt wurde habe ich dazu mal ein kleines Tutorial zusammengestellt.
 Es gibt zwar jede Menge zu tun, aber mit etwas Zeit stellt die Installation mit dem Tutorial keine großen Probleme dar.
 
 Die Gesamtdauer für die Installation beträgt ca. 30 Minuten.
 
 Voraussetzungen:
 - Installiertes und Betriebsbereites Slackware Linux 10.x-System
 - Apache HTTP-Server (von Slackware-Current)
 - SmokePing-Sources (Homepage, Download v2.0.4)
 - RRDtool-Sources (Homepage, Download v1.2.11)
 - cgilib-Sources (Homepage, Download v0.5)
 - fping-Sources (Homepage, Download v2.4b2)
 
 Vorbereitung
 Apache HTTP Server
 Je nach Installationstyp kann der Apache HTTP Server bereits auf dem System installiert sein. Bei der Standardinstallation (Full) ist dieser schon installiert, wird aber nicht als Daemon (Dienst) gestartet.
 Falls das Setup von den Original Installations-CDs durchgefuehrt wurde sollte man den HTTP Server auf jeden Fall auf den aktuellen Stand bringen.
 Um den Apache HTTP Server zu installieren oder zu updaten einfach die entsprechenden Packages aus dem Slackware-Current-Tree runterladen (Apache befindet sich im Tree /slackware-current/slackware/n/ und db4 in /slackware-current/slackware/l/) und im selbigen Verzeichnis mit pkgtool die Packages installieren:
 
 (1) In der Console als root die aktuellen Packages mit wget herunterladen (hier die zum Zeitpunkt der Erstellung des Tutorials aktuellen Versionen):
 
 # wget http://ftp.gwdg.de/pub/linux/slackware/slackware-current/slackware/n/apache-1.3.36-i486-1.tgz# wget http://ftp.gwdg.de/pub/linux/slackware/slackware-current/slackware/l/db44-4.4.20-i486-1.tgz
 (2) pkgtool aufrufen
 
 # pkgtool (3) Current waehlen
 (4) Bei "Apache HTTP Server" und "db4" Yes waehlen
 (5) Sollten keine Fehler aufgetreten sein landet man ohne Meldung wieder in der Console
 
     
 Jetzt folgende Schritte damit der Apache HTTP Server beim Systemstart auch mitgestartet wird und weiterhin testen wir gleich ob er auch richtig laeuft:
 (1) In das Verzeichnis /etc/rc.d wechseln
 (2) Mit ls -lisa rc.httpd schauen welche Rechte fuer die Datei rc.httpd gesetzt sind - per default sollte dies 644 sein und muss somit angepasst werden
 (3) Die Datei mit chmod 744 rc.httpd ausfuehrbar machen
 (4) Apache HTTP Server mit ./rc.httpd start starten
 (5) Wenn dies gelingt sollte die Meldung "httpd startet" erscheinen, mit ps ax | grep httpd kann geprueft werden ob dieser auch wirklich laeuft
 
  Weiterhin sollte von einem anderen Rechner (oder vom lokalen) geprueft werden ob der Webserver erreichbar ist. Dazu einfach den Browser oeffnen und als Adresse die IP Adresse des Linux-Rechners eingeben.
 Falls bereits Einstellungen am Paketfilter (netfilter, iptables) vorgenommen wurden muss fuer den Webserver noch eine Regel erstellt werden.
 
 Installation von fping
 (1) fping herunterladen (vorher wieder nach /root bzw. ~ wechseln)
 
 # wget http://web162.servana.de/files/fping.tar.gz (2) fping entpacken
 
 # tar xzf fping.tar.gz (3) Nach fping-2.4b2_to wechseln
 
 # cd fping-2.4b2_to (4) fping zum kompilieren vorbereiten
 
 # ./configure (5) fping kompilieren und installieren
 
 # make# make install
 
   
 
 Installation von RRDtool
 RRDtool benoetigt zunaechst cgilib-0.5.
 (1) cgilib-0.5 herunterladen
 
 # wget http://web162.servana.de/tools/cgilib-0.5.tar.gz (2) cgllib-0.5 entpacken
 
 # tar xzf cgilib-0.5.tar.gz (3) Nach cgilib-0.5 wechseln
 
 # cd cgilib-0.5 (4) cgilib-0.5 kompilieren
 
 # make (5) Gesamtes Verzeichnis nach /usr/local verschieben
 
 # cd ..# mv cgilib-0.5 /usr/local
 
  (6) RRDtool herunterladen
 
 # wget http://web162.servana.de/files/rrdtool-1.2.11.tar.gz (7) RRDtool entpacken
 
 # tar xzf rrdtool-1.2.11.tar.gz (8) RRDtool zum kompilieren vorbereiten
 
 # cd rrdtool-1.2.11# export CPPFLAGS=-I/usr/local/cgilib-0.5
 # export LDFLAGS=-L/usr/local/cgilib-0.5
 # ./configure --prefix=/usr/local/rrdtool
 
   
 Wenn alles geklappt hat sollten diese Meldungen erscheinen:
 
   
 (9) RRDtool kompilieren und installieren
 
 # make# make install
 (10) Systemumgebung anpassen
 
 # export PATH=$PATH:/usr/local/rrdtool/bin# echo /usr/local/rrdtool/lib >> /etc/ld.so.conf
 # ldconfig
 
   
 
 SmokePing installieren
 
 (1) SmokePing herunterladen (vorher wieder nach /root oder ~ wechseln)
 
 # wget http://web162.servana.de/files/smokeping-2.0.4.tar.gz (2) SmokePing entpacken
 
 # tar xzf smokeping-2.0.4.tar.gz (3) SmokePing nach /usr/local/smokeping verschieben und dorthin wechseln
 
 # mv smokeping-2.0.4 /usr/local/smokeping#cd /usr/local/smokeping
 (4) Dort die Datei bin/smokeping.dist zu bin/smokeping umbennen
 
 # mv bin/smokeping.dist bin/smokeping (5) Die bin/smokeping in einen Editor laden, fuer den Anfang nehmen wir mal pico
 
 # pico bin/smokeping 
   
 (6) Diese Datei muessen wir nun entsprechend unseres Systems wie folgt anpassen (Rot markierte Stellen muessen geaendert werden!):
 
 #!/usr/bin/perl -w # -*-perl-*-
 
 use lib qw(/usr/local/rrdtool/lib/perl);
 use lib qw(/usr/local/smokeping/lib);
 
 use Smokeping 2.000004;
 
 Smokeping::main("/usr/local/smokeping/etc/config");
 (7) Sobald die Änderungen getaetigt sind koennen wir die Datei speichern und und den Editor verlassen.
 Dazu einfach STRG+X druecken, die Frage mit Y beantworten und den Pfad bin/smokeping mit ENTER bestaetigen.
 
   Achtung: In diesem Bildern hat sich in Zeile 5 der Fehlerteufel eingeschlichen - Es fehlt auf dem Bilde am Ende die ) hinter lib
 
 (8) Nun die Datei htdocs/smokeping.cgi.dist zu htdocs/smokeping.cgi umbenennen und in einen Editor laden
 
 # mv htdocs/smokeping.cgi.dist htdocs/smokeping.cgi# pico htdocs/smokeping.cgi
 
    (9) Diese Datei muss ebenfalls an unser System angepasst werden:
 
 #!/usr/bin/perl -w # -*-perl-*-
 
 use lib qw(/usr/local/rrdtool/lib/perl);
 use lib qw(/usr/local/smokeping/lib);
 use CGI::Carp qw(fatalsToBrowser);
 
 use Smokeping 2.000004;
 
 Smokeping::cgi("/usr/local/smokeping/etc/config");
 
 (10) Zum Speichern und Beenden wieder STRG+X, danach Y und ENTER druecken
 
   
 SmokePing konfigurieren
 
 (1) Neue Konfigurations-Datei erstellen (im Verzeichnis /usr/local/smokeping ausfuehren)
 
 # pico etc/config (2) Der Aufbau der Konfigurations an einem Beispiel mit FPing erklaert:
 
 Erstellt werden 2 Hauptgruppen: LAN und WAN
 Gruppe LAN enthaelt 2 Hosts: Fileserver und Gatekeeper
 Rot markierte Stellen sollten angepasst werden!
 Blau markierte Stellen dienen zur Erklaerung,
 alles was in einer Zeile nach einer # kommt wird von SmokePing ignoriert.
 
 
 *** General ***
 #  Hauptkonfiguration
 owner    =  MyName
 contact  =  MyName@MyCompany.com
 mailhost =  smtp.company.com
 sendmail = /usr/lib/sendmail
 imgcache = /var/www/htdocs/.simg
 imgurl   = ../.simg
 datadir  = /usr/local/smokeping/var
 piddir  = /usr/local/smokeping/var
 # Hier sollte die komplette URL fuer die fertige Installation rein,
 # die gueltigkeit dieser URL ist aber nicht zwingend erforderlich.
 cgiurl   =  http://toxin.tovdc.local/smokeping.cgi
 smokemail = /usr/local/smokeping/etc/smokemail
 tmail = /usr/local/smokeping/etc/tmail
 #  # Fuer Syslog ggf. die Facility aendern, muss aber nicht geaendert werden
 syslogfacility =  local0
 # concurrentprobes = no
 
 *** Alerts ***
 # e-Mail Adressangaben fuer Alarm-Meldungen
 to =  puppet@gmx.org
 from =  puppet@gmx.org
 
 +bigloss
 type = loss
 # in percent
 pattern = ==0%,==0%,==0%,==0%,>0%,>0%,>0%
 comment = suddenly there is packet loss
 
 +someloss
 type = loss
 # in percent
 pattern = >0%,*12*,>0%,*12*,>0%
 comment = loss 3 times  in a row
 
 +startloss
 type = loss
 # in percent
 pattern = ==S,>0%,>0%,>0%
 comment = loss at startup
 
 +rttdetect
 type = rtt
 # in milli seconds
 pattern = <10,<10,<10,<10,<10,<100,>100,>100,>100
 comment = routing mesed up again ?
 
 *** Database ***
 # Zeit zwischen den Abfragen (step, Angabe in Sekunden)
 # und Anzahl der PING-Anforderungen pro Abfrage (pings).
 # Im Beispiel werden also alle 2 Minuten 10 PING-Anfragen geschickt
 step     =  120
 pings    =  10
 
 # consfn mrhb steps total
 
 AVERAGE  0.5   1  1008
 AVERAGE  0.5  12  4320
 MIN  0.5  12  4320
 MAX  0.5  12  4320
 AVERAGE  0.5 144   720
 MAX  0.5 144   720
 MIN  0.5 144   720
 
 *** Presentation ***
 
 template = /usr/local/smokeping/etc/basepage.html
 
 + overview
 
 width = 600
 height = 50
 range = 12h
 
 + detail
 
 width = 600
 height = 200
 unison_tolerance = 2
 
 # Hier wird die Abdeckung der einzelnen Graphen festgelegt:
 # "Name des Graphs"		Zeitspanne
 "Last 3 Hours"    3h
 "Last 24 Hours"   24h
 "Last 7 Days"     7d
 "Last 30 Days"    30d
 "Last 365 Days"   365d
 
 *** Probes ***
 + FPing
 binary = /usr/local/sbin/fping
 
 *** Targets ***
 
 probe = FPing
 
 # Einstellungen fuer die Startseite
 menu = Top
 # Ueberschrift: Latenz im LAN
 title =  Latenz im LAN
 # Normaler Text unter der Ueberschrift
 remark =  Bitte eine Gruppe auf der linken Seite auswaehlen
 
 # Mit einem einzelnen  +  wird ein neuer Haupteintrag erstellt, in diesem Falle die Gruppe "LAN".
 # Die Bezeichnung hinter dem  +  dient zur internen Bearbeitung von SmokePing und sollte keine Leer- und Sonderzeichen enthalten.
 # Die Bezeichnung hinter  menu  erscheint auf der linken Seite im AUswahlmenue und  title  auf der Hauptseite sobald die Gruppe ausgewaehlt wurde.
 +  LAN
 menu =  Lokal
 title =  Lokales Netzwerk
 
 # Jetzt wird der Gruppe "LAN" durch  ++  ein Host neuer Host hinzugefuegt, hier: "Fileserver"
 # Wie oben sollte die Bezeichnung hinter  ++  keine Leer- und Sonderzeichen beinhalten.
 #  menu  und  title  haben die gleiche Bedeutung wie oben beschrieben.
 # Das Feld  host  gibt den Hostnamen oder die IP-Adresse des Ziels an welches Abfragt werden soll.
 # Weiter unten wird ein zweiter Host Namens "Gatekeeper" hinzufuegt, diesmal allerdings mit Hostname anstatt einer IP-Adresse.
 # Der Hostname sollte sich natuerlich aufloesen lassen.
 ++  Fileserver
 menu =  Fileserver
 title =  Datenlager
 host =  192.168.0.1
 
 ++  Gatekeeper
 menu =  Gatekeeper
 title =  Der Tuersteher
 host =  gatekeeper.tovdc.local
 
 # Jetzt fuegen wir der ganzen Sache noch eine zweite Gruppe hinzu, welcher gleich noch ein Host hinzugefuegt wird.
 +  WAN
 menu =  Internet
 title =  Internet
 
 ++  NetworkLab
 menu =  NetworkLab
 title =  NetworkLab - Das Netzwerkportal
 host =  www.nwlab.net
 Diese Beispielkonfiguration kann auch hier heruntergeladen werden: http://web162.servana.de/files/config
 Diese kann man auch gleich als Datei config im Verzeichnis /usr/local/smokeping/etc/ speichern und entsprechend mit einem Editor anpassen.
 
 Abschließende Arbeiten
 (1) Image-Chache-Verzeichnis erstellen und Rechte anpassen
 
 # mkdir /var/www/htdocs/.simg# chmod 777 /var/www/htdocs/.simg
 (2) SmokePing um das var-Verzeichnis erweitern
 
 # mkdir /usr/local/smokeping/var (3) SmokePing in das WebServer-Verzeichnis kopieren und Rechte anpassen
 
 # cp /usr/local/smokeping/htdocs/smokeping.cgi /var/www/cgi-binchmod 755 /var/www/cgi-bin/smokeping.cgi
 (4) HTML-Dokument einrichten, dazu entweder die /usr/local/smokeping/etc/basepage.html.dist zu /usr/local/smokeping/etc/basepage.html umbennen, oder die Standard-Datei herunterladen:
 
 # cd /usr/local/smokeping/etc# wget http://web162.servana.de/files/basepage.html
 (5) E-Mail Settings taetigen, wobei die Default-Einstellungen auch OK sind und wir dabei bleiben
 
 # cd /usr/local/smokeping/etc# mv smokemail.dist smokemail
 # mv tmail.dist tmail
 
 Fertigstellen der Installation
 Nun ist SmokePing einsatzbereit.
 Aufgerufen wird es nun mit:
 
 # /usr/local/smokeping/bin/smokeping 
 Wenn alles erfolgreich war sollte SmokePing anzeigen welche genauigkeit FPing zurueck gibt, wohin Ereignisse geloggt werden und das es jetzt im Hintergrund arbeitet.
 
  
 Jetzt kann man testen ob wirklich alles glatt gelaufen ist.
 Dazu den Browser oeffnen und als URL hinter der IP-Adresse cgi-bin/smokeping.cgi eingeben,
 z.B.: http://localhost/cgi-bin/smokeping.cgi oder http://192.168.10.50/cgi-bin/smokeping.cgi
 
 Wenn man nun eine Seite mit aehnlichem Aussehen wie die folgende bekommt hat alles funktioniert:
 
   
 Waehrend SmokePing nun arbeitet koennen wir noch dafuer sorgen, dass es beim Systemstart automatisch gestartet wird.
 
 (1) Die Datei /etc/rc.d/rc.local in einem Editor oeffnen
 
 # pico /etc/rc.d/rc.local (2) Folgende Zeilen ans Ende der Datei schreiben:
 
 echo "Starting SmokePing:  /usr/local/smokeping/bin/smokeping"/usr/local/smokeping/bin/smokeping
 (3) Die Datei speichern und den Editor verlassen (STRG+X -> Y -> ENTER)
 
  
 Hinweise
 (1) Wenn man Änderungen an der Konfigurationsdatei gemacht hat (z.B. neue Hosts hinzugefuegt) muss man SmokePing nicht unbedingt "killen" und neustarten, dazu kann man einfach in der Console folgendes eingeben:
 
 /usr/local/smokeping/bin/smokeping --reload Dies veranlasst SmokePing alle Konfigurationsdateien neu einzulesen.
 
 Hier noch einige Bilder des fertigen Ergebnisses:
 
     
 [ Dieses Thema im Live-Forum aufrufen ] |