Monitoring – it’s all about integration and automation – OSMC 2017 Hackathon

OSMC 2017
Also this year we organized a hackathon as follow up and managed to get about 50 people to work on actual coding. We started again with a small round of introduction so everyone had the chance to find people with same interests or knowledge needed. Afterwards people started to hack on Icinga 2, Icinga Web 2, different Modules, OpenNMS, Zabbix, Mgmt, NSClient++, Docker containers, Ansible and Puppet code or simply help others with configuration and other tasks to solve in their environment.
Here is a list of some things developed or at least designed today:
* Tom accepted and improved some of my pull requests, so the director got more property modifiers
* He also was working on improving notifications to allow managing them via a custom attribute of hosts and services
* Markus was improving Icinga packaging resulting in new package releases for SLES and support for Fedora 27
* Bodo was trying to move the ruby library for Icinga 2 to 1.0.0 release and got valuable input by Gunnar for displaying API coverage
* Thomas improved his diagnostics script for Icinga 2 to help with troubleshooting
* Nicola was working on a graphical picker for the geolocation in the Director for his awesome map module while getting several other ideas and requests
* David started a Single Sign On module for Icinga Web 2
* Mgmt got some improvements by Julien, Toshaan und James
* Michael was working on Elastic integration and web based installer for NSClient++
* Gunnar and Michael discussed so many features they actual did not find time for hacking, but keep our eyes open for Elastic 6 support and datatypes for arguments
* Steffen, Blerim and Michael discussed how to fix a problem with running two Icingabeat instances which now could probably be solved
* Stephan finally solved the management issue of red alerts in Icinga Web 2 😉

Furthermore an impressive amount of knowledge was transferred, user questions got answered and problems got solved. One thing I am really happy about seeing one user to use the URL encode property modifier only minutes after being accept by Tom to create Hostgroups including membership assignment from PuppetDB. But I want to end this blogpost with one really cool thing Dave from the Australian Icinga Partner Sol1 showed us. This map displays all pubs in Australia because it monitors Satellite receivers to visualize any large outages for Sky Racing Australia.
Map of Australian Pubs by Sol1
So have a nice weekend and keep on hacking.

Dirk Götz
Dirk Götz
Senior Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.

Was gibt's Neues vom Director?

Gleich zwei neue Releases stehen an, und während die v1.3.2 bereits vor einer Woche inoffiziell getagged wurde, werden bei der v1.4.0 gerade noch die letzten Kanten rund geschliffen. Wenn nichts dazwischen kommt werden dann Anfang nächster Woche beide gemeinsam offiziell angekündigt werden.

Director v1.4.0 Dashboard

Director v1.4.0 Dashboard

Warum aber gleich zwei Releases auf einmal?

Director v1.4.0 versucht zwar, optisch möglichst nah an seinem Vorgänger zu bleiben, ist aber unter der Haube in großen Teilen komplett neu. In diesem Zuge haben wir die System-Anforderungen minimal erhöht, PHP 5.4 anstelle von PHP 5.3 ist jetzt vonnöten. Wer beste Performance und minimalen Ressourcenverbrauch schätzt, sollte auf 7.x wechseln.

Property Modifier "Combine"

Property Modifier “Combine”


PHP 5.4 sollte in allen aktiv von uns unterstützten Linux-Distributionen verfügbar sein, lediglich Nutzer von RHEL/CentOS 6.x müssten deren Konfiguration auf die in den offiziellen SCLs (Software Collections) vorhandenen Pakete umstellen. Das Standardverhalten beim Packaging von Icinga Web 2 werden wir vermutlich heuer noch entsprechend umbauen.
Property Modifier "Array Filter"

Property Modifier “Array Filter”


Für all jene, die jetzt auf die Schnelle nicht umstellen können/wollen ist die neue Version 1.3.2 gedacht. Diese enthält eine ganze Menge kleinerer und größerer Bugfixes, welche seit der 1.3.1 entstanden sind. Zudem haben wir ein paar neue nützliche Import Property Modifier einfließen lassen. Da sie am bestehenden Verhalten nichts ändern, durften sie gemeinsam mit ein paar neuen CLI-Befehlen mit in dieses Patch-Release:

