Network Monitoring Appliance auf Basis von Ubuntu Jeos - Seite 2


Im VMware Virtual-Center Web-Access (oder in welcher VMware Administrationskonsole auch immer) virtuelle CD für diese VM mounten, und sie auch von innerhalb der VM mounten, durch Ausführen von

mount /media/cdrom


Entweder das VMwareTools .rpm Packet mittels alien in ein .deb Packet konvertieren, und mittels dpkg -i vmwaretools*.deb installieren

oder

entpacken des Archivs VMwareTools-*.tar.gz mittels tar xvzf vmwaretools_*.tar.gz und manuelles installieren (im Detail auf https://help.ubuntu.com/community/JeOS#Installing%20VMware%20Tools beschrieben)

Nachfolgend kann

apt-get remove build-essential linux-headers-$(uname -r) && apt-get clean && apt-get autoremove


ausgeführt werden, um unnötige Packete zu deinstallieren, und Plattenplatz freizugeben.

Jetzt ist das System komplett installiert, es geht weiter mit den Applikationen.

2. Lighttpd

Da Nagios, MRTG, Smokeping und Weathermap4rrd Lighttpd als gemeinsame Komponente zur Darstellung ihrer Resultate verwenden, wird zunächst Lighttpd grundkonfiguriert. Alle Applikationen werden über Fast/CGI-Scripts von außen aufgerufen, so daß wenigstens dieses Standardmodul mod_cgi von Lighty notwendig ist.

Deswegen fügen wir folgendes zur Sektion server.modules von /etc/lighttpd/lighttpd.conf hinzu:
            "mod_auth",
"mod_setenv", "mod_cgi"
Da Nagios auch die Module mod_auth und mod_setenv benötigt, können wir diese auch gleich hinzufügen.

Für das mod_cgi sollte überprüft werden, ob ein Symlink innerhalb von /etc/lighttpd/conf-enabled existiert, der auf /etc/lighttpd/conf-available/10-cgi.conf zeigt:

ll /etc/lighttpd/conf-enabled


total 0
lrwxrwxrwx 1 root root 40 2009-08-13 11:06 10-cgi.conf -> /etc/lighttpd/conf-available/10-cgi.conf
Danach kann noch durch einen Blick in das File /etc/lighttpd/conf-available/10-cgi.conf geprüft werden, ob ein Alias für cgi-bin existiert, der auf die Lokation im Filesystem zeigt, wo sich die CGI-Scripts wirklich befinden:
alias.url       += ( "/cgi-bin/" => "/usr/lib/cgi-bin/" )
Die CGI-Scripts befinden sich außerhalb der documentroot von Lighttpd.

Das Logging von Lighttpd geschieht unter /var/log/lighttpd/.

3. Smokeping

Smokeping realisiert eine einfache Methode um Latenzzeiten, Paketverluste und dgl. in einer vernetzten Umgebung aufzuzeigen. Im einfachsten Fall wird ein Ziel alle 5 Minuten mit 20 ICMP_ECHO_REQUEST's angepingt, und die zeitliche Verteilung (Mittelwert und Standardabweichung) der Antwortzeiten der ICMP_ECHO_REPLY's visualisiert. Zeitliche Historie wird realisiert durch Speicherung dieser Werte in RRDTool. Smokeping läuft als Service/Dämon, und wird beim Start des Gesamtsystems automatisch hochgefahren. Die Konfiguration der Ziele und Meßverfahren wird in seinem Konfigfile /etc/smokeping/config vorgenommen. Die visualisierten Messungen werden in Form von .png Files im Webbrowser dargestellt, und mittels Lighttpd für die Aussenwelt verfügbar gemacht.

Die komplette Dokumentation aller Möglichkeiten von Smokeping und einiger Beispiele findet sich auf der Website des Maintainers: http://oss.oetiker.ch/smokeping/doc/index.en.html

Start/Stop/Restart des Services:

/etc/init.d/smokeping start|stop|restart


Syntaxprüfung des Konfigfiles:

smokeping -check


4. MRTG

MRTG findet oft Verwendung um die Auslastung eines Routers bzw. einer Übertragungsstrecke zu visualisieren. Die Visualisierung wird in einer Art und Weise gemacht, dass mit Hilfe mehrerer Bilder sowohl Kurzzeit- als auch Langzeitbetrachtungen einfach möglich sind. Konkret werden dazu per SNMP einige entsprechende Counter aus den Routern in (default) 5 Minuten Intervallen ausgelesen, gespeichert, und mit Hilfe von .png Files visualisiert. Diese .png Files werden üblicherweise per Webserver der Außenwelt zugänglich gemacht und im Webbrowser betrachtet. Die Werte der Counter werden entweder in ASCII Files (default), oder besser in Round-Robin Database Files gespeichert. Die Möglichkeiten von MRTG solche Messungen und entsprechende Visualisierung betreffend sind nahezu unendlich, da nicht nur SNMP als Datenquelle benutzt werden kann, sondern z.B. auch selbstgeschriebene Scripts oder Programme. Einige Beispiele finden sich auf der Website des Maintainers http://oss.oetiker.ch/mrtg/ wo sich auch die komplette Dokumentation unter http://oss.oetiker.ch/mrtg/doc/index.en.html findet.

Die Konfiguration wird im ASCII File /etc/mrtg.cfg vorgenommen. Abweichend vom Standard wird "LogFormat: rrdtool" verwendet (siehe http://oss.oetiker.ch/mrtg/doc/mrtg-rrd.en.html). Das hat 2 Gründe, Performance und Weiterverwendbarkeit der Daten.

In einer Standardinstallation werden alle Zielsysteme in 5 Minuten Zyklen gepollt, die gemessenen Werte gespeichert und .png Files erzeugt. Durch die Verwendung von "Logformat: rrdtool" werden keine .png Files erzeugt, die .png Files werden nur noch bei Bedarf erzeugt. Dies geschieht mit Hilfe des CGI-Scripts mrtg-rrd.cgi, das schon in /usr/lib/cgi-bin installiert ist, und sofort verwendet werden kann.

Da das Skript ein Perlscript ist, kann man nach folgender Zeile am Beginn des Skripts suchen:
my $conffile = "/etc/mrtg-rrd.conf";
Permission und Ownership sollten sein:
-rwxr-xr-x 1 www-data www-data 28160 2009-08-13 09:57 /usr/lib/cgi-bin/mrtg-rrd.cgi
Mehr Informationen finden sich unter http://www.fi.muni.cz/~kas/mrtg-rrd/

Das Erstellen von Einträgen für Systeme, die mit MRTG überwacht werden sollen, geschieht mit Hilfe von cfgmaker (Hilfe zu seinen vielen Möglichkeiten finden sich in seiner Manpage). Die Syntax des Konfigurationsfiles kann mit Hilfe von mrtg -check geprüft werden.

MRTG wird mit Hilfe von cron ausgeführt, demzufolge existiert kein Service/Dämon der gestartet, gestoppt, restarted usw. werden kann. Im konkreten Fall befindet sich ein Eintrag in /etc/cron.d/mrtg.

MRTG loggt nach /var/log/mrtg/.

5. SSMTP

SSMTP ist ein extrem einfacher, schlanker, no-Dämon send-only MTA zu einem Smarthost. Da er im konkreten Fall hauptsächlich von Nagios zum Versand von Fehlern, Warnung usw. verwendet wird, sollte er ausreichend sein.

Seine Konfiguration befindet sich in /etc/ssmtp/ssmtp.conf
Weitere Details finden sich in seiner Manpage.

6. RRDTool

Ist die Round-Robin Databasis für Smokeping, MRTG, Weathermap4rrd und Nagios. Keine weitere Konfiguration erforderlich. Ausführliche Dokumentation findet sich auf http://oss.oetiker.ch/rrdtool/

7. Nagios

Nagios ist ein mächtiges, leistungsfähiges, hochgradig konfigurierbares Monitoring- und Alarmierungssystem, das eine große Vielfalt an unterschiedlichen Zielsystemen (Netzwerk, Server, Dämonen/Dienste, Anwendungen) überwachen kann. Monitoring kann z.B. unter den Aspekten der Verfügbarkeit oder der Auslastung erfolgen. Das Monitoring kann z.B. nur von außen erreichbare Dienste beinhalten (z.B. ein Webserver auf Port 80/tcp), oder mit Hilfe des NRPE (Nagios Remote Plugin Executor) können auch Test-Plugins remote auf Zielsystemen aufgerufen werden.

Es finden sich vielerlei Informationen bezüglich der Einsatzmöglichkeiten von Nagios im Internet, die sich mit Hilfe der bevorzugten Suchmaschine finden lassen.

Lighttpd

Nagios verwendet einen Webserver, um mit seinen Anwendern zu kommunizieren, wie gehabt Lighttpd. Also fügen wir zuerst noch ein paar Details zur Konfiguration von Lighty hinsichtlich Nagios hinzu:

An /etc/lighttpd/lighttpd.conf anhängen:
alias.url +=     ( "/nagios2/cgi-bin" => "/usr/lib/cgi-bin/nagios2" )
alias.url += ( "/nagios2/stylesheets" => "/etc/nagios2/stylesheets" ) alias.url += ( "/nagios2" => "/usr/share/nagios2/htdocs" ) $HTTP["url"] =~ "^/nagios2/cgi-bin" { cgi.assign = ( "" => "" ) } $HTTP["url"] =~ "nagios2" { auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/etc/nagios2/htpasswd.users" auth.require = ( "" => ( "method" => "basic", "realm" => "Nagios Access", "require" => "user=nagiosadmin|user=helpdesk" ) ) setenv.add-environment = ( "REMOTE_USER" => "www-data" ) }
Diese Einträge stellen die Verbindung zwischen Nagios (der meist unter dem Apache läuft) und Lighttpd her, und erstellen 2 Accounts (nagiosadmin, helpdesk) zum Einloggen in Nagios.

Die Passworte für diese Accounts werden mit htpasswd aus dem Package apache2-utils erstellt:

htpasswd /etc/nagios2/htpasswd.users nagiosadmin


Nagios

Die Konfiguration von Nagios selbst ist unterhalb von /etc/nagios2. Das Hauptkonfigurationsfile ist nagios.cfg. Nach Änderungen in der Nagios Konfiguration macht es Sinn, einen Syntaxcheck (pre-flight check) durchzuführen:

Im Directory /etc/nagios2 dazu einfach

nagios2 -v nagios.cfg


ausführen.

Da Nagios ebenfalls als Service/Dämon läuft (wie Lighttpd und Smokeping), muß die Konfiguration nach Änderungen ebenfalls neu geladen werden. Dies geschieht mittels

/etc/init.d/nagios2 reload


8. Weathermap4rrd

Weathermap4rrd ist eine Applikation die eine Karte des Netzwerkwetters erstellt, was eigentlich nur eine andere Darstellungsform der Daten ist, die MRTG auch schon darstellt. In der Wetterkarte finden sich üblicherweise die wichtigsten Netzwerkknoten (Router) und die wichtigsten Übertragungsstrecken zwischen den Knoten. Die Pfade zwischen den Knoten geben durch unterschiedliche Einfärbung die momentane Auslastung wieder, der "Gesundheitszustand" der Knoten kann ebenfalls über ihre Farbgebung dargestellt werden (Grün für ok, Rot für nicht erreichbar). So ist es möglich einen schnellen aber trotzdem aussagekräftigen Überblick in einem Bild über ein komplexes Netzwerk und seine Datenströme zu erhalten. Im Gegensatz zu MRTG werden nur die aktuellsten Meßwerte dargestellt, keine Historie.

Weathermap4rrd liest dazu einfach die Daten die MRTG sammelt und in den entsprechenden .rrd Files speichert. Da MRTG seine Zielsysteme in 5 Minutenzyklen pollt, ist die Aktualisierung der Wetterkarte ebenfalls nur in 5 Minutenzyklen sinnvoll. MRTG wird mittels cron scheduled, im einfachsten Fall macht man das auch so mit weathermap4rrd.

Der cron-Eintrag für MRTG ist in /etc/cron.d/mrtg und sieht wie folgt aus
*/5 *   * * *   root    if [ -d /var/lock/mrtg ]; then if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi else mkdir /var/lock/mrtg; fi
Durch hinzufügen einer Zeile in etwa wie folgt wird auch weathermap4rrd aufgerufen:
*/5 *   * * *   root if [ -x /usr/bin/weathermap4rrd ]; then /usr/bin/weathermap4rrd 2>&1; fi
/usr/bin/weathermap4rrd ist das Programm das eine neue Wetterkarte gemäß seines Konfigfiles in /etc/weathermap4rrd/weathermap.conf erstellt.

Im genannten Konfigfile befindet sich die Konfiguration von weathermap4rrd, was für ein Typ von Grafikfile wo im Filesystem erzeugt wird, welche Knoten und Übertragungsstrecken mit Hilfe welcher .rrd Files abgebildet werden sollen, usw. Alle diesbezüglichen Details finden sich auf http://weathermap4rrd.tropicalex.net/documentation.php

Weathermap4rrd PHP Version

Bei Interesse an der php Version von weathermap4rrd (leider nicht in den Ubuntu Repos), müssen zuerst noch ein paar Packages installiert werden:

Für Lighttpd: apt-get install php5-cgi php
Für Weathermap4rrd-php: apt-get install php5-gd
In /etc/lighttpd/lighttpd.conf hinzufügen:
	"mod_rewrite",
"mod_redirect", "mod_fastcgi", "mod_access",
genauer zur Sektion server.modules im Konfigfile.

In /etc/lighttpd/conf-enabled einen neuen Symlink erstellen:
lrwxrwxrwx 1 root root 40 2009-08-13 11:06 10-cgi.conf -> /etc/lighttpd/conf-available/10-cgi.conf
und anschliessend Lighty restarten.

Das Archiv der php-version von weathermap4rrd von http://weathermap4rrd.tropicalex.net/ downloaden, und direkt unter die Dokumentroot von Lighty entpacken.

Die Konfiguration ist jetzt im File documentroot/weathermap*/weathermap.conf" vorzunehmen, und ist syntaktisch sehr ähnlich zu der Konfiguration der perlversion (bietet aber zusätzliche Möglichkeiten).

Die php Version läuft on demand (wenn das index.php Script in den Browser geladen wird), und die Wetterkarte wird automatisch refresht.

9. Links

http://www.ubuntu.com/products/whatisubuntu/serveredition/jeos
https://help.ubuntu.com/community/JeOS
https://help.ubuntu.com/community/JeOS#Installing%20VMware%20Tools)
http://www.nagios.org/
http://oss.oetiker.ch/smokeping/
http://oss.oetiker.ch/mrtg/
http://www.fi.muni.cz/~kas/mrtg-rrd/
http://oss.oetiker.ch/rrdtool/
http://www.lighttpd.net/
http://redmine.lighttpd.net/projects/1/wiki/NagiosRecipe
http://weathermap4rrd.tropicalex.net/
http://redmine.lighttpd.net/wiki/lighttpd/Docs:ModFastCGI
ftp://ftp.debian.org/debian/pool/main/s/ssmtp/
http://www.howtoforge.com/installing-lighttpd-with-php5-and-mysql-support-on-ubuntu-9.04
http://www.howtoforge.com/monitoring-network-latency-with-smokeping-ubuntu-9.04

0 Kommentar(e)

Zum Posten von Kommentaren bitte