Hoch zu: Inhalt
Siehe auch:
Entwicklung von Plugins für die Nutzung mit Embedded Perl
Einführung
Nagios kann für die Unterstützung eines eingebetteten Perl-Interpreters (embedded perl interpreter) kompiliert werden. Dies erlaubt es Nagios, Perl-Plugins effizienter als sonst auszuführen, also mag es interessant sein, wenn Sie sich viel auf Plugins verlassen, die in Perl geschrieben sind.
Ohne den eingebetteten Perl-Interpreter führt Nagios Perl- (und andere) Plugins durch „forking“ und ausführen als einen externen Befehl aus. Wenn der eingebettete Perl-Interpreter benutzt wird, kann Nagios Perl-Plugins durch einen einfachen Library-Call ausführen.
Hinweis: Der Perl-Interpreter arbeitet mit allen Perl-Scripten, die Nagios ausführt - nicht nur Plugins. Diese Dokumentation behandelt den eingebetteten Perl-Interpreter in Verbindung mit Plugins für Host- und Service-Prüfungen, aber sie trifft genauso auf andere Arten von Perl-Scripten zu, die Sie vielleicht für andere Arten von Befehlen benutzen (z.B. Benachrichtigungs-Scripte, Eventhandler-Scripte usw.).
Stephen Davis hat den originalen eingebetteten Perl-Interpreter-Code vor einigen Jahren beigetragen. Stanley Hopcroft war die erste Person, die geholfen hat, den eingebetteten Perl-Interpreter-Code zu verbessern und die die Vor- und Nachteile bei der Benutzung kommentiert hat. Er hat auch verschiedene hilfreiche Hinweise zur Erstellung von Perl-Plugins gegeben, die sauber mit dem eingebetteten Interpreter arbeiten.
Es sollte angemerkt werden, dass sich „ePN“ - wie in dieser Dokumentation benutzt - auf „embedded Perl Nagios“ bezieht, oder wenn Sie das bevorzugen, Nagios mit eingebettetem Perl-Interpreter.
Vorteile
Einige Vorteile von ePN (embedded Perl Nagios) umfassen:
Nachteile
Die Nachteile von ePN (embedded Perl Nagios) sind ziemlich die gleichen wie bei Apache mod_perl (d.h. Apache mit einem eingebetteten Interpreter) verglichen mit einem schlichten Apache:
Benutzung des eingebetteten Perl-Interpreters
Wenn Sie den eingebetteten Perl-Interpreter benutzen wollen, um Ihre Perl-Plugins und Scripts auszuführen, dann lesen Sie hier, was Sie tun müssen:
Nagios mit eingebettetem Perl kompilieren
Wenn Sie den eingebetteten Perl-Interpreter benutzen möchten, müssen Sie zuerst Nagios mit der Unterstützung dafür kompilieren. Um dies zu tun, starten Sie einfach das configure-Script zusätzlich mit der –enable-embedded-perl-Option. Wenn Sie aktivieren wollen, dass der Perl-Interpreter intern kompilierte Scripts in einem Cache ablegen soll, dann nutzen Sie die –with-perlcache-Option. Beispiel:
./configure --enable-embedded-perl --with-perlcache //otheroptions...//
Sobald Sie das configure-Script mit den neuen Optionen ausgeführt haben, müssen Sie Nagios erneut kompilieren.
Plugin-spezifische Benutzung des Perl-Interpreters
Beginnend mit Nagios 3 könenn Sie angeben, welche Perl-Plugins oder Scripts mit dem eingebetteten Perl-Interpreter ablaufen sollen und welche nicht. Das ist besonders dann nützlich, wenn Sie Perl-Scripte haben, die nicht sauber mit dem Perl-Interpreter laufen.
Um Nagios explizit mitzuteilen, ob der Perl-Interpreter benutzt werden soll oder nicht, fügen Sie Ihrem Perl-Script/Plugin einen der folgenden Einträge hinzu…
Um Nagios mitzuteilen, den Perl-Interpreter für ein bestimmtes Script zu nutzen, fügen Sie dem Perl-Script diese Zeile hinzu:
# nagios: +epn
Um Nagios mitzuteilen, den Perl-Interpreter für ein bestimmtes Script NICHT zu nutzen, fügen Sie dem Perl-Script diese Zeile hinzu:
# nagios: -epn
Eine der beiden Zeilen muss innerhalb der ersten zehn Zeilen stehen, damit sie von Nagios erkannt wird.
Hinweis: Wenn Sie nicht explizit die oben genannte Methode nutzen, um Nagios mitzuteilen, den Perl-Interpreter für ein einzelnes Plugin zu nutzen, wird Nagios eine Entscheidung für Sie treffen. Dieser Entscheidungsprozess wird von der use_embedded_perl_implicitly-Variable kontrolliert.
Wenn der Wert auf 1 gesetzt ist, werden alle Perl-Plugins/Scripts (bei denen nicht explizit der ePN aktiviert/deaktiviert ist) mit dem Perl-Interpreter ausgeführt. Wenn der Wert auf 0 gesetzt ist, werden sie NICHT mit dem Perl-Interpreter ausgeführt.
Plugins für die Nutzung mit Embedded Perl entwickeln
Informationen über die Entwicklung von Plugins zur Nutzung mit dem eingebetteten Perl-Interpreter finden Sie hier.