Einfachere Suche, flexiblere Tabellen

Sämtliche Tabellen unterstützen intern zwar weiterhin unsere mächtigen Filter-Funktionen, stellen in der GUI aber vorerst nur noch ein einfaches Suchfeld bereit. Einfach testen, mehrere Wörter kombinieren, auch wenn diese in unterschiedlichen Spalten stecken – es sollte ziemlich intuitiv sein.
Beim Umbau der Tabellen sind neue generische Features entstanden. So konnten wir ohne großen Aufwand an mehreren Stellen historische Darstellungen säuberlich nach Tagen getrennt übersichtlicher gestalten.

Director Deployment History

Historie der Deployment


 

Template Choices

Der Director trennt strikt zwischen Objekten und Templates und erlaubt bestimmte Optionen nur an Templates. Das hat einen einfachen Grund: Templates sollen von Icinga-Admins betreut werden, “normale” Objekte (also Hosts und Services) sollen aber durchaus Systembetreuer nutzen dürfen, die sich nicht täglich um’s Monitoring kümmern. Alles was potentiell “gefährlich” sein kann wird aus dem Grund dort nicht angeboten.

Host Template Choices: Dashboard, Table

Host Template Choices: Dashboard, Tabelle


Nun ist es aber nicht gerade intuitiv, bei jedem zweiten Host zusätzlich ein Template namens “Schnelle Checks” einzubinden. Also erstellt man sich jetzt sogenannte Choices, gibt denen einen schönen Namen – und bietet sie auf diese Weise elegant im Formular an.
Template Choice in Action

Template Choices in Aktion


 

Schnelleres Arbeiten mit einzelnen Services

Die letzten Director-Releases kamen mit so einigen neuen Tricks. Gerade die “Variable Overrides” werden gern genutzt. Sie erlauben das Ändern von Schwellwerten für einzelne Hosts auch dann, wenn der zugehörige Service eigentlich via Apply-Rule erstellt wird.

Mehrere Services auswählen


Die Version 1.4.0 legt jetzt den Fokus auf schnelleres Arbeiten mit einzelnen Services. Neu ist eine Übersicht aller Einzel-Services auf allen Hosts. Von hier kann man mit SHIFT/STRG-Klick mehrere Services auswählen und gemeinsam anpassen. Oder löschen. Selbiges geht auch in die andere Richtung bei den Hosts: mehrere auswählen, Service oder Service Set hinzufügen, wählen, speichern:
Mehrere Services auf einmal bearbeiten

Mehrere Services auf einmal bearbeiten

Autocompletion

Neu an Board ist endlich ein Mechanismus zur Autovervollständigung. Dieser hat bereits so einige Dropdownfelder abgelöst und wird in Zukunft noch intensiv für weitere Aufgaben genutzt werden.

Autovervollständigung

Autovervollständigung


Gerade Formulare welche potentiell viele Objekte verknüpfen müssen, können wir damit jetzt schonend für den Browser umsetzen. Dependencies, Ein Punkt der schon lange auf der Wunschliste steht, kommen damit jetzt in Reichweite!

Neue Dashboards und Dashlets

Wie schon der Screenshot eingangs gezeigt hat: das Dashboard wurde umgestaltet und aufgeräumt. Die Tabs passen zu den Dashlets, wenn man umschaltet wird optisch hervorgehoben, wo man sich befindet. Aber nicht nur das, es kamen viele neue Unter-Dashboards hinzu. Und, neu in Kombination mit den Tabs: im Zweispalten-Modus macht ein Doppelklick auf den Tab-Titel jetzt die aktuelle Spalte “groß”.

Mobiles Director Dashboard

Mobiles Director Dashboard


Das Layout wurde übrigens für breitere Bildschirme auf ein 50/50 Spaltenverhältnis umgestellt, statt wie bisher 33/66. Sehr viele Verbesserungen gab es auch beim mobilen Layout. Dashboards sind dort jetzt angenehmer und auch die Formulare wurden für mobile Nutzung optimiert:
Formulare - mobile

Formulare – mobile

Vererbung ist alles

