Drupalseiten überwachen mit Nagios - ein Tutorial

Cocomore

Das Tutorial bezieht sich auf die Installation und Einrichtung von Nagios in Zusammenarbeit mit Drupal 7. Beschrieben wird wie man Nagios dazu bringt Drupalseiten zu überwachen.

Einleitung

Das Tutorial bezieht sich auf die Installation und Einrichtung von Nagios in Zusammenarbeit mit Drupal 7. Beschrieben wird wie man Nagios dazu bringt Drupalseiten zu überwachen.

Um Nagios mit Drupal zu verbinden gibt es ein Modul für Drupal. Dieses Modul stellt unter anderem auch ein Plug-In für den Nagios bereit.

Hier ein kleiner Ausblick auf die Funktionen des Modules:

  • Überwachen des Drupal-Cores
  • Überwachen der installierten Drupal Module
  • Überwachung anstehender Updates für das Datenbank Schema

Die weiteren Eigenschaften des Modules können auf der Modulseite von Drupal nachgelesen werden.

Nagios3

Nagios3 ist ein leistungsfähiges Überwachungssystem nicht nur für Hardware sondern auch für alle gängigen Aufgaben im Softwarebereich. Damit ist gemeint, dass auch Softwareupdates von Drupal Seiten überwacht werden können. Wann wird ein Update benötigt, läuft der Cron von Drupal richtig und vieles mehr.

Nagios ist unter anderem Modular aufgebaut. Dies bedeutet im Einzelnen, dass Nagios mit sogenannten Erweiterungen (Plug-Ins) arbeitet. Diese Plug-Ins können einfache Shell-Scripte sein, einfache oder auch komplexe Konsolenanwendungen für Linux oder andere Scripte, die in das Plug-In Verzeichnis von Nagios, kopiert werden. Die Plug-Ins sind dann global für andere Plug-Ins verfügbar.

Nagios bringt, von sich aus, viele Erweiterung mit. Wie zum Beispiel die Erweiterung zum überprüfen von APT. APT (Advanced Packaging Tool) ist ein Paketmanager für Debian basierte Linuxsysteme. Es gibt auch den APT RPM Paketmanager für RPM basierte Linuxsysteme.

Die weiteren Eigenschaften von Nagios3 können auf der Hauptseite nachgelesen werden. Diese Eigenschaften hier aufzuzählen würde den Rahmen des Tutorials sprengen.

Installation

 

Für die Installation wird eine LAMP (Linux Apache MySQL PHP) Umgebung benötigt. Diese kann ebenfalls über den Packetmanager installiert werden.

Die Installation von Nagios geht recht einfach von Statten. Mittels folgenden Befehl

$sudo apt-get update; sudo apt-get install nagios3 -y

kann der Nagios Server installiert werden.

Bei der Installation wird auch gleich nach einen Passwort für den „nagiosadmin“ gefragt. Hier könnt Ihr ein einfaches Passwort wählen, da dies nur Lokal bei Euch läuft oder ein Starkes, wenn es auf einer Produktionsumgebung laufen soll.

Nach der Installation kann die Seite mit http://localhost/nagios3 aufgerufen werden oder über eine von Euch bereitgestellt Adresse. Wie man einen VHost einrichtet wird auf der Seite von Apache beschrieben. In diesem Beispiel nehme ich meine Virtuelle Entwicklungsumgebung. Anschließend rufe ich die Seite http://debian-vm-server/nagios3/ auf.

 

 

 

 

 

 

 

Der Standardbenutzer für die Weboberfläche sollte „nagiosadmin“ lauten. Nun müsst Ihr noch das von Euch gewählte Passwort eingeben und voila, wir haben eine lauffähige Nagios3 Installation.

Nun könnten wir uns zurücklehnen und unsere Arbeit begutachten oder wir bemühen uns nun darum, dass wir Nagios beibringen mit Drupal zusammen zu arbeiten.

Nagios3 für Drupal einrichten

