Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Einleitung
1 Was ist Ubuntu?
2 Die Versionen im Detail
3 Die Shell
4 Migration und Synchronisation
5 Die Installation
6 Erste Schritte
7 Ubuntu mobil
8 Derivate
9 Internet und E-Mail
10 Office
11 Grafik und Bildbearbeitung
12 Multimedia und Spiele
13 Programmierung und Design
14 Hardware-Konfiguration
15 Software- und Paketverwaltung
16 Architektur
17 Backup und Sicherheit
18 Server-Installation
19 Datei- und FTP-Server
20 Weitere Server-Dienste
21 Kontrolle und Monitoring
22 Desktop-Virtualisierung
23 Server-Virtualisierung mit KVM
24 Server-Virtualisierung mit Xen
25 Hilfe
26 Befehlsreferenz Ubuntu Linux
A Übersicht: Software für (K)Ubuntu
B Mark Shuttleworth
C Glossar
D Häufig gestellte Fragen
Stichwort
Download: - ZIP, ca. 36,6 MB
Buch bestellen
Ihre Meinung?
<< zurück | Galileo Computing / <openbook> / Ubuntu | vor >>
Ubuntu GNU/Linux von Marcus Fischer Das umfassende Handbuch, aktuell zu Ubuntu 9.04 - Jaunty Jackalope
Ubuntu GNU/Linux 4., aktualisierte und erweiterte Auflage, geb. 1.120 S., 39,90 Euro Galileo Computing ISBN 978-3-8362-1439-1 |
| 21 Kontrolle und Monitoring
|  | 21.1 Zeitgesteuerte Befehle
|  | 21.2 Nagios
|  |  | 21.2.1 Konfiguration
|  |  | 21.2.2 Benachrichtigungen
|  |  | 21.2.3 Überwachung verschiedener Systeme
|  | 21.3 OpenVPN
## 21.2 Nagios Nagios ist ein Open-Source-Tool, das beliebige Bestandteile Ihres Netzwerkes überwacht, also ein sogenanntes System zum Netzwerk-Monitoring. Es besteht aus einem Kern, vielen Plug-ins und der optionalen Web-Oberfläche. Nagios überprüft die Verfügbarkeit von Diensten wie SSH, FTP oder HTTP. Es ruft Plug-ins auf, liest Daten aus einer Datei aus und gibt anschließend Statusmeldungen zurück. Hat sich der Status eines Dienstes kritisch verändert, werden Warnhinweise an vorher festgelegte Usergruppen zu verschickt. Dienste beziehungsweise Hosts können Windows- bzw. Linux-Systeme, Switches, Web-Server, Router usw. sein. Das System gibt darüber hinaus auch Hinweise auf die Kapazitätsplanung, Speicher- und CPU-Auslastung. Mithilfe weiterer Programme kann der Verlauf der Checks und des Systems visualisiert werden oder es können Umweltbedingungen wie Temperaturwerte, Luftfeuchtigkeit etc. überwacht werden. #### Installation Ubuntu bietet Ihnen aktuelle Nagios-Pakete in den Paketquellen an. Sie installieren diese durch
    sudo apt-get install nagios
Die Paketverwaltung nimmt Ihnen viele der folgenden Schritte ab. Wenn Sie allerdings Wert auf die neueste Version legen, dann können Sie diese selbstverständlich auch herunterladen und selber installieren. Diesen Fall möchte ich im Folgenden näher beschreiben. Laden Sie die neueste Version von Nagios und die dazugehörigen Plug-ins von der Seite www.nagios.org/download herunter. Anschließend entpacken Sie die Pakete auf Ihrem Rechner. Folgende Befehle tragen Sie dazu bitte in die Konsole ein:
    tar xzf nagios-<version>.tar.gz
    tar xzf nagios-plugins-<version>.tar.gz
Erstellen Sie einen Benutzer Nagios:
    /usr/sbin/useradd -m nagios
Zusätzlich erstellen Sie eine Benutzergruppe nagios. Weisen Sie dieser den Nagios-Benutzer zu:
    /usr/sbin/groupadd nagios
    /usr/sbin/usermod -G nagios nagios