Bugs im Template-Baum wurden gefixt, und ganz neu ist eine Übersicht welche die Nutzung von Templates anzeigt:

Template-Baum

Template-Baum


Zudem werden Apply-Regeln für Hostgruppen jetzt voll aufgelöst und Gruppenmitglieder sowie der Typ der Mitgliedschaft (direkt oder via Apply) werden angezeigt.
Benutzung von Templates

Benutzung von Templates

Berechtigungen

Damit wären wir auch schon beim nächsten Thema. Das Auflösen von Vererbung und Apply-Regeln erlaubt uns jetzt endlich, entsprechende Restrictions freizugeben. Begonnen haben wir mit dem was einige unserer Kunden am dringendsten benötigt hatten. Hostgruppen, unterschiedliche Prefix-basierte Filter, sogar einzelne Einträge in Data Lists können jetzt nur für bestimmte Rollen freigegeben werden.

Genutzte Custom Variablen

Eher an Admins richtet sich ein neues Feature, das eine Übersicht aller benutzten Custom Variablen und deren Varianten anzeigen kann:

Übersicht Custom-Variablen

Übersicht Custom-Variablen


Genutzte Varianten einer bestimmten Variable

Genutzte Varianten einer bestimmten Variable


An dieser Stelle möchten wir in Zukunft noch die Möglichkeit anbieten, gleich an Ort und Stelle umfangreiche Massen-Changes und Aufräumarbeiten vornehmen zu können.
Stark überarbeitet wurde übrigens auch die Inspect-Funktionalität. Wer tiefer in den Core blicken möchte findet dort jetzt detaillierte Informationen zu den verfügbaren Eigenschaften und Methoden der unterschiedlichen Objekt-Typen. Auch der aktuelle Status der einzelnen Komponenten lässt sich abrufen, wenn auch noch nicht sehr schön formatiert.

VMware vSphere/ESXi Import

Diese Funktionalität wurde im Kundenauftrag als dediziertes Icinga Web 2 Modul entwickelt. Vorerst stellt es “nur” eine Import-Quelle für den Icinga-Director bereit. Wir haben damit aber noch so einiges vor. So möchten wir das Modul so aufbohren, dass es in einem kleinen eigenen DB-Schema ein Subset der in vSphere verfügbaren Informationen vorhält und ständig aktuell hält.

VMware vSphere Import

VMware vSphere Import


Festhalten wollen wir vor allem:

  • Welche VM mit welchen Eigenschaften seit wann wo läuft
  • Eine Historie der Migrationen
  • Ein paar wenige aggregierte aktuell Kennzahlen/Performancewerte

Diese Informationen möchten wir dann gleich mehrfach nutzen:

  • Für schnellere und schonendere Check-Plugins, da diese darauf verzichten können bei jedem Aufruf mit teuren API-Abfragen die benötigten Komponenten zu suchen
  • Für ein kleines Visualisierungsmodul
  • Um Zusatz-Informationen via Hook anderen Modulen in Icinga Web 2 bereitzustellen, in erste Linie natürlich dem zentralen Monitoring-Modul.

Bei der Entwicklung wurde auf sämtliche SDKs von VMware verzichtet. Mit selbigen hatten wir bisher keine guten Erfahrungen gesammelt. Probleme beim Upgrade, Inkompatibilitäten anderen Bibliotheken und/oder je nach Sprache auch einfach vollständiger Entwicklungsstillstand machten das Leben schwer.
Bei diesem Modul sind wir jetzt einen anderen Weg gegangen und nutzen zu 100% eigenem Code. Der deckt natürlich nicht die volle API ab – aber all das was wir brauchen. Damit fällt einiges an Overhead weg, und wir haben bei Bedarf die Möglichkeit viel flexibler auf Inkonsistenzen bei neuen Releases reagieren zu können. Wir sprechen direkt mit der SOAP-Schnittstelle und schaffen es damit, einen ziemlich breiten Bereich von vSphere- und ESXi-Versionen abdecken zu können. Für Nutzer des Moduls heißt das: runterladen, aktivieren, loslegen.
Es wird jedenfalls nicht langweilig. Und in diesem Sinne wünsche ich schon mal ein schönes Wochenende!

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.