Das Nagios Drupal Projekt stellt hier ein Plug-In für Nagios3 bereit, dass einfach in das Plug-In Verzeichnis von Nagios3 kopiert werden kann. An dieser Stelle ein Danke an den Autor Khalid Baheyeldin und den Maintainer Greg Harvey, die es ermöglicht haben dieses Modul bereit zustellen.
 
Das Einrichten von Nagios ist nicht so trivial wie viel von euch denken. Das Schwierige daran ist das Einstellen bis ins kleinste Detail. Hier muss man die Dokumentation lesen und vieles ausprobieren.
 
Das Plug-In Verzeichnis von Nagios3 (Debian) sollte standardmäßig unter „/usr/lib/nagios/plugins/“ zu finden sein.
 
Nachdem das Plug-In kopiert wurde machen wir uns daran Nagios3 zu konfigurieren. Dazu müsst Ihr die Datei „/etc/nagios3/nagios.cfg“ mit einem Editor öffnen, hier verwende ich den Editor „nano“. Anschließend fügen wir noch die folgenden zwei Zeilen hinzu.

cfg_file=/etc/nagios3/objects/drupal/drupal.cfg cfg_file=/etc/nagios3/objects/drupal/cmd-drupal.cfg
 

Danach könnt Ihr mit CTRL+O gefolgt von ENTER speichern und mittels CTRL+X den Editor beenden.
 
Wenn das Verzeichnis „/etc/nagios3/objects/drupal/“ nicht existiert wird es mittels „mkdir -p /etc/nagios3/objects/drupal“ erstellt. In diesem Verzeichnis legen wir nun mittels „touch cmd-drupal.cfg drupal.cfg“ die beiden Dateien an. Danach können wir die Dateien editieren und an unsere Bedürfnisse anpassen.
Zu erst editieren wir die Datei „cmd-drupal.cfg“ mit einem beliebigen Editor. In diesem Fall nehme ich wider den „nano“ und füge folgende Zeilen hinzu.
 
define command{
  command_name  check_drupal
  command_line  /usr/lib/nagios/plugins/check_drupal -H $HOSTNAME$ -U $ARG1$ -t $ARG2$ -P $ARG3$
        }

In dieser Datei wird das Kommando, für das Plug-In, definiert. Die hier angegebenen Parameter können im Plug-In mittels „/usr/lib/nagios/plugins/check_drupal --help“ nachgeschlagen werden.
 

Als zweites editieren wir die Datei „drupal.cfg“. In dieser Datei definieren wir den Host, die Host Group und den Service. Wenn wir später weitere Seiten unter der gleichen Host Group definieren können wir Sie hier einpflegen. Nun fügen wir folgende Zeilen hinzu.
 
 
define host{
        use             generic-host
        host_name       drupal-cdd-seven.dev
        alias           drupal-cdd-seven.dev
        }

define hostgroup{
        hostgroup_name drupal-servers
        alias         Drupal Servers
        members       drupal-cdd-seven.dev
        }

define service{
     hostgroup_name         drupal-servers
     service_description    DRUPAL
     check_command          check_drupal! 7fde4557f7df3e824a083bc5c0fc449e!30!de/nagios
     use                    generic-service
     notification_interval  0
   }

In dieser Datei wird das Kommando, für das Plug-In, definiert. Die hier angegebenen Parameter können im Plug-In mittels „/usr/lib/nagios/plugins/check_drupal --help“ nachgeschlagen werden.
 

Als erstes definieren wir einen Host „define host“ und tragen hier hinter den Parameter den Wert „generic-host“ ein. Man kann auch eigene Host Template erstellen. Hierzu verweise ich auf die Dokumentation bei Nagios. Hier ein Dank an Mike Adolphs für den hilfreichen Beitrag. Nun definieren wir hinter „host_name“ unsere Drupal Hostseite. Abschließend vergeben wir hier noch einen „alias“. Dieser kann beliebig gewählt werden.
 
