Smokeping – Installation und Konfiguration

Jeder der schon einmal mit einem Monitoring System zu tun hatte, kennt den grundlegendsten Check von allen: den Ping-Check. Mit ihm kann man recht einfach Netzwerkseitig prüfen ob ein Host noch erreichbar ist.
Für diesen Anwendungsfall ist das auch absolut ausreichend. Was aber, wenn ein Host ab und an Packet Loss hat und sich erst nach wenigen Minuten wieder fängt? Oder die Latenz viel zu hoch für die eingesetzte Netzwerkhardware ist? Ein Monitoring System würde hier haufenweise Alarme produzieren, obwohl der Host (eigentlich) online ist.
Zeit dem Ganzen auf den Grund zu gehen.

Das Monitoring System eignet sich dafür leider nur bedingt, da der Ping-Check normalerweise nur alle paar Minuten ausgeführt wird. Besser ist ein eigenständiges Tool, welches durchgehend Pings verschickt und das Ergebnis gleich noch als Graph visualisiert. Die Rede ist von Smokeping, ein „kleines“ Tool von Tobi Oetiker (bekannt für RRDTool, welches auch von Smokeping genutzt wird).
In diesem Post werde ich auf die grundlegende Installation und Konfiguration eingehen, in einem späteren Beitrag werden wir Smokeping noch um ein Speedtest Plugin erweitern.

Installation

Mein Beispiel bezieht sich auf eine Virtual Box VM mit frisch installiertem Debian 9.3. Wir werden das Ganze über die apt-get installieren. Alternativ kann man Smokeping natürlich auch direkt aus den Sourcen kompilieren.
Los geht’s ganz simpel als root mit einem
apt-get install smokeping
Auf einem frischen Debian werden jetzt jede Menge Abhängigkeiten mit installieren (u.a. Apache2 als Webinterface für Smokeping)

Wenn die Installation abgeschlossen ist, kann das Smokeping-Webinterface schon über http:///smokeping/smokeping.cgi aufgerufen werden. Logischerweise finden Sie hier noch keine Daten und auch der Daemon läuft noch nicht um überhaupt Daten zu sammeln. Die automatisch generierte Config für das Webinterface befindet sich in /etc/apache2/conf-enabled/smokeping.conf

Konfiguration

Zur Konfiguration wechseln wir in den Ordner /etc/smokeping/config.d
Hier gibt es verschiedene Config-Files

  • Alerts
    Hier können automatische Alarmierungen (ähnlich Monitoring System) konfiguriert werden, dies setzt allerdings einen Mailserver voraus
  • Database
    Einstellungen zur RR-Datenbank
  • General
    Allgemeine Settings, u.a. Texte im Webinterface
  • pathnames
    Hier sind Pfade zu diversen Programmen hinterlegt (z.B. sendmail, wenn man Alarme aktivieren möchte)
  • Presentation
    Anzeigeeinstellungen für die Graphen
  • Probes
    Hier ist default nur FPing als Proble konfiguriert. Man kann aber auch andere Probes hinterlegen
  • Slaves
    Wird für Master-Slave Betrieb gebraucht (um z.B. von verschiedenen Locations die gleichen Ziele zu pingen)
  • Targets
    Definition für die abzufragenden Ziele
  • Als erstes editieren wir die Targets und ändern hier als erstes den Standardnamen auf unseren Namen und Mailadresse und ergänzen bei cgiurl den Pfad zur smokeping.cgi (Achtung, die Config hat als Standardwert nur …/smokeping.cgi. Richtig ist aber …/smokeping/smokeping.cgi !)

    Danach speichern und schließen.
    Als nächstes widmen wir uns der Targets Datei. Hier kann man an der Struktur der Datei schon erkennen wie die Sidebar später im Webinterface aufgebaut ist:

    menu ist dabei die Bezeichnung in der Sidebar
    title ist die Überschrift der Site und
    remark ist ein optionaler Subtext auf der Site

    Die Pluszeichen in der Config geben die Tiefe im Baum an, an dem der Punkt auftaucht:

    ohne: Haupt-/Startseite
    + : Sidebareintrag (z.B. „Local“)
    ++ : Zu prüfender Host (z.B. „localhost“) unterhalb von „Local“

    Achtung 1: Die Namen neben den Pluszeichen tauchen im Webinterface nie auf, diese dienen nur der Strukturierung. Um die Punkte zu benennen werden das „menu“ und „title“ Attribut verwendet.
    Achtung 1.1: Die einzige Ausnahme bilden die Hosts die gepingt werden. Hier wird der Name der neben den Pluszeichen steht als Dateiname für die RR-Datenbank benutzt (zu finden unter /var/lib/smokeping/).
    Achtung 2: Die Struktur in der Config spiegelt auch die Struktur im Webinterface später wieder. Das heißt, wenn man 2 Oberpunkte in der Sidebar will würde die Config z.B. so aussehen:
    +
    ++
    ++
    +
    ++
    ++

    Natürlich kann man die Punkte auch tiefer setzen. Je mehr Pluszeichen, desto tiefer im Baum tauchen die Einträge auf.

    Konfigurationsbeispiel:

    Als nächstes sollte noch die Ping-Rate eingestellt werden. Dies kann über die Konfigurationsdatei Database eingestellt werden:

    step gibt den Zeitabstand (Sekunden) an, in dem Pings ausgeführt werden.
    pings gibt an wie viele Pings pro Step abgesetzt werden.

    In diesem Beispiel wären das 20 Pings alle 5 Minuten. Im Graph wird dann der Mittelwert aller Pings pro Step kräftiger dargestellt und die tatsächlichen Werte als Schattierung.

    Ein Klick auf den Graph bringt noch eine Detailansicht, in der die Schattierungen noch besser dargestellt sind:

    Generell erzeugen mehr Pings pro Step bessere Schattierungen. Man sollte aber aufpassen, nicht zu viele Pings bei zu kurzer Step-Zeit einzustellen.

    Fazit:

    Für die Erstalarmierung ist ein Monitoring System unabdingbar, für die Tiefenanalyse eignet sich aber Smokeping besser. In meinem nächsten Blogbeitrag werde ich beschreiben, wie man Smokeping um ein speedtest.net Plugin erweitert, das die Bandbreite und Verfügbarkeit eines Internetanschluss analysieren kann.

    Denis Schubhan

    Denis Schubhan

    System Engineer

    Fachinformatiker bei Tag, Weltraum-Schmuggler bei Nacht. Unklar, welche Sucht ihn mehr umtreibt: Schwarzer Kaffee oder Storm Trooper Merchandise. Nennt eine beachtliche Sammlung von fast noch funktionsfähiger Hardware sein eigen.

    Gefällt dir der Artikel? Bitte teile ihn!
    Share on Facebook
    Facebook
    9Share on Google+
    Google+
    0Share on LinkedIn
    Linkedin
    Email this to someone
    email
    Tweet about this on Twitter
    Twitter