Fully packed to reduce heating – OSMC 2016 – Tag 3

OSMC Logo
Nach zwei interessanten Tagen mit Vorträgen ging es heute zum Abschluss wieder ans gemeinsame Hacken beim Hackathon. In einer kurzen Vorstellungsrunde kristallisierten sich bereits die Themen heraus und es ging sofort ans umgruppieren um den gemeinsamen Interessen zu folgen.
Neben viel Erfahrungsaustausch, migrierten Monitoringumgebungen, internen Skripten rund um Icinga 2, umgebungsspezifischen “Icinga Web 2”-Modulen und Prototypen wie “Icinga 2”-SNMP-MIBs und Debian-Packages für NSClient++, gibt es auch tatsächlich Ergebnisse zu vermelden.
Hackathon
* Das neue Puppet Module für Icinga 2 erhielt Unterstützung für SLES 12 (Pull-Request on Github)
* Die “Icinga 2”-Vagrant-Boxes erhalten Proxy-Support (Pull-Request on Github)
* Der Prototyp eines Elastic-Icinga-Beat (Prototype on Github)
* Das mit Dashing-Icinga2 zur Verfügung gestellte Dashboard wurde um weitere Funktionalitäten erweitert (Commit bereits gemerged)
* Das “Icinga Web 2”-Module NagVis wurde erweitert, unter anderem um Zoom für Dashboards (Commit bereits gemerged)
* Icinga Web 2 kann nun konfiguriert werden um Standalone zu laufen (Patch verfügbar)
* Neben einem kleinen Fix wurde dem Foreman-Smart-Proxy Monitoring-Plugin beigebracht Hosts in Icinga 2 anzulegen (Feature-Branch auf Github)
* Einen adaptiven Http-Check (Repository auf Github)
Ich würde es bei diesem Output als einen erfolgreichen Hackathon bezeichnen!
P.S.: Wer viel auf Github unterwegs ist, dem möchte ich noch den Artikel zum Erstellen eigener Labels ans Herz legen. Der erwähnte Smart-Proxy hat nun farblich korrekte Labels für Icinga 2 und Zabbix.

Dirk Götz
Dirk Götz
Senior Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.

Die OSMC wird 10 – OSMC 2015 – Tag 3

