Seite wählen

NETWAYS Blog

Icinga2 GitLab Health Check

GitLab
Neulich hatten wir bei einigen GitLab Updates auf die neueste Version das Problem, dass die Dienste nach dem Update zwar korrekt alle wieder gestartet wurden und daher unser alter Monitoring Check „Service: gitlab“ den Status „Gitlab OK: All services are running!“ zurückgeliefert hat, auch der Check „Service: http git.netways.de“ „HTTP OK: HTTP/1.1 200 OK“ geliefert hat, und daher hat ohne manuelle Prüfung niemand vermutet, dass im Hintergrund doch etwas schief gelaufen war (z.B. die Datenbank Migration während einem Update, oder ein vergessenes skip-XXX File im /etc/gitlab Verzeichnis).
Auch wenn man das Update direkt auf der command line ausgeführt hat, konnte man in der abschliessenden Meldung nicht sehen, ob noch alles o.k. ist.
Festgestellt hat man das dann erst, wenn man sich in der GitLab Admin Area unter „Health Check“ den Status angesehen hat.
Unten ein Beispiel wie es aussieht, wenn alles i.O. ist (Zur Info: Die Beispiel URL und Token gibt es nicht):
GitLab Status
D.h. ein neuer Check musste her, und den gibt es auch direkt bei GitLab zum Downloaden unter:
https://gitlab.com/6uellerBpanda/check_gitlab/blob/master/check_gitlab.rb
Der alte Check lief dabei direkt auf den einzelnen GitLab Hosts. Das war mit dem neuen Check allerdings ein Problem, weil er als Voraussetzung Ruby >2.3 hat, und wir z.B. noch einige Hosts unter Ubuntu Trusty betreiben.
Deshalb wird der neue Check direkt auf dem Monitoring Server (auch Ubuntu Trusty) ausgeführt, der zu diesem Zweck zusätzlich per rvm mit einem z.Zt. neuen Ruby 2.5.1 ausgestattet wurde, wobei im Ruby Skript das Shebang leider hardcoded eingetragen werden musste, weil es (zumindest unter Trusty) nicht anders funktioniert hatte (ohne grösseren Aufwand und vielen Änderungen an anderen Systemdateien):

#!/usr/local/rvm/rubies/ruby-2.5.1/bin/ruby

Nachdem die Token zum Zugriff im Bild oben seit einigen GitLab Versionen deprecated sind zugunsten einer IP Whitelist, hat das den Deploy des Checks zusätzlich erleichtert.
Der Aufruf des Checks sieht dann z.B. so aus:

root@icinga2-server:~# check_gitlab.rb -m health -s https://gitlab.netways.de -k
OK - Gitlab probes are in healthy state

Damit das dann auch funktioniert, muss auf der entfernten GitLab Instanz noch die IP Whitelist unter /etc/gitlab/gitlab.rb eingetragen werden:

gitlab_rails['monitoring_whitelist'] = ['127.0.0.1/8','10.XX.XX.XX/24']

Am besten checkt man natürlich nur über ein internes Netz, wie oben im Beispiel angegeben.
Das ganze kann man auch über ein GitLab Puppet Modul realisieren, indem man die Whitelist über Hiera oder Foreman verteilt:
Beispiel Hierarchie im Foreman:

gitlab:
    gitlab_rails:
      monitoring_whitelist:
      - 127.0.0.1/8
      - 10.XX.XX.XX/24
Stefan Gundel
Stefan Gundel
Senior Systems Engineer

Stefan ist ein Urgestein bei NETWAYS und arbeitet im Managed Services Team. Der internationale Durchbruch gelang Stefan als Fotomodel für den K+K Warenkorb. Nachdem er einige Jahre exklusiv für unseren Kunden StayFriends gearbeitet hat, darf er nun endlich auch wieder in anderen Projekten mitarbeiten.

Monthly Snap August – NETWAYS News | Tipps & Tricks | Upcoming… | Corporate Blogging


 
„Das @netways Blog kann man auch generell einfach mal empfehlen: https://www.netways.de/  – immer wieder spannende Sachen bei den Posts dabei“, twittert Felix Kronlage Anfang August. Das freut mich und meine Kolleginnen und Kollegen natürlich sehr! Denn, wie ihr als fleißige Blog-Leser/innen sicher wisst, das NETWAYS Blog ist, ganz im Geiste von Open Source, ein offenes Gemeinschaftsprojekt, geschrieben von uns, dem NETWAYS Team.
Wir haben unseren Redaktionsplan so organisiert, dass das Schreiben wie ein Staffelstab Tag für Tag durch unser Headquarter und von Team zu Team gereicht wird: Montags Shop & Sales, dienstags Events & Marketing, mittwochs Managed Services, donnerstags Development, freitags Consulting.  Für samstags planen wir eventuelle Specials und am Monatsende gibt es, so wie heute, einen Rückblick, den Monthly Snap. Der Snap bietet die Gelegenheit, noch einmal zu rekapitulieren. Während ich bei meinem täglichen Blick in das Blog meinen Fokus ja eher auf den einzelnen Beitrag des Tages richte, fällt mir jetzt am Monatsende mal wieder die Bandbreite an Themen und die Vielzahl der Stimmen auf, die unseren Blog und damit NETWAYS ausmachen!
Im besten Falle findet ihr, genau wie Felix, das ein oder andere für euch spannende Thema und klickt euch durch die Links. Viel Spaß dabei!
CEO Bernd hat diesen Monat seine Vergleichsserie wieder aufgenommen und veröffentlicht Icinga, Nagios, Naemon, OMD, Check_MK, Op5, Centreon oder Shinken – Teil III. Außerdem verweist er auf das Bitkom Forum Open Source 2018.

