Ein Buch über Icinga 2

Erscheint am 27. Juni 2016

 
41suqaLOyCL._SX336_BO1,204,203,200_April 2015, nach Monaten des Schwankens machten sich dann zwei verbliebene Möchtegernautoren doch auf ein Buch zum Thema Icinga 2 zu verfassen. Wir wollten ein sehr praxisnahes Werk mit vielen Beispielen wie und mit welchen Plugins etwas zu überwachen ist. Herausgekommen sind 344 Seiten von denen sich 100 mit Plugins und deren Verwendung in Icinga 2 befassen. Vorweg erfolgt eine generelle Einführung, die Vorstellung des neuen Webinterfaces Icingaweb 2 als auch eine ausführliche Erläuterung wie man lokale Werte wie Load bzw. CPU bei Windows oder Disk Usage mit NRPE/NSClient++, SSH und selbstverständlich mit dem neuen Icinga Agenten ermittelt.
Dem Kapitel über Plugins ist noch die Vorstellung einer fiktiven Firma vorangestellt. Diese betreibt ein zweigeteiltes Netzwerk mit einem internen Netz und eine durch Perimeter abgetrennte DMZ. Anhand dieses Beispiels wird eine verteilte Überwachung implementiert. Im internen Netz ist ein Icinga-Server (Master) für die Überwachung der dortig angesiedelten Server und Dienste zuständig. Für die DMZ wird ein weiterer Icinga-Server (Satellit) verwendet, der die ermittelten Ergebnisse an den Master meldet.
Diese Icinga-2-Infrastruktur wird dann im Folgenden benutzt, um eine Vielzahl von Diensten zu überwachen:

  • Host Erreichbarkeit
  • Zeitserver und lokale Zeit
  • Webservices incl. Apache und Ngnix
  • Domain Name Services
  • DHCP
  • Kerberos
  • Mailempfang und -versand
  • Proxy-Server
  • Generische Portüberwachung am Beispiel von Jabber
  • Javabasierte Application-Server
  • SAP
  • Kibana
  • Microsoft-Infrastrukturdienste: CIFS, Terminalservice, Domaincontroller, Exchange
  • Datenbanken: MySQL, PostgreSQL, MS SQL, Oracle
  • LDAP
  • Redis
  • Elasticsearch
  • VMware vSphere
  • Hardware: IPMI, HP, Oracle Solais, Thomas Krenn, Netzwerk, Festplatten
  • NetApp
  • Qnap

Das letzte Drittel ist Graphing mit PNP4Nagios und Graphite, Logmangement, Reporting und Businessprozessen gewidmet.
Teilbereiche werden von den beiden Autoren in einem Workshop vor der diesjährigen Open Source Monitoring Conference mit den Teilnehmern zusammen praktisch umgesetzt.

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.

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.

Solaris Zone Cluster überwachen

Immer wieder entstehen in Kundenprojekten nette kleine Plugins und nicht immer findet sich die Zeit diese abzurunden, zu dokumentieren, für jeden Anwendungsfall parametrisierbar zu gestalten und sie jedermann zugänglich zu machen.
Häufig ist das ziemlich schade, weil man in sehr kurzer Zeit etwas Nützliches gestrickt hat von dem auch andere profitieren können. Ein solches Beispiel findet sich hier im Anhang. Es prüft den Zustand von Solaris-Zone-Clustern samt aller Ressourcen. Dabei verlangt es nach keinem Parameter und geht davon aus, dass jede Ressource genau einmal laufen muss – außer sie hat “global” im Namen. In letzterem Fall muss sie überall funktionieren. Keine besonders elegante Lösung, aber sie scheint wunderbar zu funktionieren.
Da ich Solaris nicht gerade täglich nutze, würde ich mich hierzu über Feedback freuen. Macht ein Plugin auf diese Weise Sinn? Gibt es elegantere Wege um herauszufinden, wo was laufen soll? Wie kann man den “global-Hack” loswerden? Welche Parameter könnte man erlauben, ohne einen ganzen Parameter-Zoo einzurichten?
Das Plugin findet sich hier: check solaris cluster.pl

Thomas Gelf
Thomas Gelf
Principal Consultant

Der gebürtige Südtiroler Tom arbeitet als Principal Consultant für Systems Management bei NETWAYS und ist in der Regel immer auf Achse: Entweder vor Ort bei Kunden, als Trainer in unseren Schulungen oder privat beim Skifahren in seiner Heimatstadt Bozen. Neben Icinga und Nagios beschäftigt sich Tom vor allem mit Puppet.