Schreibe einen Kommentar

Von Hamstern und Systemadministratoren – cucumber-nagios

In seinem Gastbeitrag beleuchtet  Tobias Scherbaum, Autor vom Praxisbuch Nagios, das interessante Nagios-Check-Plugin cucumber-nagios, das automatisch die Verfügbarkeit von Web-Diensten prüft.

Mit den üblichen Check-Plugins, welche Nagios von Haus aus mitbringt, lässt sich die Verfügbarkeit von Diensten wunderbar prüfen. Hier beginnt aber auch schon das Dilemma: Die Verfügbarkeit eines Dienstes sagt noch nicht wirklich viel über die praktische Nutzbarkeit des Dienstes aus. Ein Webserver kann weiter munter Webseiten mit dem Status-Code 200 ausliefern, auch wenn die Webseite für den Nutzer praktisch nicht mehr nutzbar ist. Stellen Sie sich die eBay-Webseite ohne funktionierende Suchmöglichkeit vor – die Seite ist zwar grundsätzlich verfügbar, ein für den Nutzer wichtiger Bestandteil der Funktionalität  jedoch nicht.

Brauchte man bisher entweder einen Hamster, der regelmäßig genau diese Funktionalität prüfte, oder zumindest grundlegende Perl-Kenntnisse und etwas Zeit um ein eigenes Check-Plugin zu programmieren, gibt es mit cucumber-nagios eine echte Alternative. Exemplarisch wollen wir die Suchfunktion auf der O’Reilly Webseite prüfen und sicherstellen, dass das Praxisbuch Nagios im Online-Katalog gefunden werden kann. Lassen Sie uns den Hamster wieder in den Käfig bringen 😉

cucumber-nagios ist in der Programmiersprache Ruby entwickelt und wird als „RubyGem“ verteilt, vergleichbar mit dem CPAN von Perl. Die Installation inklusive aller benötigten Abhängigkeiten geht folglich recht einfach vonstatten, solange Sie ruby und rubygems bereits installiert haben – die Pakete hierzu sind jedoch in aktuellen Linux-Distributionen bereits vorhanden.

$ gem install cucumber-nagios

Dies installiert nun das Programm mitsamt weiterer benötigter Ruby-Erweiterungen – wenn Sie den Befehl als normaler, nicht-privilegierter Nutzer ausführen, werden die Pakete im ~/.gem Verzeichnis des aktuellen Benutzers installiert. Hier ist dann noch die Anpassung der $PATH-Variable erforderlich, etwa wie folgt:

$ export PATH="$PATH:/home/tobias/.gem/ruby/1.8/bin"

Nun können wir auch schon starten und ein erstes Projekt erzeugen – jede Prüfung, die Sie später als eigenständigen Service in Nagios überwachen wollen entspricht einem Projekt.

$ cucumber-nagios-gen project oreilly
Generating with project generator:
[ADDED]  lib/generators/feature/%feature_name%_steps.rb
[ADDED]  README
[ADDED]  features/steps/result_steps.rb
[ADDED]  features/steps/benchmark_steps.rb
[ADDED]  features/steps/webrat_steps.rb
[ADDED]  features/steps/ssh_steps.rb
[ADDED]  features/support/nagios.rb
[ADDED]  features/support/env.rb
[ADDED]  .gitignore
[ADDED]  .bzrignore
[ADDED]  Gemfile
[ADDED]  bin/cucumber-nagios-gen
[ADDED]  bin/cucumber-nagios
[ADDED]  lib/generators/feature/%feature_name%.feature
Your new cucumber-nagios project is set up.

Im nächsten Schritt sind nun die benötigten RubyGems in das Projekt zu integrieren. Dies ermöglicht das Projekt später auf dem Nagios-Server einfach zu deployen.

$ cd oreilly
oreilly $ gem bundle

Zu guter letzt nun der wichtigste Part – wir legen fest, was wir wo prüfen wollen. Zunächst fügen wir dem zuvor angelegten Projekt ein Feature hinzu. Wichtig hierbei ist, den cucumber-nagios Generator des Projekts zu nutzen. Dieser benötigt zwei Argumente: Eine URL und einen Namen des Features.

oreilly $ bin/cucumber-nagios-gen feature www.oreilly.de search
Generating with feature generator:
[ADDED]  features/www.oreilly.de/search.feature
[ADDED]  features/www.oreilly.de/steps/search_steps.rb

In der Datei features/www.oreilly.de/search.feature beschreiben wir nun unser Prüfszenario. In das tfq benannte Suchfeld geben wir nagios ein, drücken den Los-Knopf und die darauf folgende Katalogseite soll den Text Praxisbuch Nagios enthalten.

Feature: www.oreilly.de
It should be up

Scenario: Visiting home page
When I go to http://www.oreilly.de
And I fill in "tfq" with "nagios"
And I press "Los"
Then I should see "Praxisbuch Nagios"

… und fertig. Nun können wir unser Prüfszenario direkt ausprobieren:

oreilly $ bin/cucumber-nagios features/www.oreilly.de/search.feature
Critical: 0, Warning: 0, 4 okay | passed=4, failed=0, nosteps=0, total=4

cucumber-nagios wertet jeden einzelnen der 4 Schritte als einzelne Prüfung, sowohl die Erreichbarkeit der Webseite, das Vorhandensein des Suchfeldes sowie des Los-Buttons und des Suchergebnisses Praxisbuch Nagios.

Um nun diese Prüfung in Nagios integrieren zu können, kopieren Sie das gesamte Projekt-Verzeichnis in das Nagios-System und rufen dort innerhalb des Projektpfades einmalig den Befehlen gem bundle auf – schon ist die Prüfung einsatzbereit und kann in Ihr Nagios-System integriert werden.

Dieses kurze Beispiel vermittelt die Idee und Funktion hinter cucumber-nagios, mehr verrät die Webseite des Projekts.

Tobias Scherbaum arbeitet als System-Administrator und befasst sich seit einigen Jahren mit System- und Netzwerkmonitoring aufbauend auf Nagios. Neben den Stärken und der Vielzahl an Möglichkeiten die das Nagios-System bietet, kennt er auch die Grenzen des Systems. Für die Gentoo-Distribution betreut er die Paketierung von Nagios und weiteren Anwendungen rund um die Monitoringlösung, die weltweit von kleinen,mittleren und auch großen Unternehmen eingesetzt wird.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.