Webinare – Aus der Asche

In NETWAYS Webinare – Aus der Asche erfahrt ihr von Christian mehr über ein kleines Hitze- und Performance-Problem und die Termine aller Webinare in der zweiten Jahreshälfte, während Silke vom Shop & Sales-Team euch darüber informiert: Die neuen STARFACE Pro V6 und STARFACE Compact V3 Anlagen sind da!
Und natürlich gibt es auch wieder eine bunte Kiste voller Tipps und Tricks von unseren Entwicklern, Administratoren und Consultants, die vielleicht auch euch das Leben erleichtern: Jennifer – Feu – verrät „How css-tricks improved my work life“. Thomas weiß, es gibt JSON in bequem. Noah stolpert durch Zufall darüber und ist ab sofort happy mit  Postman – API development and testing made simple. Philipp setzt seine i-doit-Reihe fort mit i-doit API create, update, delete.

La La Lan & Molecule

Max zeigt euch in seiner La La Lan-IT Love Story wie man Linux Netzwerkschnittstellen mit check_nwc_health überwachen kann. Florians Thema: MySQL-Datenbanken verwalten mit Sequel Pro. Tim teilt sein Wissen über Adfree Internet with pi-hole.
Blerim stieß, als er an der Ansible Role für Icinga 2 arbeitete, auf ein hilfreiches Tool. Lest selbst: Testing Ansible Roles with Molecule. Ihr wollt mehr über Icinga 2 wissen, genauer, wie ihr mit Puppet eine dezentrale Icinga 2-Umgebung aufbaut und konfiguriert? Wir haben da einen neuen Workshop! Was euch erwartet, erfahrt ihr von mir in Ice, Ice – Icinga 2 / Puppet – Baby!

GitLab as a Service, Mutual SSL und OpenStack

Gitlab | self-hosted vs. Gitlab as a ServiceMarius wagt den Vergleich! Die vergangenen Monate hat er außerdem genutzt, um eine neue Cloud aufzubauen und weiß nun allerhand über Bursting und Throtteling in OpenStack zu berichten.
Jean beschäftigt sich in The Walrus Has Landed mit Structured Logging in Go und Georg dank einer Kunden-Anfrage mit der Realisierung einer clientbasierten Zertifikats-Authentifizierung (Mutual SSL) mit selbstsignierten Zertifikaten auf Linux + Apache. Sein Motto: Gesagt, getan.

DevOpsDays, OSBConf, OSMC und OSCAMP

Eventmäßig ist der August selbst ein eher ruhiger Monat. Klar: Viele sind in Urlaub, in zahlreiche Länder verstreut. Dafür stehen im Herbst die Zeichen umso mehr auf Get-Together. DevOpsDays | Sep 12. – 13. // OSBConf | Sep 26 // OSMC | Nov 5. – 8. // OSCamp | Nov 8. Mehr erfahrt ihr hier von Keya und mir: Devs are from Venus, Ops are from Mars? – DevOpsDays Berlin Program Online!, Why you shouldn’t miss OSBConf 2018 – #1 und #2, OSMC program online: Check out who’s in! Und OSCAMP #2 on Puppet: Get on stage!

 Und sonst so?

Wir haben Gunnar verabschiedet, ohne den wir Icinga heute so nicht hätten, und unseren ersten neuen Azubi willkommen geheißen, Henrik Triem im Development, und eine Woche Unterstützung von Nadine gehabt, die als Berufsschullehrerin mal Firmenluft schnuppern wollte.
Unser Schulungsraum Kesselhaus hat jetzt Jalousien und kann verdunkelt werden. Wir werden am 17. Dezember ein IcingaCamp in Tel-Aviv veranstalten und Icinga ist jetzt offizieller Partner im HashiCorp Technology Partner Program.
Viele Themen, viele Stimmen, viel Neues, viel Spannendes!
So much happend, more to come! Stay tuned!

Icinga, Nagios, Naemon, OMD, Check_MK, Op5, Centreon oder Shinken – Teil III

Nach ca. 1,5 Jahren dachte ich mir heute das es mal wieder an der Zeit wäre meinen Monitoring-Tool-Vergleich zu aktualisieren. Schließlich musste ich nach 30 Minuten Recherche feststellen, dass mich die Rohrkrepierer der vergangenen Jahre nicht im Stich gelassen haben und weiter mit einem hohen Grad an Inaktivität glänzen. Auch die anderen Projekte blieben im Groben meiner Einschätzung treu und so war ich schon kurz davor meinen Texteditor zu schließen.