Als nächstes definieren wir eine Hostgruppe „define host_group“. Als „hostgroup_name“ können wir einen beliebigen Namen wählen. Hier habe ich mich für „drupal-server“ entschieden. Nun können wir hier auch einen „alias“ vergeben. Diesen kann man beliebig benennen. Abschließend geben wir hinter „members“ noch unsere Hostseiten an.
 
In der Service Sektion wird der „check_command“ definiert. Hier muss der erste und der zweite Parameter, nach dem Ausrufezeichen, angepasst werden. Der erste Parameter ist die Unique ID für das Drupal Nagios Modul. Der zweite Parameter ist das „time out“. Die beiden Parameter haben wir vorhin in die Datei „cmd-drupal.cfg“ eingetragen. Jeder weiter Parameter wird mit einem Ausrufezeichen „!“ getrennt.
 
... -U $ARG1$ -t $ARG2$
Anschließend können wir unsere Konfiguration mittels
$nagios3 --verify-config nagios.cfg

überprüfen. Es sollten keine Fehler auftauchen.
 

Jetzt müssen wir nur noch den Nagios-Server neustarten. Dies kann man mittels folgenden Befehl erreichen:
 
$/etc/init.d/nagios3 restart
Nun haben wir die beiden Dateien angelegt und an unsere Bedürfnisse angepasst. Jetzt geht es darum Drupal mit Nagios zu verbinden.
 
 
 
 
 
 
 

Drupal für Nagios3 einrichten

Nun benötigen wir eine lauffähige Drupal 7 Installation. 
 
Hier gehe ich nicht auf die Installation von Drupal ein, da dies sonst den Rahmen des Tutorials sprengen würde. Stattdessen erkläre ich Schritt für Schritt wie man das Modul ohne großen Aufwand einschaltet und konfiguriert.
 
Hierzu dient mir „drush“. Was einem die Arbeit in Sachen download, Installation und aktivieren erheblich erleichtert.
 
 

 

 

 

$drush pml | grep nagios

und mittels diesem Befehl kann man das Modul einschalten.

$drush en nagios -y

 

Ist das Modul noch nicht vorhanden kann es mit Drush, sehr leicht, nachinstalliert werden. Dazu folgenden Befehl im „root“ Verzeichnis von Drupal ausführen
 
$drush dl nagios -y; drush en nagios -y

und voila das Modul wurde heruntergeladen, installiert und eingeschaltet. Der Schalter „-y“ unterdrückt die Eingabe von „y“. Nun tragen wir noch die Unique ID ein, die wir vorhin in die Datei „drupal.cfg“ geschrieben haben.
 

In der Einstellungsmaske können noch weitere Parameter (Werte) für das Drupal Nagios Modul eingestellt werden. Für die Hilfe der einzelnen Einstellungen gibt es ein kleines Overlay vom Modul was einem anzeigt was die jeweilige Einstellung bewirkt.
 
Nachdem alles eingestellt wurde, können wir unsere Einstellungen speichern.
Nach erfolgreichem Einrichten kann man die Nagios Status Seite „http://debian-vm-server/nagios3/“ erneut aufrufen. Die Drupal Seite ist nun unter den Host Groups von Nagios sichtbar.
 
 
 

 

 

 

 

 

 

Nun können wir uns entspannt zurücklehnen und zuschauen wann es ein Update für Drupal gibt oder einfach weiter Arbeiten und weitere Seiten hinzufügen.

Über Cocomore

Als Agentur für Marketing, IT und Experience Design entwickelt Cocomore mit insgesamt 180 Mitarbeitern an den Standorten in Frankfurt am Main, Köln, Genf (Schweiz) und Sevilla (Spanien) Kommunikations-, E-Commerce- und CRM-Lösungen (Customer Relationship Management). Zu den Kunden von Cocomore gehören unter anderem Merck, Nestlé, Procter & Gamble, Rabobank, Syngenta, Tele Columbus und die European Broadcasting Union. Cocomore hat Projekte in über 30 Ländern realisiert.