Seite wählen

NETWAYS Blog

check_by_ssh mit Icinga 2

tips and tricksAb und zu stehe ich vor dem Problem, dass ich auf einem zu überwachenden System den Icinga 2 Agent nicht benutzen kann.
Anstatt irgendwie das alte (und teils unsichere) NRPE zu benutzen, greife ich dann oft gerne auf check_by_ssh zurück.
Ein Remote-Check funktioniert relativ einfach:

.../check_by_ssh -H web1.example.com -l monitoring -i /etc/icinga2/secure/id_rsa -C '/usr/lib/nagios/plugins/check_users -w 3 -c 5'

Wie man an der Kommandozeile erahnen kann, rufen wir hier einfach per SSH ein Nagios Plugin auf.
Nun habe ich in der Icinga 2 Welt den Vorteil, dass ich saubere Kommandozeilen bauen kann, d.h. Icinga 2 kümmert sich darum, einen Befehl zu bauen, in dem alle Parameter sauber formatiert, und auch „escaped“ sind.
Das by_ssh CheckCommand in der Icinga 2 ITL bietet ein kleines Hilfsmittel dafür an, hier ein einfacher Service als Beispiel:
mehr lesen…

Heute Solaris mit Icinga 2 überwacht

OpenSolarisLogo2Auch heute sind immer noch einige Solaris Kisten im Einsatz und wollen mit Icinga überwacht werden, wie heute beim Kunden in der schönen Stadt Leipzig. Da vom Icinga Projekt keine Pakete für Soalris zur Verfügung gestellt werden und ein Übersetzen für einige Hosts zu aufwendig scheint, bleibt neben NRPE nur noch die Überprüfung per SSH. Die benötigten Plugins gibt es mit Installationsanleitung auf OpenCSW.

template CheckCommand "by_ssh_base" {
  import "by_ssh"
  vars.by_ssh_plugindir = PluginDir
}
object CheckCommand "by_ssh_load" {
        import "load"
        vars.by_ssh_arguments = arguments
        arguments = null
        vars.by_ssh_command = "$by_ssh_plugindir$/check_load"
        import "by_ssh_base"
}

Seit Icinga 2 2.3.11 können mit dem CheckCommand by_ssh in Kombination mit weiteren, neue Commands zusammengeschraubt werden, die auf den bekannten, wie z.B. load basieren. Damit lassen sich dann auch die Custom Attribute von load und by_ssh für die eigenen Zwecke benutzen, um auf einem Host den sshd auf Port 222 anzusprechen und die Schwellwerte für den Load zu setzen.

object Host "solaris-kiste" {
  import "generic-host"
  vars.by_ssh_port = 222
  vars.load_wload1 = 2
  vars.load_cload2 = 4
  vars.by_ssh_plugindir = "/opt/csw/libexec/nagios/plugins"
}

Wer sich Tipparbeit sparen möchte, sind hier einige CheckCommands im obigen Stiel hinterlegt. Und natürlich lässt sich alles auch für andere Unix-Derivate adaptieren.

Lennart Betz
Lennart Betz
Senior Consultant

Der diplomierte Mathematiker arbeitet bei NETWAYS im Bereich Consulting und bereichert seine Kunden mit seinem Wissen zu Icinga, Nagios und anderen Open Source Administrationstools. Im Büro erleuchtet Lennart seine Kollegen mit fundierten geschichtlichen Vorträgen die seinesgleichen suchen.