Beim Schließen eines der Browser-Tabs bin ich dann jedoch auf ein schönes Video meiner Freunde von Nagios gestoßen und das musste ich einfach verarbeiten. Dazu aber erst am Ende mehr, denn ihr sollt das Ergebnis meiner Arbeit ja auch erstmal lesen.
Wie auch in den vergangenen Posts behandle ich hier nur die Systeme, welche aus dem ursprünglichen Nagios-Ökosystem entsprungen sind. Wer es gerne etwas breiter haben möchte, dem sei der Besuch der diesjährigen OSMC besonders ans Herz gelegt. Noch nie hatten wir so ein vielfältiges und umfangreiches Programm wie 2018 und freuen uns auf viele bekannte aber auch uns unbekannte Referenten. Auf jeden Fall anmelden und dabei sein.
Los geht’s mit einem gekürzten Update und Überblick der aktuellen Landschaft:
Shinken: Im Master gab es dieses Jahr ganze 6 commits und man hat irgendwie den Eindruck das die Luft bei den Freunden etwas raus ist. Auch auf der Enterprise Website sind die letzten News vom April 2016 und ich würde sagen das Ding ist tot. Ich kann mich auch an einige Tweets erinnern, in denen die Entwickler selbst aufeinander los gegangen sind, kann sie jedoch aktuell nicht finden.
Fazit: Ich werde es in Zukunft nicht mehr weiter betrachten, da es sich mit Shinken etwa so verhält wie mit Bratwurstgehäck. Ne gute Idee, wenn es frisch ist, jedoch sollte man die Finger davon lassen wenn es zu lange rumliegt.
Op5: Die Kollegen aus Schweden sind seit Jahren immer fleißig am Werk und seitdem sie Naemon an Stelle von Nagios verwenden, fokussieren sie sich noch mehr auf ihre beiden Hauptkomponenten Merlin und Ninja. Diese werden auch ordentlich als Open Source Projekte und sehr transparent vorangetrieben. Klar ist natürlich das Op5 selbst einen anderen Revenue-Stream hat und mit dem veredelten Produkt Op5 Monitor auf dem Markt aktiv ist. Was mir nicht eingeht ist ihr Logging Produkt Op5 Log Analytics. Natürlich verstehe ich den geschäftlichen Hintergrund und das Ziel dem eigenen Kunden eine Komplettlösung aus einer Hand zu verkaufen. Warum man bei Op5, ähnlich wie bei Nagios, glaubt die Elastic-Lösungen nochmal mit einem eigenen Logo und ergänzendem Flickwerk versehen zu müssen ist mir schleierhaft. Da würde es soviel andere Dinge geben, mit denen sich die Jungs schnell ein Alleinstellungsmerkmal schaffen könnten, aber sie werden schon ihre Gründe haben. UPDATE: Ich habe gerade gesehen das Op5 erst vor wenigen Tagen von der ITRS Gruppe übernommen worden ist. Bleibt also spannend, was die neue Mutter, welche bereits ähnliche Lösungen im Portfolio, daraus macht.
Fazit: Ich denke noch immer, dass Op5, besser gesagt Op5 Monitor, eine solide Unternehmenslösung ist, mit der man sehr viele Anwendungsfälle lösen kann. Wie bei allen Veredlern ist der Schritt über den Standard hinaus immer etwas schwieriger, aber zugegeben braucht das auch nicht jeder. Open Source ist es natürlich nur bedingt, da die Kernkomponenten zwar offen entwickelt werden, aber die fertige Lösung natürlich der USP von Op5 und somit kostenpflichtig ist.
Check_MK: Erstmal Gratulation zur neuen Website und dem Rebranding! Nachdem ich dort schon einige Monate nicht mehr war, ist mir das als erstes positiv aufgefallen. Beim Rest scheint sich im Großen und Ganzen nicht viel verändert zu haben. Das will jetzt nicht heissen das die Kollegen aus München nichts machen, aber ich kann einfach nichts finden. Auf der Website wurde die Screenshot-Section bereits aktualisiert, aber das Demo System hat zumindest noch das alte Design. Auch das Changelog gibt mir keinen Aufschluss auf grundlegend neues, sondern listet überwiegend Bugfixes. Falls jemand der es besser weiß die entsprechenden Infos für mich hat werde ich es gerne nachtragen. Ich hab mir noch ein paar Videos von der Check_MK Konferenz reingezogen, konnte aber nichts finden, was mir jetzt besonders aufgefallen ist.
Fazit: Wenn ich mir ansehe, was die Kollegen so voran treibt, verhält es sich im Fazit ähnlich wie bei Op5. Wenngleich mir bei Op5 das Webinterface besser gefällt, vermute ich das Check_MK die technisch stärkere Lösung ist, da sie sich den käuflichen Varianten auch vom Nagios-Core befreit hat und schon seit vielen Jahren seinen CMC verwendet. Auch gibt es eine API, aber auch Check_MK ist aus meiner Sicht nicht für Automatisierung gemacht, sondern verfolgt einen ganzheitlichen und integrierten Ansatz. Check_MK kümmert sich selbst um Verteilung und Installation seiner Software und zielt auf einen Markt ab, der eine vollintegrierte Lösung haben möchte. Richtig sinnvoll geht das dann aber nur mit der Enterprise- oder Managed-Service Edition.
OMD: Die Freunde von Consol schrauben weiter erfolgreich an ihrem OMD Labs (für welches wohl im September die nächste Version ansteht). Die Zusammenarbeit mit Check_MK hat sich ja schon vor einiger Zeit aufgelöst und so sind aus dem ehemaligen Gemeinschaftsprojekt nun zwei Lösungen entstanden. OMD Labs ist der eigentlichen Idee, nämlich unterschiedlichsten Komponenten für den User einfach zusammenzuschnüren, treu geblieben und sehr aktiv. Besonderes Augenmerk hat man in den letzten Versionen dem Thema Prometheus und der besseren Integration geschenkt. Nach wie vor werden verschiedenen Monitoring-Cores unterstützt und unter Thruk als zentraler Oberfläche zusammengeführt.
Fazit: Wer keine Lust, keine Zeit oder einfach keine Not hat, einzelne Monitoring-Komponenten zu installieren und anschließend zu konfigurieren, dem möchte ich OMD Labs ans Herz legen. Es ist eine solide und offene Open Source Lösung, welche kontinuierlich weiterentwickelt wird und stark vom Service-Know der beteiligten Personen profitiert. In Richtung Management-Sichten, Reporting usw. hat Check_MK mit Sicherheit mehr zu bieten, aber eben erst in den bezahlten Versionen. Hinzu kommt, dass es um OMD herum einen Community gibt und die ehemalige Check_MK Community in andere Kanäle abgewandert ist. Wer übrigens alternativ zu RRD Graphen will, kann das mit der Check_MK Raw Edition ebenfalls nicht machen und sollte gleich OMD nehmen.
Naemon: Sowohl OMD Labs („Hauptcore“) als auch Op5 setzen auf Naemon als Monitoring-Engine. Neben Sven Nierlein schrauben auch einige andere Entwickler an Naemon und es gibt regelmäßig neue Versionen. Bei den Änderungen scheint es sich jedoch eher um kleinere Bug-Fixes und Änderungen zu halten und es sieht nicht so aus, als ob grundlegende Änderungen erfolgen. Grundsätzlich ist das aus der Perspektive der oben genannten Hauptnutzer auch verständlich, da sie die fehlenden Features des Cores in den Frameworks drum herum übernehmen. Beispiel wäre hier API oder direkt Graphing-Integration. Naemon wiederum besteht auch aus dem Core, Livestatus und Thruk als Ersatz für die alten Nagios-CGIs. Aus meiner Sicht ist nicht zu erwarten das hier groß etwas passiert, jedoch können User im Vergleich zu Shinken durchaus davon ausgehen, das auftretende Issues bearbeitet werden und zeitnah in eine Release fließen.
Fazit: Ich persönlich wüsste nicht warum man Naemon standalone einsetzen sollte und würde Interessenten gleich zur Verwendung von OMD Labs raten. Dort bekommen sie zum einen die notwendigen Add-ons mit dazu und können gleich das vorhandene Site-Management nutzen. Als simples Monitoring im kleinen Umfeld mag es aber durchaus seinen Dienst verrichten. Wer am Core selber etwas mehr Features benötigt ist mit Icinga2 sicherlich besser bedient, muss sich dann aber natürlich mit einer anderen Konfigurationssprache auseinandersetzen.
Centreon: Die französischen Kollegen blieben bisher in meinem Vergleich etwas unbeachtet. Das liegt in der Hauptsache einfach daran, dass wir und ich persönlich sehr wenig damit zu tun haben und Centern selten in anderen Umgebungen antreffen. Centreon (früher CES Standard) ist fully Open Source und steht samt Modulen und Webinterface auf der Website zum download bereit. Auch in ihrem Git sind die Kollegen recht aktiv und schrauben an den eigenen Komponenten, welche für die darauf aufbauenden Enterprise-Komponenten benötigt werden. Die Vergleichsmatrix zwischen Nagios und Centreon macht eigentlich auch einen sehr guten Eindruck, jedoch bin ich nicht dazu gekommen das System zu installieren und einem fachlichen Test zu unterwerfen.
Fazit: Ehrlich gesagt weiß ich zu wenig um deren aktuellen Entwicklungsstand um wirklich ein Fazit abzugeben. Um einen Eindruck zu gewinnen empfehle ich den Besuch des Demo-Systems, was wirklich solide aussieht und viele Features mitbringt, welche Op5 oder Check_MK nur gegen Einwurf von Münzen zur Verfügung stellen. Ich freue mich, dass Centreon dieses Jahr auch wieder auf der OSMC dabei ist und werde die Gelegenheit nutzen mit den Damen und Herren zu sprechen und mir das System zeigen zu lassen. Wenn ein Leser dieses Posts noch ein paar Anregungen dazu hat, dann bitte her damit.
Icinga: Im letzten Jahr ist nach außen sehr viel in den Modulen, wie bspw. dem Director passiert, welcher vor einigen Wochen in der Version 1.5 erschienen ist. Wir bereits vor zwei Jahren angekündigt arbeitet das Team gerade mit Hochdruck an der IcingaDB. Mit ihr wollen die Entwickler auch der letzten verbliebenen Nagios-Komponente (zumindest Schema und Funktionsweise) leb wohl sagen. Dabei handelt es sich aber nicht nur um ein neues DB-Schema um Auswertungen komfortabler zu gestalten. Es wird eben auch eine strikte Trennung zwischen Persistenten und Volatile Daten geben, um Millionen an Check sowohl im Core als auch im Web-Interface zu ermöglichen. Letztgenanntes bekommt eben dann auch ein neues Monitoring-Modul, welches ebenfalls an die neue Architektur angepasst werden muss. Da hier ein Großteil der verfügbaren Entwickler-Ressourcen reingesteckt wird, sind Themen wie NoMa und auch die Mobile-App etwas in Verzug geraten. Vergessen sind sie aber nicht, keine Sorge. Was Icinga stark macht ist der hohe Komfort bei der Integration anderer Lösungen und die Unterstützung einer Vielzahl von Konfigurationsmanagement-Lösungen. Gerade in größeren Umgebungen spielt Icinga hier seine Stärke aus. Auf Basis der neuen Architektur wird dann auch dem Thema Micro-Services eine stärkere Beachtung zukommen, da hier oft sehr volatile Anwendungen überwacht und das Monitoring quasi sekündlich an die neuen Rahmenbedingungen angepasst werden muss.
Fazit: Icinga ist dann das richtige Werkzeug, wenn man die am Markt befindlichen Lösungen für Metriken, Logmanagement, Konfigurationsmanagement usw. nach dem best-of-breed Ansatz kombinieren will. Der Anwender muss hier definitiv ein bisschen mehr Hand anlegen, um die unterschiedlichen Lösungen zusammenzubauen, profitiert dann aber auch von der Flexibilität, die er sich damit erarbeitet hat.
Das Fazit hat sich im Vergleich zum Vorjahr lustigerweise nicht geändert, wenngleich wir in vielen Punkten in Richtung einer besseren Integration und leichteren Installation arbeiten. Aber dazu gibt es in den nächsten Monaten noch vieles zu erzählen 🙂
Nagios: Als die Nagios-Konferenz in den USA mangels Teilnehmer im letzten Jahr abgesagt wurde hatte ich wirklich Mitleid. Es ist mir ein Rätsel, wie man ein Produkt und seine Community, welche im Übrigen für alle oben stehenden Produkte verantwortlich ist, an die Wand fahren kann. Nagios hatte einst alle Zügel in der Hand und die Entwickler haben nur so um die Möglichkeit der Mitarbeit gebettelt. Für die Benutzer war es das Beste was passieren konnte und so steht heute eine Produkt- und Ideenvielfalt zur Verfügung, welches es ohne Versagen von Nagios nicht gegeben hätte. Open Source at its finest würde ich sagen. Wir blicken sicherlich auf eine schwierige gemeinsame Vergangenheit zurück, aber letztendlich ist der Markt groß genug und ich gönne jedem, der hart daran arbeitet, seinen Erfolg. Bei Recherche der Nagios-Website sind mir dabei drei wesentliche Sachen und Neuerungen aufgefallen:

  • Auch Nagios hat sich vor vielen Jahren versucht die unterschiedlichen Projekte zu vergleichen und scheinbar haben sie diese Vergleiche auch ab und an aktualisiert. Die Vergleiche sind leider für jedes andere Produkt absolut lächerlich und entbehren jeder Grundlage. Dacia vergleicht sich ja in der Regel auch nicht mit Audi.
  • Ich hab mit der Demo ihres Log-Servers, Produktname Nagios Log Server, etwas gespielt und finde das Produkt eigentlich nicht schlecht. Wie bei Op5 stellt sich mir zwar die Frage ob man mit einer reinen Open Source Variante wie Elastic(Stack) oder Graylog nicht besser fährt, aber ich habe den Eindruck das man sich bei dem Produkt Mühe gegeben hat.
  • Am Core wird eigentlich nach wie vor „nichts“ gemacht. Zwar gab es im letzten Jahr eine Enhancement-Release (4.4.0), aber das war eher auch nur Kleinigkeiten. Wie weit Nagios und Naemon da in der Zwischenzeit auseinander sind kann ich schwer beurteilen, ich habe aber nicht den Eindruck, dass es signifikante Unterschied. Im Vergleich zu den anderen Veredlern hätte Nagios ja eigentlich alles in der Hand, aber scheinbar keinen Druck, Not oder auch Know-how.