Die Gruppe nagcmd benötigen Sie, um über das Web-Interface externe Befehle erteilen zu können. Weisen Sie dieser Gruppe den Nagios-Benutzer und den Web-Server-Benutzer zu:
    /usr/sbin/groupadd nagcmd
    /usr/sbin/usermod -a -G nagcmd nagios
    /usr/sbin/usermod -a -G nagcmd wwwrun
Haben Sie alle vorbereitenden Maßnahmen erledigt, wechseln Sie in das Verzeichnis, in dem Sie Nagios entpackt haben. Dort führen Sie die Installation durch:
    ./configure --with-command-group=nagcmd
    make install
    make install-init
    make install-config
    make install-commandmode
Für die Plug-ins benötigen Sie folgende Befehle:
    ./configure --with-nagios-user=nagios --with-nagios-group=nagios \
    make make install
Achten Sie darauf, dass beim Ausführen des Konfigurationsskriptes keine Fehler auftreten. Unter Umständen funktioniert sonst das Kompilieren nicht. Im letzten Schritt konfigurieren Sie das Web-Interface:
    make install-webconf
    htpasswd2 -c /usr/local/nagios/etc/htpasswd.users nagios service apache2 restart
Dieser Befehl installiert die Datei nagios.cfg im Konfigurationsverzeichnis des Apache und legt ein Passwort für den Nagios-Benutzer fest. #### Start Starten Sie Nagios wie folgt:
1. | Wenn Sie Nagios zur Liste der System-Services hinzufügen, startet Nagio automatisch, sobald Sie das System hochfahren:
    chkconfig --add nagios
    chkconfig nagios on
2. | Das Startskript passen Sie unter /etc/init.d/nagios folgendermaßen an:
    ### BEGIN INIT INFO
    # Provides: nagios
    # Required-Start:
    # Should-Start:
    # Required-Stop:
    # Default-Start: 3 5
    # Default-Stop: 0 1 2 6
    # Short-Description: nagios
    # Description: Start Nagios
    ### END INIT INFO
3. | Überprüfen Sie nun die Konfigurationsdateien:
    /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
4. | Zuletzt starten Sie den Nagios-Service:
    service nagios start
Auf die Web-Oberfläche können Sie über die URL http://[IP_des_Nagios_Hosts]/nagios zugreifen. ### 21.2.1 Konfiguration Die Hauptkonfigurationsdatei nagios.cfg befindet sich im Verzeichnis /usr/local/nagios/etc. Sie enthält alle nötigen Basiseinstellungen für Nagios. Hier sind die Pfade zu allen wichtigen Dateien hinterlegt, z. B. zu den Variablen log_file, resource_file, cfg_file oder status_file. Zudem enthält die Hauptkonfigurationsdatei die globalen Einstellungen für die Nagios-Elemente, wie execute_host_checks, debug_level, enable_event_handlers. Diese können auf ein (1) oder auf aus (0) gestellt werden. Auch das Einstellen auf einen speziellen Wert ist möglich. Erklärungen zu der Funktionsweise der Variablen sind als Kommentare (beginnend mit #) in der Hauptkonfigurationsdatei enthalten. Objektdefinitionsdateien Objektdefinitionsdateien definieren Dienste, Services, Host-Gruppen, Kontakte, Kontaktgruppen und Befehle. Hier legen Sie fest, welche Dienste Sie überwachen lassen wollen und an wen im Bedarfsfall Warnhinweise versendet werden. Ressourcendateien Ressourcendateien dienen der Sicherung von benutzerdefinierten Makros, z. B. Passwörtern, ohne dass diese für CGIs (Common Gateway Interface) zugänglich sind. CGI-Konfigurationsdatei In der CGI-Konfigurationsdatei werden Variablen, die die Arbeitsweise der CGIs beeinflussen, wie zum Beispiel Zugriffsrechte, hinterlegt. Sie enthält zudem einen Verweis auf die Hauptkonfigurationsdatei. #### Allgemeiner Aufbau Nachfolgend finden Sie einen exemplarischen Aufbauplan. Er kann im Vergleich mit dem Ihrigen in Details variieren, aber das Gros der Dienste, Kontakt- und Service-Informationen ist ähnlich:
    define contact {
        contact_name           <NAME>
        use                    generic-contact        # Template
        alias                  <genauerer Name>
        email                  <EMAIL>
    }
    define host {
        use                    <Template>
        host_name              <HOSTNAME>
        alias                  <genauerer Name>
        address                <IP>
        <sonstige spezielle Eigenschaften>
    }
    define service {
        use                    <Template>
        host_name              <HOSTNAME>
        service_description    <SERVICENAME>
        check_command          <SERVICEBEFEHL>
        <sonstige spezielle Eigenschaften>
    }
    define host/servicegroup {
        host/servicegroup_name <GRUPPENNAME>
        alias                  <genauere Beschreibung>
        members                <Mitglieder>
    }