OSMC 2015 Logo
Wie angedeutet gab es neben dem üblichen reichhaltigem, gutem Essen und leckeren Cocktails auf der Abendveranstaltung auch eine Überraschung mit Deutschlands Nummer 1 “Helene Fischer“-ForkDouble. Nachdem “Atemlos” irgendwann zur Netways-Hymne erhoben wurde (ich möchte darauf hinweisen: ohne mein Zutun), war mit so was zwar zu Rechnen aber trotzdem war es für viele eine gelungene Überraschung.

 
IMG_6997_1Auch “Checkpoint Jenny” als Late Lounge war wie die letzten Jahre gesetzt und trotzdem waren die beide Räume zum ersten Vortrag wieder gut gefüllt. Ich hatte wieder die Ehre den Vortrag zu Zabbix anzukündigen, diesmal präsentierte Wolfgang Alper warum “Zabbix 3.0 – the Simple, the Powerful and the Shiny” ist. Auch dieses Jahr war ich wieder begeistert was Zabbix für einen guten Eindruck macht und wie unterschiedlich die Ansätze zu Icinga sind. Zabbix 3.0 bekam zusätzlich ein paar sinnvolle Aufräumarbeiten und Erweiterungen spendiert. Percentile und Prediction klingen nach Features, die man wirklich öfters brauchen könnte statt statischer Schwellwerte.
IMG_7030_1
Als zweiten Talk präsentierten Detlef Krummel aus der Anwendersicht und Erol Ülükmen aus Entwicklersicht “Nagios 3 / Icinga 2-Anbindung an OPSI”. Bei OPSI handelt es sich um eine Lösung zur Softwareverteilung auf Windows-Clients und mit der Integration in Nagios / Icinga lässt sich diese entsprechend einfach überwachen. Ich würde mir wünschen, dass jede Lösung so eine einfache und saubere Schnittstelle zur Überwachung anbietet und damit auch zentrale Alarmierung ermöglicht statt selbst neu zu erfinden. Auch beim eigentlichen Software-Deployment wird mit dem Wiki OPSI4Institutes, in welchem zusätzlich zu dem Repository von uib weitere Pakete zur Verfügung gestellt werden, der OpenSource-Gedanke gelebt.
IMG_7039_1
Ein besondere Freude war es mir Marco Weber mit “Enterprise Monitoring @ Bank Vontobel AG” anzukündigen, da es immer interessant ist zu sehen was aus dem Konzept, das man entwickelt hat, nach anderthalb Jahren Praxis geworden ist. Eine der wichtigsten Aussagen, die ich oft in der IT vermisse und Projekte in allen Größenordnungen scheitern lässt, war “Kenne deinen Kunden”. Mit diesem Wissen wurde bei der Bank Vontobel ein “Monitoring as a Service” aufgebaut mit viel Automatisierung und simplen Schnittstellen für den Kunden.
IMG_7078_1Die Stärkung durch das Mittagessen war dann auch notwendig um sich einen Platz in Toms Vortrag zum “Icinga Director” zu erkämpfen und das obwohl der parallele Track von Devdas Bhagat zu “Testing in Production” mindestens genauso interessant war. Aber Tom ist bekanntlich nicht nur unterhaltsam, sondern präsentierte mit dem Director auch das heiß erwartete graphische Konfigurationswerkzeug zu Icinga 2. Definierte Zielgruppen sind der “Icinga-Admin” (Administrator der Monitoring-Lösung), “Windows-Admin” (soll seine Systeme pflegen, aber nichts kaputt machen), “Agile Umgebungen” (Automatisierung der Konfiguration) und “ITIL” (“die mit CMDB”). Die Beta ist nun verfügbar! Wer also eine GUI braucht um sein Monitoring zu konfigurieren, inklusive Templating mit entsprechenden Pflichtfeldern und Wertelisten, Datenimport aus verschiedensten Quellen und natürlich Berechtigungsmodell und Versionierung, ist eingeladen zu testen und mit Feedback die weitere Entwicklung zu lenken.
IMG_7110_1“The Road to Lazy Monitoring with Icinga 2 & Puppet” präsentierte Tom De Vylder, der seit dem Configmanagement-Camp viel Arbeit in die PuppetModule des Icinga-Projekts investiert hat. Wer seinen Empfehlungen folgt bekommt ganz sicher ein agiles und vollautomatisiertes Monitoring und ein Menge “Monitoringlove”.
Zwischen den letzten Vorträgen verloste unser Sponsor “Thomas Krenn” auch dieses Jahr wieder drei hochwertige SSDs. Für ITler immer ein willkommenes Spielzeug, da man nie genug Hardware haben kann!
IMG_5558_1Bernd Ahlers, Graylog-Entwickler und Maintainer der Vagrantbox icinga2x-graylog, hatte die Ehre des letzten Talks “Monitoring Linux and Windows Logs with the Graylog Collector”. Aus dem Teilnehmer-Kreis kam zwischendurch der Wunsch nach einem Talk “ELK vs Graylog” und auch ich wäre wirklich gespannt auf einen solchen Vortrag. Denn in meinen Augen sind beide Toolstacks auf Augenhöhe und je nach Aspekt kann der eine oder andere punkten. Wovon gegebenenfalls alle Projekte zum zentralen Logging profitieren können, sind die Unterstützung des GELF-Formats für strukturierte Logs welche das Graylog-Projekt vielen Projekten beigesteuert hat. Das neue Tool im Graylog-Stack ist der Collector, der zwar noch in Kinderschuhen steckt, sich aber mit zentralem Management, Windowseventlogs und Transport von Logmeldungen aus Dateien entsprechend hohe Ziele gesetzt.
Zum Abschluss des Abends geht es noch mit den Teilnehmern des morgigen Hackathon zum Abendessen. Ich füge mich da einfach in mein Schicksal! 😉 Allen Teilnehmern die uns schon verlassen haben, eine gute Heimreise und viel Spaß beim Ausprobieren all der neuen Tools!

Dirk Götz
Dirk Götz
Senior Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.