Fazit: Es ist mir schleierhaft, wie und warum Nagios sich noch immer gegen andere Veredler wie Naemon oder Op5 durchsetzen kann. Klar haben sich alle anderen über die letzten Jahre vom Nagios-Core entkoppelt und sind nicht mehr auf Nagios angewiesen. Auf der anderen Seite sind alle anderen wesentlich innovativer, wenn es um das komplette Produkt geht.
Das oben angesprochene Highlight ist für mich jedoch das Nagios-Produkt-Video, welches ich auf der Landing-Page gefunden habe. Das Video mit dem Titel „Nagios – Customers First“ bewirbt so ziemlich jede Branche auf dem Planeten, sagt aber ca. nix über Monitoring aus. Aber unterhaltsam ist es, daher bitte sehr:

YouTube player

 
Für Feedback bin ich gerne offen und wenn sich jemand ungerecht behandelt fühlt, möge sie oder er es mich bitte wissen lassen. Wenn es darauf hin etwas zu korrigieren oder klarzustellen gibt, werde ich das auch machen.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

Wie überwache ich eine Cluster-Applikation in Icinga 2?

Vor dieser Frage stand ich neulich bei einem Kunden. Und dank dem Rat netter Kollegen kam sogar eine ansehnliche Lösung hervor. Wer kennt das nicht – Applikationen, die in einem Linux-HA Cluster laufen worauf über eine Cluster-Virtual-IP zugegriffen wird. An diese VIP-Ressource sind der Applikationsprozess und womöglich eingehängter Speicher als weitere Cluster-Ressource angeknüpft. Somit sprechen wir von zwei Cluster-Ressourcen, die mit einer Cluster-Ressource der VIP verknüpft sind. Diese Abhängigkeit definiert, dass die Anwendung immer nur auf einem aktiven Cluster-Node im zugewiesener VIP laufen kann. Dies ergibt einen Active und einen Passive Node (in unserem Fallbeispiel!)
 