Alle Eigenschaften und spezielle Einstellungen aufzuführen, würde den Rahmen dieses Kapitels sprengen, weshalb ich mich auf die wichtigsten Details beschränkt habe. Weitere Informationen finden Sie im Handbuch von Nagios.
Nagios mit Templates nutzen
Mithilfe von Templates erleichtern Sie Nagios die Überwachung ähnlicher Dienste und Services. Alle Einstellungen, die bei mehreren Hosts gleich sind, können Sie in einem Template zusammenfassen und durch dieses überwachen lassen. Dabei überschreiben die lokalen objektspezifischen Einstellungen diejenigen des Templates. Weiterhin bietet sich die Möglichkeit, Templates in andere Templates einzufügen. Die Datei ist ähnlich den Nagios-Konfigurationsdateien aufgebaut, unterscheidet sich aber durch eine zusätzliche Zeile, die sie als Template definiert.
Im Folgenden möchte ich Ihnen dies an einem Dienst-Beispiel erläutern:
define host { name host-allgemein ## Name des Templates <gewünschte Konfiguration> register 0 ## Mit dieser Zeile wird es ein Template }
Im Host selbst sieht das dann so aus:
define host { use host-allgemein ## Template wird geladen <Hostspezifische Einstellung> ## zum Beispiel IP }
### 21.2.2 Benachrichtigungen Nagios alarmiert die vorher festlegten Kontaktpersonen über Statusänderungen der Dienste, sobald diese einen kritischen Wert überschritten haben. Dabei können Sie definieren, ob die Mitteilung per E-Mail, SMS, Pager oder Telefon übermittelt werden soll. In der Regel werden nur dann Benachrichtigungen versendet, wenn die dafür eingestellten Komponenten in den Hard-Zustand wechseln, der durch max _check_attempts festgelegt wird. Mitteilungen erhalten Sie, wenn Sie in der Hauptkonfigurationsdatei nagios.cfg die Option enable_notifications auf 1 setzen und bei allen zu überwachenden Diensten notifications_enabled einschalten. Möchten Sie Statusmeldungen per E-Mail erhalten, definieren Sie Ihre Adresse bei email und fügen die zugehörigen Kontaktgruppen unter contact_groups bei allen Diensten und Services hinzu, für die Sie Benachrichtigungen erhalten möchten. Unter notification_period legen Sie die Zeitintervalle fest, in denen Sie keine Benachrichtigungen erhalten möchten. Mit der Option first_notification_delay richten Sie Zeitverzögerungen ein. Wiederholte Benachrichtigungen erstellen Sie unter notification_interval. Die Bedingungen, die erfüllt sein müssen, damit überhaupt eine Nachricht versandt wird, richten Sie mit der Option notification_options ein. Bei Hosts sind dies: d (»down«), u (»unreachable«), r (»recovered«), f (»flapping«) oder s (beim Starten, Enden oder Stornieren eines Wartungsintervalls). Die Bedingungen bei Services lauten: w (»warning«), u (»unknown«), c (»critical«), r (»recovered«), f (»flapping«) oder s. Diese Filtermöglichkeiten sind auch bei den Kontakten selbst möglich, und zwar über host _notification_options und service_notification_options. Definieren Sie nun bei den entsprechenden Kontaktgruppen die Variablen, mit denen Benachrichtigungen ausgelöst werden, z. B.:
    service_notification_commands       notify-service-by-email
    host_notification_commands          notify-host-by-email
Aktivieren Sie die zugehörigen Kommandos in commands.cfg, indem Sie das Kommentarzeichen entfernen. Sie haben darüber hinaus die Möglichkeit, Kontaktpersonen festzulegen, an die Meldungen gesendet werden sollen, wenn eine Störung nach der ersten Mitteilung nicht behoben worden ist. Dieses sogenannte Eskalationsmanagement richten Sie folgendermaßen ein:
    define serviceescalation {
        host_name                webserver
        service_description      HTTP
        first_notification       3
        last_notification        5
        notification_interval    90
        contact_groups           managers,everyone
    }
In diesem Beispiel werden ab der dritten bis zur fünften Benachrichtigung diejenigen Gruppen kontaktiert, die unter managers und everyone hinterlegt sind. Die Mitteilungen werden im Abstand von 90 Minuten versendet. Es ist ebenfalls möglich, eine host escalation zu definieren, bei der jedoch nicht nur der Name, sondern eine oder mehrere Host-Gruppen angegeben werden können. Der Eskalationsrahmen richtet sich nicht nach der Zeit, sondern nach der Menge der bereits versandten Nachrichten. In den Definitionen der Objekte, die in einer Eskalation eingebunden sind, muss deswegen die Variable notification_interval enthalten sein. Bei einer überlappenden Eskalation mit unterschiedlichem notification _interval wählt Nagios jeweils die kleinste definierte Zeiteinheit. Sie haben die Möglichkeit, die Variablen escalation_period und escalation_options bei den Objektdefinitionen einzufügen, aber anders als notification_interval ersetzt escalation_period die notification _period nicht, sondern wirkt zusätzlich. #### Abhängigkeiten Durch die Host- und Serviceabhängigkeiten lassen sich Benachrichtigungen und Checks unterdrücken. Sie basieren auf den Zuständen, in denen sich die jeweiligen Komponenten befinden, z. B.:
    define servicedependency {
        host_name                       linux01, linux02
        service_description             NRPE, NSCA
        inherits_parent                 1
        dependent_host_name             linux03, linux04
        dependent_service_description   Users, Load, Disks
        notification_failure_criteria   c,u
        execution_failure_criteria      n
    }
Die Variablen host_name und service_description legen die Master-Services fest. Fällt ein Master-Service aus, fallen auf den Rechnern, die unter dependent_host _name hinterlegt sind, diejenigen Dienste aus, die unter der Option dependent _service_description definiert sind. Bitte beachten Sie, dass jeder abhängige Service von jedem möglichen Master-Service abhängig ist. Die verbleibenden Variablen legen die Optionen fest, wann Master-Services, Benachrichtigungen und Checks ausbleiben sollen. Das obige Beispiel zeigt an, dass die Kontakte nicht über die Zustände der Dienste Users, Load und Disks auf linux03 und linux04 informiert werden, wenn die Master-Services sich im Zustand critical oder unknown befinden. Checks werden jedoch auf alle Fälle ausgeführt. Mögliche Optionen für die failure_criteria sind u unknown, w warning, c critical, p pending, o ok und n none. Die Variable inherits_parent prüft zusätzlich die Master-Services daraufhin, ob diese nicht von weiteren definierten servicedependencies abhängig sind. Für hostdependency fallen die Variablen service _description und dependent_service_description weg. Abhängigkeitsüberprüfungen erfolgen normalerweise nur für den Status Hard. Wünschen Sie, dass Abhängigkeitsüberprüfungen auch für den Status Soft stattfinden, ändern Sie bitte in der Hauptkonfigurationsdatei die Variable soft_state _dependencies auf 1. ### 21.2.3 Überwachung verschiedener Systeme Sie können unter Nagios nicht nur allgemeine Konfigurationen vornehmen, sondern auch einrichten, dass verschiedene Dienste und Objekte überwacht werden. Die folgenden Beispiele sollen Ihnen verdeutlichen, wie Sie diese Funktionen einrichten. #### Windows-Hosts Sie überwachen Windows-Hosts mithilfe des NSClients, der ein einfacher, aber sehr effizienter Monitoring-Dienst für Windows-Betriebssysteme ist. Dieser Agent ist das Bindeglied zwischen dem Main-Host und dem entfernten Windows-Rechner. Dieser NT-Dienst läuft auf dem Windows-Host im Hintergrund und ruft über das Plug-in check_nt Systemwerte ab, die dann von dem Monitoring-Host abgefragt werden können. #### Installation auf dem Windows-Rechner Laden Sie sich die aktuelle Version des NSClients von der Seite sourceforge.net/projects/nscplus herunter. Entpacken Sie die Dateien in ein Verzeichnis Ihrer Wahl, z. B. C:\ NSClient++. Bitte beachten Sie, dass der Client erst konfiguriert werden muss, bevor er gestartet und installiert werden kann. Dies können Sie in jedem beliebigen Editor vornehmen. Geben Sie nun den folgenden Befehl in der Kommandozeile ein, nachdem Sie in Ihr gewähltes Verzeichnis gewechselt sind:
    nsclient++ /install
Der NSClient läuft nun als Windows-Dienst und wird nach einem Neustart automatisch mitgestartet. Mit dem folgenden Befehl installieren Sie ein NSClient++-Icon im Infobereich der Taskleiste:
    nsclient++ SysTray
Öffnen Sie nun bitte die Datei NSC.ini: Den [modules]-Abschnitt aktivieren Sie durch Entfernen der Kommentarzeichen, mit Ausnahme von CheckWMI.dll und RemoteConfiguration.dll Entfernen Sie ebenfalls die Kommentarzeichen vor der allowed_hosts-Option im SettingsAbschnitt, und fügen Sie die IP-Adresse des Nagios-Servers ein. Optional können Sie dort auch ein Passwort in der password-Option hinterlegen. Setzen Sie den Wert in der port-Option im [NSClient]-Abschnitt auf 12489. Nun können Sie den NSClient starten:
    nsclient++ /start
#### Konfiguration auf dem Nagios-Rechner Hinterlegen Sie zunächst in der Hauptkonfigurationsdatei die Pfade zu den Konfigurationsdateien:
    cfg_file=/usr/local/nagios/etc/objects/windows.cfg
    cfg_file=/usr/local/nagios/etc/object/commands.cfg
Bitte beachten Sie, dass Sie jede relevante cfg-Datei dort ebenfalls mit einem kompletten Pfad angeben müssen. Im nächsten Schritt editieren Sie windows.cfg. Definieren Sie den Host und die Services, die überwacht werden sollen, z. B. so:
    define host {
        use                  windows-server
        host_name            winserver
        address              192.168.1.2
    }
    define service {
        use                  generic-service
        host_name            winserver
        service_description  CPU Load
        check_command        check_nt!CPULOAD!-l 5,80,90
    }
Im nächsten Schritt legen Sie in commands.cfg das Kommando fest, mit dem das Plug-in check_nt aufgerufen werden soll. Im Bereich PASSWORD tragen Sie bitte dasjenige Passwort ein, das Sie im Settings-Abschnitt in NSC.ini eingetragen haben:
    define command
    {
    command_name  check_nt
    command_line  $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s PASSWORD -v $ARG1$ $ARG2$
    }
Im letzten Schritt starten Sie Nagios neu. Die Überwachung des Windows-Hosts sollte nun funktionieren:
    service nagios restart
Mithilfe von Nagios können Sie unter anderem folgende Dienste zu überwachen: Speicherbelegung CPU-Auslastung Plattenbelegung Zustände von Diensten laufende Prozesse #### Linux-Hosts Den eigenen Linux-Rechner (Nagios-Host) überwachen Sie direkt mit Nagios. Definieren Sie hierzu die Hosts, Services und Kommandos in den entsprechenden cfg-Dateien:
    define host {
        use                  linux-server
        host_name            localhost
        address              127.0.0.1
    }
    define service {
        use                  local-service
        host_name            localhost
        service_description  Current Users
        check_command        check_local_users!20!50
    }
    define command {
        command_name         check_local_users
        command_line         $USER1$/check_users -w $ARG1$ -c $ARG2$
    }
Wie für die Windows-Hosts auch lassen sich unter anderem folgende Dienste überwachen: Speicherbelegung CPU-Auslastung Plattenbelegung angemeldete Benutzer laufende Prozesse Entfernte Linux-Rechner können Sie passiv mit NSCA bzw. aktiv über NRPE oder SSH überwachen. #### Switch Sie überprüfen die Erreichbarkeit von Switches mit check _ping oder check_icmp. Je nach Switch-Typ und -Alter können Sie über SNMP Informationen aus dem Switch holen, beispielsweise empfangene, gesendete und fehlerhafte Daten, aber auch die Uptime. Ein Beispiel eines SNMP-Checks wäre:
    define service {
        use                   generic-switch
        host_name             <Name>
        service_description   <Service-Name>
        check_command         check_snmp!-C public ?o <SNMP-Adresse>
    }
SNMP bezeichnet die MIB (Managment Information Base), die die einzelnen Object-IDs beschreibt und festlegt, was dort für Werte ausgegeben werden. Auf einem D-Link-Switch wäre dies zum Beispiel für die Anzahl gesendeter Bytes auf Port x:
    check_command    check_snmp!-C public ?o .1.3.6.1.2.1.2.2.1.16.x
Weitere Möglichkeiten sind:
    Anzahl empfangener Bytes        .1.3.6.1.2.1.2.2.1.10.x
    Anzahl empfangener Pakete       .1.3.6.1.2.1.2.2.1.11.x
    Anzahl fehlerhafter Pakete      .1.3.6.1.2.1.2.2.1.20.x
    Uptime  sysUpTime.0
Über einen Zusatz hinter der MIB können Sie auch Grenzen für -w Warning und -c Critical definieren. #### Drucker Drucker, auf denen SNMP aktiviert ist, können Sie über das Plug-in check _hpjd überwachen. Bevor Sie die cfg-Dateien definieren, achten Sie bitte darauf, dass die Pakete net-snmp und netsnmp-utils auf dem System installiert sind und dass sich das Plug-in im Pfad /usr/local/nagios/libexec befindet. In der Hauptkonfigurationsdatei müssen alle relevanten Pfade angegeben werden:
    cfg_file=/usr/local/nagios/etc/objects/printer.cfg
In der Datei printer.cfg legen Sie beispielsweise Folgendes fest:
    define host {
        use                  generic-printer
        host_name            hplj2605dn
        address              192.168.1.30
    }
    define service {
        use                  generic-service
        host_name            hplj2605dn
        service_description  Printer Status
        check_command        check_hpjd!-C public
    }
In der Datei commands.cfg definieren Sie die Befehle:
    define command {
        command_name    check_hpjd
        command_line    $USER1$/check_hpjd -H $HOSTADDRESS$ $ARG1$
    }
Starten Sie Nagios nun bitte neu:
    service nagios restart
Das Plug-in kann zum Beispiel auch folgende Zustände erkennen: Papierstau kein Papier mehr Drucker offline Tonerstand niedrig Speicher unzureichend Ausgabefach voll ### Ihr Kommentar Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
<< zurück | <top> | vor >>
Zum Katalog
Ubuntu GNU/Linux Jetzt bestellen
Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen? Ihre Meinung
Buchtipps
| Linux
| IT-Handbuch für Fachinformatiker
| Webserver einrichten und administrieren
| Xen
| VirtualBox
| LPIC-1
| Einstieg in Ubuntu 8.10 »Intrepid Ibex«
| Einstieg in Ubuntu Linux - Videotraining
| Debian GNU/Linux
Shopping
Versandkostenfrei bestellen in Deutschland und Österreich Info

Copyright © Galileo Press 2009
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

[Galileo Computing]
Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de