Nagios 3 bietet in Sachen Performance und Flexibilität die bisher größten Fortschritte in der neunjährigen Nagios-Geschichte [1]. Ich bin überzeugt, dass jeder, der heute mit Nagios 2 oder einer früheren Version arbeitet, davon profitiert. Die Installation geht nun noch leichter von der Hand und es lassen sich noch größere Umgebungen überwachen.
Neuerungen für Plugins
Die Plugin-Schnittstelle in Nagios 3 bietet endlich eines der Features, das die Anwender in den letzten Jahren am häufigsten verlangten: mehrzeilige Ausgaben für Plugins, die damit mehr Status-informationen oder Performancedaten zurückgeben können. Diese Änderung haben die Entwickler so implementiert, dass die Kompatibilität mit älteren Plugins gewahrt bleibt.
Gelockert haben sie auch die Beschränkungen für die Datenmenge, die ein Plugin insgesamt liefern darf. Nagios 3 akzeptiert nun bis zu 4 KByte Daten, bevor es den Output beschneidet, um sich vor Überflutung zu schützen.
Weitere Neuerungen betreffen den optional eingebetteten Perl-Interpreter. In der Vergangenheit integrierten einige Distributoren diesen Interpreter per Default in ihre Nagios-Pakete. Das führte zu Problemen, weil zum einen nicht alle Plugins mit ihm laufen und zum anderen der Interpreter selbst häufig Memory Leaks verursachte. Um dieses Problem zu lösen, braucht der Admin nun nicht mehr länger Nagios aus den Quellen selbst zu kompilieren, sondern er kann den Interpreter mit einer Konfigurationsoption abschalten.
Außerdem lassen sich Plugins, die mit dem eingebauten Perl nicht zurechtkommen, nun mit einer Direktive versehen, die bestimmt, dass ein externes Perl sie ausführt. Das ist besonders dann nützlich, wenn der Anwender nur ausnahmsweise auf einen externen Interpreter ausweichen will, in allen andren Fällen aber die höhere Performance der eingebauten Version vorzieht.
Benutzer-Variable
Mit Nagios 3 erhält der Anwender die Möglichkeit, eigene Variablen in Host-,Service- und Kontakt-Definitionen zu verwenden. Diese benutzerdefinierten Variablen speichern zusätzliche Informationen, die zum Beispiel bei der Zusammenarbeit von Nagios mit anderen Applikationen - etwa Trouble-Ticket-Systemen - nützlich sind. Auf die Werte der Variablen greifen Makros zu, sodass sie in eigenen Kommandos für Checks, Benachrichtigung oder Ereignis-Behandlung verwendbar sind. Ein Beispiel könnte so aussehen:
define host{
host_name linux-server
; Custom MAC_ADDRESS variable;
_mac_address 00:06:5B:A6:AD:AA
; Custom INVENTORY_ID variable:
_inventory_id A03569J
; Custom LOCATION variable:
_location Room 451, Lessig Hall
...
}
Obwohl Nagios selbst die besonderen Variablen nicht nutzt, gibt es sie an externe Applikationen weiter. Ein Benachrichtigungs-Skript wäre so etwa in der Lage, den Admin darüber zu informieren, wo der ausgefallene Server steht.