Was bedeutet das genau?

Die Cluster-VIP kann von Active zum Passive Host anhand von Fehler-Kriterien geschwenkt werden. Somit schwenkt der gesamte Betrieb der Applikation vom aktiven Host auf den passiven Host. Dort wird der Applikationsprozess gestartet und die Disk eingehängt. Würden wir jetzt einfach auf beiden Servern neben den System-Standards noch die Applikation gezielt überwachen, würden wir auf einem der beiden Nodes für den fehlenden Prozess und die fehlende Disk immer den Status „Critical“  bzw. den Status „Unknown“ beim Ausführen des Disk-Checks zurückbekommen.
 

Lösung!

Um eine Überwachung über die Cluster-VIP zu realisieren, verwenden wir ein eigenes Plugin welches als Wrapper fungiert. Der Check verwendet die Cluster-VIP als Parameter und überprüft ob diese an einem lokalen Interface konfiguriert ist. Wird an einem Interface die Cluster-VIP-Ressource zugewiesen, führt das Plugin den eigentlichen Check aus. Dieser wird als zweiter Parameter übergeben und entspricht dem Namen des Checks, z.B. „check_disk“. Durch den Aufruf des Kommandos mit dem Argument „$@“ werden alle Parameter des Wrapper-Scripts an das Plugin übergeben.
 

Plugin-Skript

#!/bin/bash
#
# License: GPLv2, Copyright: info@netways.de NETWAYS GmbH
#
#
plugin_dir=${0%/*}
VIP="$1"
vip_exists=`ip a|grep " inet ${VIP}/"`
echo $vip_exists
shift
command="$1"
shift
if [ ! "$vip_exists" ]; then
  echo "YES! VIP down & I'm STANDBY" && exit $OK
fi
exec ${plugin_dir}/${command} "$@"

Sollte auf einem Cluster-Node die Cluster-VIP nicht zugewiesen sein, gibt der Check den Status „OK“ und den Plugin-Output „YES! VIP down & I’m STANDBY“ zurück.
 

Einrichten des Check-Commands

Nun können wir dieses Plugin im PluginDir-Pfad auf dem zu überwachenden Host ablegen. Zusätzlich benötigen wir noch ein CheckCommand, welches das Wrapper-Script aufruft und dann die Parameter von „disk“ erwartet. Dies kann man so lösen, dass mittels „import“ das bestehende „disk“ CheckCommand importiert wird und lediglich das auszuführende „command“ mit dem Wrapper-Script überschrieben wird. Die Einbindung des CheckCommands sollte am Icinga-2-Master erfolgen, statisch in „commands.conf“ oder im Director.
Im  folgenden sind die Beispiele für eine Disk, Prozess und Logfile-Check aufgeführt. Dieses Set könnte einer typischen Cluster-Applikation entsprechen. Wir definieren einen Service-Prozess und einen Filesystem-Mount/Disk die als Cluster-Ressource an die Cluster-VIP gebunden sind. Diese Applikation schreibt auch Log-Dateien, die möglicherweise zu überwachen sind.

object CheckCommand "vip-disk" {
  import "plugin-check-command"
  import "disk"
  command = [ PluginDir + "/check_vip_app", "$app_vip$", "check_disk" ]
}
object CheckCommand "vip-procs" {
  import "plugin-check-command"
  import "procs"
  command = [
   PluginDir + "/check_vip_app",
   "$app_vip$",
   "check_procs"
  ]
}
object CheckCommand "vip-logfiles" {
  import "plugin-check-command"
  import "check_logfiles"
  command = [
    PluginDir + "/check_vip_app",
    "$app_vip$",
    "check_logfiles"
  ]
  timeout = 1m
}

Die zugehörigen Service-Definitionen könnten so definiert werden:

apply Service "vip-disk" {
  check_command = "vip-disk"
  vars.app_vip = host.vars.app_vip
  command_endpoint = "..."
  assign where host.vars.app_vip
}
apply Service "vip-procs" {
  check_command = "vip-procs"
  vars.app_vip = host.vars.app_vip
  command_endpoint = "..."
  assign where host.vars.app_vip
}
apply Service "vip-logfiles" {
  check_command = "vip-logfiles"
  vars.app_vip = host.vars.app_vip
  command_endpoint = "..."
  assign where host.vars.app_vip
}
Und hier ein Auszug zur Darstellung im icingaweb2:

Service-List Icingaweb2


Service – Plugin Output Icingaweb2



Daniel Neuberger
Daniel Neuberger
Senior Consultant

Nach seiner Ausbildung zum Fachinformatiker für Systemintegration und Tätigkeit als Systemadministrator kam er 2012 zum Consulting. Nach nun mehr als 4 Jahren Linux und Open Source Backup Consulting zieht es ihn in die Welt des Monitorings und System Management. Seit April 2017 verstärkt er das NETWAYS Professional Services Team im Consulting rund um die Themen Elastic, Icinga und Bareos. Wenn er gerade mal nicht um anderen zu Helfen durch die Welt tingelt geht er seiner Leidenschaft für die Natur beim Biken und der Imkerei nach und kassiert dabei schon mal einen Stich.

Icinga, Nagios, Naemon, OMD, Check_MK, Op5 oder Shinken – Teil II

Einen Vergleich der oben genannten Tools hatte ich vor fast drei Jahren einmal gemacht. Seitdem ist viel passiert (SPOILER-ALARM: Nicht bei allen) und ich dachte es wäre mal wieder an der Zeit für ein heiteres Core-Bashing. Ich mache aber keinen Feature-Vergleich, um festzustellen, wer mehr Checks in der Minute ausführen kann. Es geht mir mehr um die Agilität und die strategische Ausrichtung des Projekts. Und in den nächsten Tagen folgt nochmal ein detaillierter Artikel zum Thema Metriken, also schon mal den Sekt kaltstellen.

Grundsätzlich versuche ich bei der Bewertung folgende Kriterien einzubeziehen:

  • Aktivität des Projekts aus Sicht der Code-Basis
  • Aktivität der Community
  • Aktuelle Roadmap und Features
  • Und last but not least, meine persönliche und rein subjektive Sicht

Da wir mit Op5 noch einen Neuen (nicht im Business, aber in der Vergleichsrunde) haben, starten wir gleich durch und fangen an mit… Shinken:
Shinken
Es mag an dem allgemeinen Trend zur veganen Ernährung liegen, aber um Shinken ist es in den letzten Monaten sehr ruhig geworden. Auf dem verlinkten GitHub-Repo ist seit Oktober letzten Jahres nichts mehr in den Master committed worden, was nicht wirklich einen guten Eindruck macht. Auch die Website ist vollkommen veraltet und das Forum scheint offline zu sein. Jetzt denkt man im ersten Moment, das Ding ist komplett tot, aber auf Shinken Enterprise hat man zumindest die Jahreszahl im Footer aktualisiert und es wird hier auch gearbeitet.
Eine Roadmap habe ich auch nach längerer Recherche nicht gefunden. Ich konnte lediglich entdecken, dass Jean Gabès an einem Discovery-Tool mit dem Namen Kunai arbeitet. Vor einigen Monaten ging es in der Community etwas rund und Shinken, eigentlich ja mal als Fork von Nagios gedacht, wurde selbst geforked. Das neue Projekt nennt sich Alignak und hat bereits den Preis für den kompliziertesten Namen einer Monitoring Software gewonnen.
In Frankreich ist Shinken noch immer eine Nummer, da es im Toolkatalog der Behörden als eine Art Standard für Monitoring definiert ist. Features, Roadmap und somit der verbunden Mehrwert sind nahezu nicht ersichtlich und die Website besteht eigentlich nur aus ganz viel heißer Luft.
Mein Fazit: Es tut mir leid, Jean, aber wie bei Austern die zu lange in der Sonne standen, würde ich die Finger von Shinken lassen.
Op5
Ehrlich gesagt habe ich die Kollegen in Schweden lange aus dem Auge verloren. Erst ein paar Gespräche auf der OSMC im letzten Jahr und die Info, dass Andreas Ericsson nicht mehr dort arbeitet, haben meine Aufmerksamkeit wieder mal auf die Freunde im Norden gelenkt. Auch wenn der verwendete Core Naemon, welcher als „unabhängiges“ Projekt hier nochmal ein eigenes Kapitel spendiert bekommt, nicht im GitHub von Op5 zu finden ist, wird dort sonst viel gemacht. Sowohl bei Ninja (dem Webinterface) also auch bei Merlin (der Datenbank und HA-Komponente) wird viel fleißig gebohrt und geschraubt.
Der eigentlich verwendete Core spielt schon seit vielen Jahren für Op5 keine große Rolle, denn als Veredler geht es ihnen vielmehr um Integration und die Erweiterung mit eigenen Add-ons und Tools. Was Neuigkeiten angeht, wird man auch bei Op5 nicht richtig fündig. Das Tech-News-Archive hat seit einigen Monaten keine Neuerung mehr gesehen und eine richtige Roadmap findet man auch nicht.
Strategisch sehe ich Op5 heute da, wo wir vor 8 Jahren hin wollten. Alle möglichen System-Management-Disziplinen aus einem Guss zu kombinieren, sodass der User nichts mehr machen muss. Die Welt hat sich aber verändert und so würde man heute eher Graylog oder den ElasticStack favorisieren, bevor man den integrierten op5 Logger verwendet. Der Naemon-Core und alle anderen Add-ons sind in hoher Qualität miteinander verbunden und der User hat mit der eigentlichen Open-Source-Software nichts zu tun. Somit ist Op5 für mich auch kein Open-Source-Tool und will es vermutlich auch nicht wirklich sein. Die kostenlose Lizenz, die eine Verwendung von 20 Geräten erlaubt, ist in meinen Augen eher ein Marketinginstrument.
Mein Fazit: Op5 Monitor ist ein solides Produkt und wer alles aus einer Box haben möchte, fährt damit mit Sicherheit besser als mit NagiosXI. Der Vorteil der vollintegrierten Lösung ist an dieser Stelle aber auch der größte Nachteil des Werkzeugs. Gerade in den Bereichen Metriken und Loghandling wird es in den nächsten Jahren um seine Bedeutung kämpfen müssen.
Check_MK
Beginnen wir das ganze Thema sachlich: Files sind nicht die Lösung für jedes Problem, NEIN, NEIN, NEIN! Somit wäre das durch und mein strategischer Kampf für die Daseinsberechtigung einer Datenbank im Bereich Monitoring wäre erledigt. Im Bereich des Source-Codes waren die Kollegen aus München schon immer sehr aktiv und so geht es auf deren Git-Repo zu wie in der Münchner S-Bahn zur Rush-Hour. Trotzdem habe ich auch bei Check_MK vergeblich versucht, eine Roadmap zu finden und wurde lediglich im Bereich des Konferenz-Archivs in den vergangenen Jahren fündig. Sollte es eine Public-Roadmap geben, freue ich mich über einen Hinweis.
Nachdem ich mich ein bisschen auf dem Demo-System umgesehen haben, konnte ich dort keine wesentlichen Neuerungen finden. Bei der Durchsicht der letzten Commits wurde jedoch klar, dass sehr viel Energie in den Support der eigenen Check_MK-Checks geht. Die massive Anzahl der integrierten Checks sind für den User mit Sicherheit komfortabel, aber auch eine Bürde für die Entwickler. Wenn man die investierte Zeit hochrechnet, dürfte das mit Sicherheit zulasten von Investition gehen.
Mein Fazit: Vor drei Jahren hatte ich folgendes geschrieben „Ehrlich gesagt glaube ich aber auch, dass Check_mk in der Zwischenzeit eher mit geschlossenen Systemen Op5 Monitor oder OpsView zu vergleichen ist“. Ich würde sagen, die Annahme hat sich vollends bestätigt. Die Dokumentation auf der Website ist gut strukturiert und detailliert, aber ansonsten kann man über Strategie und Ausrichtung fast nichts finden. Persönlich war ich darüber hinaus nie ein Fan von Auto-Discovery, da es aus meiner Sicht alles das nicht ist, was „Infrastructure as Code“ sein sollte. Das Check_mk trotzdem eine große Fangemeinde kann ich nachvollziehen, aber die ist einfach heute isolierter als in der Zeit des reinen Addon-ons.
OMD
Das eigentliche OMD-Projekt scheint es in der Form nicht mehr zu geben. Die Kollegen von Check_MK haben sich aus dem Projekt offensichtlich zurückgezogen und so idled die Website, deren Ownership bei Mathias liegt, eher vor sich hin. Tot ist das Thema jedoch nicht, da sich die Freunde von Consol dem Projekt angenommen haben. Die Weiterentwicklung erfolgt auf deren GitHub-Account und somit geht es mit dem Produkt ordentlich voran. Auf einer eigenen Seite wird der Unterschied zwischen OMD von Consol und dem Legacy-OMD – das sich aus meiner Sicht erledigt hat – detailliert erläutert.
Der eingeschlagene Weg von OMD gefällt mir. Wenn ich auch mit dem gebündelten Ansatz so meine Probleme habe, bietet es eine sehr einfache Möglichkeit ein Monitoringsystem hochzuziehen. Der User hat dann immer noch die Wahl zwischen Naemon und Icinga und es gibt reichlich Innovation hinsichtlich Metriksystemen wie Graphite und Prometheus. Auch LMD, was als schnelles Bindeglied zwischen unterschiedlichen Livestatus-Cores und dem Webinterface verstanden werden darf, ist bereits mit dabei.
Eine Roadmap im klassischen Sinn konnte ich auch hier nicht finden, aber Gerhard hat erst vor einigen Wochen einen kurzen Abriss über 6 Jahre OMD gegeben. Die 45 Minuten sind mit Sicherheit gut investiert.
Mein Fazit: Wer eine gebündelte Monitoringlösung sucht und auf Open Source wert legt, sollte sowohl von Check_MK als auch von Op5 die Finger lassen. Hier empfiehlt sich der Einsatz von OMD. Die Kollegen sind seit vielen Jahren im Bereich Monitoring aktiv, wissen worauf es ankommt und verweilen nicht auf dem Status Quo.
Naemon
Naemon ist letztendlich ja das Ergebnis eines frustrierten Andreas, der von den Nagios-Freunden kurz nachdem er Nagios 4 fertig gestellt hatte, aus dem Projekt gekegelt wurde. Warum genau Nagios Enterprises den Bruch mit Andreas vollzogen hat, habe ich erst von zwei Jahren auf der PuppetConf erfahren, hier wird es jedoch leider nicht landen.
Auf dem GitHub-Repo gibt es durchaus Aktivität und erst vor zwei Tagen ist mit Version 1.0.6 ein neues Release erschienen. Das Projekt wird in den letzten Jahren eigentlich ausschließlich von Sven Nierlein am Leben gehalten und ist laut meinem Kenntnisstand auch der bevorzugte Core in OMD. Laut Website gab es in den letzten Monaten keine großen Features sondern lediglich Bugfixes.
Für das Projekt wäre es mit Sicherheit schön, wenn es mehr Contributors hätte. Ich weiss wie anstrengend der „Betrieb“ eines solchen Projekts ist und zolle hier Sven Respekt, dass er das Ding weiter in Bewegung hält. Um ehrlich zu sein, sieht es jedoch im Moment für mich nicht so aus, als ob da die Post abgeht.
Mein Fazit: Wer mit dem Funktionsumfang von Nagios zufrieden ist, aber a) mit „denen“ nichts zu tun haben will und b) auch Livestatus gleich fertig mit dabei haben will, ist mit Naemon gut bedient. Auch wenn nicht viele Features dazu kommen, wird das Projekt am Leben gehalten und das reicht für ein „eingefrorenes“ Featureset vollkommen aus.
Nagios
Mein Fazit: Wem Nagios reicht, soll bitte Naemon nehmen.
Icinga
Zugegeben bin ich nicht der Richtige, um Icinga objektiv zu beurteilen, da ich mit der Software und vor allem den Personen einfach zu viel zu tun habe. Aber die Aktivität des Projekts ist sicher mit Abstand konkurrenzlos. Erst vor einigen Tagen ist das Projekt weg vom privaten Redmine zu GitHub gezogen. Das in der Regel vier bis fünf Personen in Vollzeit an Icinga arbeiten ist natürlich ein Grund für die starke Aktivität.
Mit Icinga 2 haben wir mit Sicherheit die Kruste von Nagios abgelegt und gerade die Konfiguration bietet eine Vielzahl an Möglichkeiten, die es sonst in dem Bereich nicht gibt. Eine große Herausforderung stellt noch das geerbte Datenbankschema da, das in großen Umgebungen immer mal wieder Schwierigkeiten bereiten kann. Eine alternative Lösung dafür zu schaffen, welche sowohl Livedaten sehr schnell, aber auch historischen Daten sehr lange zur Verfügung stellt, ist unsere Aufgabe für 2017. Dies wird sowohl im Core als auch bei Icinga Web 2 zu einer Vielzahl von Änderungen führen und somit den Großteil unserer Zeit in Anspruch nehmen.
Strategisch positioniert sich Icinga eher gegen eine gebündelte Lösung. Das Projekt kümmert sich um Core und Web und hat im letzten Jahr seine Anstrengungen in Richtung Integrationen intensiviert. Dies schließt beispielsweise die fertige Integration für Chef und Puppet aber auch Themen wie IcingaBeats mit ein. Auch der Icinga Director, der unterschiedlichste Quellen für die Konfiguration zusammenfassen kann, erfreut sich sehr starker Beliebtheit.
Mein Fazit: Icinga ist dann das richtige Werkzeug, wenn man die am Markt befindlichen Lösungen für Metriken, Logmanagement, Konfigurationsmanagement usw. nach dem best-of-breed Ansatz kombinieren will. Der Anwender muss hier definitiv ein bisschen mehr Hand anlegen, um die unterschiedlichen Lösungen zusammenbauen, profitiert dann aber auch von der Flexibilität, die er sich damit erarbeitet hat. 
Feedback willkommen
Wie bereits angedeutet handelt es sich hierbei um eine subjektive Betrachtung und sie erhebt nicht den Anspruch auf Vollständigkeit. Sollte ich jemanden zu Unrecht falsch beurteilen oder eine Aussage nicht korrekt sein, bitte ich um einen Hinweis und werde den Post entsprechend korrigieren. Habe ich jemanden zurecht schlecht beurteilt, so muss er damit leben.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.