Alles Docker oder was?

Docker ist ein fantastisches Stück Software. Es ist immer wieder Thema bei unseren Konferenzen, wir bieten passende Workshops an, nutzen es selbst und bloggen darüber. Docker wirbelt seit einiger Zeit den Markt für Container richtig auf, auch wenn es erst mal unter der Haube nichts großartig Neues entwickelt hat. Docker nutzt in erster Linie Mechanismen die schon da sind, aber auf kreativ-konsequente Art und Weise. Durch seine Popularität trug und trägt es natürlich intensiv dazu bei, seine Grundbausteine zu verbessern. Docker nutzt alles was der Kernel so rund um Container bereitstellt und je nach persönlicher Vorliebe echte oder virtuelle Filesysteme, für die exzessives Erstellen von Snapshots per Design eh schon vorgesehen und damit nicht teuer ist. Du wolltest immer schon wie du das von der Software-Entwicklung kennst bei Bedarf nach jedem Handgriff einen “Commit” eines ganzen Servers? Docker könnte deine neue Liebe sein!
Du gehörst zu den Snapshot-Geschädigten, denen schon mal das sündhaft teure Storage-System dank Snapshot-Voodoo fast um die Ohren geflogen wäre? Bist geprägt von der erbärmlichen Performance von LVM-Snapshots? Keine Sorge, richtig gemacht sind auch tausende von Snapshots auf einem System heute kein Problem mehr. Klar, der Haken ist wie immer dieses “richtig gemacht”, aber da hilft Docker. Man hat out-of-the-box zwar keinen Ferrari, aber einen halbwegs aktuellen Diesel-Golf der zuverlässig ohne ohne zu murren dahintuckert. Wobei Tuckern keinesfalls im Sinne eines alten Traktors zu verstehen ist. Man kriegt mit Docker ohne ölverschmiert rumwerkeln zu müssen frei Haus zumindest einen richtig sportlichen GT oder dergleichen. Und wer sich die Hände schmutzig machen will kriegt das Ferrari-Pferdchen nicht nur als Aufkleber auf die Motorhaube sondern mit all seinen schnellen Freunden auch unter selbige.
Was ich absolut jedem empfehlen kann: eine Probefahrt! Schnapp dir Docker und probier es aus. Spiel damit! Wenn dir das Spielen allein keinen Spaß macht, dann komm zu einem unserer Workshops, gerne auch zur OSDC 2015, mit Gleichgesinnten macht es definitiv mehr Freude! Auch wenn es nicht das richtige Tool für dich ist – es erweitert definitiv den eigenen Horizont. Es tickt und “denkt” anders, als du das gewohnt bist. Warum es nicht das richtige Tool sein könnte? Weil sehr viele Anwendungen sich nur schwer so kapseln lassen, als dass sie mit Docker sofort Spaß machen würden. Ich kann zwar problemlos mit Docker vollwertige Systeme mit SSH, lokalem Mailer und allem was dazugehört betreiben – aber das ist eigentlich nicht im Sinne des Erfinders. Docker möchte nämlich je eine Applikation pro Container betreiben. Die meisten Applikationen sind dafür schlicht nicht ausgelegt. Wer jetzt also mal eben schnell seine Oracle-Datenbank in einen Docker-Container packen will, der wird sich schwer tun. Was nicht heißt dass es nicht geht, aber so war’s halt erst mal nicht gedacht.
Es ist gar nicht so einfach in wenigen Worten zu beschreiben, wie so eine “eigenständige” Applikation aussehen soll. Eine interessante Lektüre rund um dieses Thema bietet die Twelve-Factor App. Wenn deine Anwendung diese zwölf Punkte umsetzen kann stehen die Chancen gut, dass sie sich in einem Default-Docker-Container pudelwohl fühlt. Was nicht heißen muss, dass man jetzt all seine Anwendungen sofort umschreiben muss. Mit dem Thema beschäftigen sollte man sich auf alle Fälle, auch hier stehen die Chancen nämlich gut, dass man hinter der Cloud plötzlich wieder ein neues Stück Horizont entdeckt.
Docker setzt eine ganz neue Arbeitsweise voraus und nimmt damit Einfluss auf alles. Quer durch die Bank wird vom Testing über das Konfigurationsmanagement, vom Logging und Mail-Routing bis zum Monitoring alles durcheinandergewirbelt. Für den einen ist das der neue heilige Gral, der andere nutzt es nur um den durch automatisierte Tests generierten Overhead zu minimieren. Was ich aber ausnahmslos jedem ans Herz legen möchte sind die dem Prinzip von Docker zugrunde liegenden Techniken.
Egal ob mit Docker “so wie es sein soll”, ob mit zu System-Containern aufgeblasenen Docker-Containern oder gleich klassisch mit LXC, du solltest diese Werkzeuge kennen, nutzen und lieben lernen! Der Linux-Kernel stellt schon eine ganze Weile mächtige Komponenten zum Verwalten von Containern bereit. Und noch viel viel länger gibt es Kernel-Patches die ähnliches bieten konnten. Ich habe schon vor über 10 Jahren Container unter Linux in sensiblen Umgebungen produktiv einsetzen können und es nie bereut. Die laufen immer noch! Auf meinem Arbeits-Notebook lebt ein ganzer Zoo an internen LANs, Bridges, Firewalls und Containern. Wenn ich ein paar neue leere Debian-Container brauche, habe ich die in wenigen Sekunden am Laufen. Auch wenn ich offline bin. Cgroups erlauben es, Prozessgruppen gezielt zu isolieren und deren Resourcen-Nutzung fein granular zu steuern. Braucht nicht jeder, aber gut zu Wissen, dass es bei Bedarf möglich ist.
Und einen ganz speziellen Charme hat natürlich das ganze Snapshotting-Thema. Aber bevor ich dazu auch noch weiter aushole, was rede ich mir eigentlich den Mund fusselig? Probiert es einfach aus. Jetzt. Gleich. Oder geht doch lieber Skifahren.
Wünsche euch allen 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.

Die OSSM Conference 2014 in Bozen

Letzten Donnerstag fand in Bozen die 6. Ausgabe der Open Source System Management Conference statt. John “maddog” Hall eröffnete den Reigen mit einem seiner berühmten Vorträge über freie Software und machte uns klar, dass wir alle froh sein können keine Duschen von Apple zu besitzen. Es ist umständlich und nicht gerade preiswert, sich für die neue Dusche gleich neue Apple-Leitungen verlegen zu lassen um sich an die Apple-Kanalisation und die Apple Wasserwerke anschließen zu können.

ossmc-logo
Die Agenda der von unseren Freunden bei Würth Phoenix organisierten Konferenz richtete sich sowohl an Systemadministratoren als auch an IT Entscheider. 2014-Open-Source-System-Management-Conference-Thomas-GelfDiese durchaus schwierige Grätsche ist dem Veranstalter dabei sehr gut gelungen. Die Vorträge waren kurzweilig und spannend und es machte Freude, einmal mehr mit Michael Medin und Andreas Ericsson bis spät in die Nacht fachsimpeln zu können. Für mich war es zudem eine gute Gelegenheit meine alte Heimat besuchen zu können. Ich war nämlich mit einem kleinen Vortrag der Lust auf Puppet machen sollte mit am Start. Blauer Himmel, Sonnenschein – in Südtirol war alles wie gewohnt.

Ein Dankeschön nochmal an Würth Phoenix und ein großes Kompliment für die professionelle Abwicklung. Slides und Videos sind bereits online, auch das ist vorbildlich! Für mich als italienischen Staatsbürger deutscher Muttersprache war es zudem ein persönliches Highlight, einen englischen Vortrag zu halten und dabei simultan ins Deutsche und Italienische übersetzt zu werden!

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.

Endspurt für Icinga Web 2

Fleißig wird noch immer gehämmert und wir haben auch weiterhin gut zu tun. Eines lässt sich aber nur noch schwer verbergen, Icinga Web 2 wird richtig gut und ist mit Volldampf auf der Zielgeraden angelangt!

Icinga Web 2 - Dashboard

Icinga Web 2 – Dashboard

Home Sweet Home – Dashboard

Sofort nach dem Login landet man im Dashboard. Jeder kann sich gleich mehrere dieser Dashboards konfigurieren und darauf jeweils beliebig viele Komponenten einbinden. Jede Ansicht und jeder Filter kann hier angezogen werden. Aktuelle Zeitstempel laufen sanft im Sekundentakt weiter, das Aktualisieren der Inhalte verläuft angenehm ruhig. Es gibt es kein Zappeln und kein Flackern.

Icinga Web 2 - Statusfarben

Icinga Web 2 – Statusfarben

Nur Probleme

Das Wichtigste auf so einem Monitoring-Dashboard: die Probleme, um die sich noch keiner kümmert. Wir stellen hier für Suche und Sortierung elegante und bequeme virtuelle Spaltenbezeichner bereit, die vieles einfacher machen. Abseits der vollständigen Übersichtslisten wird standardmäßig immer nach der Dringlichkeit des Problems sortiert. Unbehandelte neue Issues sind dabei kräftiger und farbig hinterlegt, Probleme um die sich schon wer kümmert zeigen den aktuellen Zustand mit einer sanfteren Farbe in einem schmalen Seitenstreifen an. Auf diese Weise kann man schon aus der Ferne zuverlässig erkennen, ob alles im Grünen Bereich ist oder ob Handlungsbedarf besteht.

Icinga Web 2 - PDF Export

Icinga Web 2 – PDF Export

Export und PDFs

Für die meisten Ansichten besteht die Möglichkeit, die dargestellten Daten ins CSV- und JSON-Format zu exportieren oder aber als PDF-Datei abzulegen. An derselben Stelle lässt sich auch so ziemlich jede Übersicht mit den aktuellen Filter- und Sortiereigenschaften mit wenigen Klicks in ein bestehendes oder wahlweise neu anzulegendes Dashboard übernehmen.

Willkommen in der Matrix

Unsere Matrix-Ansicht ist filterbar und lässt sich in großen Umgebungen zudem in jede Richtung frei durchblättern. Sollen alle Hosts und Services abgebildet werden? Oder lieber nur solche mit Problemen, vielleicht auch nur jene um die sich gerade keiner kümmert? Müssen ein paar spezielle Dienste ausgeblendet werden? Das alles geht, und noch viel mehr.

Icinga Web 2 - Gefilterte Service-Matrix

Icinga Web 2 – Gefilterte Service-Matrix

Geschichte schreiben

Mehrere Monate oder gleich ein ganzes Jahr voller Events auf einen Blick? Kein Problem! Die Umgebung von der dieser Screenshot stammt hat ein paar Millionen Events in der Datenbank. Die Darstellung zeigt daraus nur die kritischen, das waren hier etwa 160.000 in den letzten vier Monaten. Dabei zeigt die Farbintensität auf einen Blick, wo besonders viel oder besonders wenig los gewesen ist.
Im Cache oder zwischengespeichert? Nichts davon, die Daten stammen frisch und live aus der IDO-DB – handverlesen von Icinga Web. Ein Klick auf einen bestimmten Tag listet rechts von der Übersicht die zum jeweiligen Filter passenden einzelnen Ereignisse auf. Von dort können sie exportiert oder mit zusätzlichen Filtern weiter eingeschränkt werden.

Icinga Web 2 - Historische Übersicht

Icinga Web 2 – Historische Übersicht

Kommando? Zu Befehl!

Icinga Web 2 - Kommandos absenden

Icinga Web 2 – Kommandos absenden


Die klassischen Icinga-Commands sind auch weiterhin verfügbar. Allerdings stehen sie statt in einer langen Liste immer genau dort parat, wo sie gebraucht werden können. Den nächsten Check sofort ausführen lassen? Ein Klick.
Downtimes, Kommentare oder Acknowledgements? Sind schnell gesetzt und per Mausklick auch genauso bequem direkt an Ort und Stelle wieder entfernbar. Checks oder Notifications an- oder abschalten? Auch nur ein Klick. Unsicher ob der aktuelle Zustand dem in der Konfiguration entspricht? Wird angezeigt. Den falschen Kommentar gelöscht? Die Historie zum jeweiligen Objekt findet sich einen Klick weiter, dort sieht gleich was man verbrochen hat und kann es wieder geradebiegen.
Icinga Web 2 Login Screen

Icinga Web 2 Login Screen

Performance

Schnell ist Icinga Web geworden, beeindruckend schnell. Das beginnt bereits mit der Anmeldemaske. Vom Browser werden bei leerem Cache ganze vier Requests abgefeuert, wobei in Summe knapp über 60 KB vom Server geladen werden. Das beeinhaltet den HTML-Code, das große Logo, alles was wir an JavaScript für die Applikation brauchen und sämtliche Stylesheets. Ja, ihr habt richtig gelesen: von diesem Punkt an gilt es keine einzige JS- oder CSS-Datei mehr zu laden. Keine.

Icinga Web 2 Performance - Chrome

Icinga Web 2 Performance – Chrome


Weil ich das so wunderschön finde, gleich nochmal. Selbe Aktion, anderer Browser:
Icinga Web 2 Performance - Firefox

Icinga Web 2 Performance – Firefox


Alles was nach Eingabe von Benutzername und Kennwort noch folgt sind schlanke HTML-Schnipsel und ein paar Icons. Vom Drücken der Eingabetaste bis zum vollständig geladenen Dashboard vergeht ein Bruchteil einer Sekunde. Selbst wenn alle Icons noch zu laden sind gehen dabei nur schlappe 20 KB über die Leitung.
Nicht nur mit der Bandbreite geht Icinga Web sparsam um, auch um den Speicherverbrauch des Browsers sorgen wir uns. Eine Anforderung, die bei sich ständig aktualisierenden Webanwendungen nicht zu unterschätzen ist. Wir wollen keine verlorenen Elemente im DOM und keine Memory-Leaks. Gegen Browserbugs sind auch wir nicht immun, aber wir tun unser Bestes, damit ihr euer Icinga Dashboard ruhigen Gewissens monatelang jeden Tag am Fernseher an der Wand genießen könnt. Und das natürlich ohne täglich den Browser neu starten zu müssen.

Blut geleckt?

Keine Sorge, es gibt noch mehr! Die Icinga CLI kennt ihr ja bereits. Einiges was noch nicht erwähnt wurde verraten ja bereits die Screenshots. Wer ganz mutig ist, kann sich gerne an unserem GIT-Master versuchen. Und irgendwas muss ich mir natürlich noch für meinen nächsten Blogpost aufbewahren. Jetzt muss ich schleunigst wieder zurück an die Arbeit. Ihr wollt doch, dass Icinga Web 2 bald fertig wird?

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.

Auf ins Wunderland – die Icinga Web 2 CLI

Jeder kennt sie, die beiden: Alice und Bob. Heute verschonen wir Bob mit Anrufen von seiner Alice und schicken letztere zurück ins Wunderland. Dort hört sie ein paar Gerüchte über Icinga Web 2, und immer wieder spricht irgendwer von dessen CLI. Alice wundert sich, was denn eine Weboberfläche mit der Kommandozeile zu tun hätte.
Kaum hat sie das Ding endlich aufgespürt, erkundigt sich Alice freundlich wie immer, was das Ganze denn soll:

icingaweb_cli_alice_wtf

AHA, denkt sich Alice – das ist doch mal eine Ansage. Man kann über Alice ja vieles sagen, aber dumm ist sie definitiv nicht. Schnell hat sie begriffen was Sache ist, staunt darüber dass ein Web-Dings so wunderbare Tab-Vervollständigung auf der Shell hinkriegt und hangelt sich durch die Inline-Hilfe. Dabei entdeckt sie, dass noch keines der mitgelieferten Module aktiviert ist und legt einfach los:

icingaweb_cli_modules

Soweit, so gut – jetzt ist also ein Monitoring-Modul aktiv. Alice experimentiert damit weiter und kriegt immer größere Augen. Farbige Darstellung…
icingaweb_cli_monitoring
…Performance-Daten…
icingaweb_cli_monitoring_disk_usage
…sprechende Filter-Bezeichnungen, unbestätigte Probleme werden hervorgehoben dargestellt…
icingaweb_cli_unhandled
…so soll das sein! Nachdem sie den Export nach CSV und JSON getestet hat entdeckt Alice die frei definierbaren Templates. Das probiert sie gleich mal aus, sie hätte gerne eine Liste all ihrer Server mit “node” im Namen die einen “slave-lag” Service definiert haben und die Custom-Variable _HOST_MYSQLUSER auf “icinga” gesetzt haben. Das Ganze im Format “host: service (output)”:

icingaweb_cli_filter_export

Dann erinnert sich Alice, dass sie eingangs in der Doku –watch und –benchmark bemerkt hatte:
icingaweb_cli_watch_commandSie schaltet ihr Terminal auf Vollbild und traut ihren Augen nicht. Wie beim klassischen “top” sieht sie im Sekundentakt aktualisiert all die Probleme, um die sich gerade keiner kümmert.
Jetzt hat Alice endgültig genug gesehen, zückt ihr Handy und ruft Bob an: “Booooooob, schmeiß sofort den Webbrowser weg, wir hängen uns ein Terminal an die Wand!”. “Ruuuhig Alice, ganz locker bleiben”, meint Bob daraufhin trocken. “Sieh dir einfach in ein paar Wochen nochmal an, wie das neue Webfrontend aussieht. ich hab gehört dass die da grad mächtig am Schrauben sind…”

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.

Continuous Lifecycle 2013

logo_continuous_2013
Lieben Gruß von der Continuous Lifecycle Konferenz 2013. Wo’s um DevOps & Co geht sind wir natürlich vorne mit dabei! Die vom dpunkt.verlag, heise Developer und iX organisierte Veranstaltung ist ausgebucht und das Vortragsprogramm macht einem die Wahl zwischen den einzelnen Tracks nicht gerade einfach.
Gleich heute morgen durfte ich mit 90 Minuten rund um Puppet loslegen, und das machte unter dem Titel “Puppen und Marionetten in der Deployment Pipeline” richtig Spaß. Zwar waren meine Augen recht klein, um nicht zu früh dran zu sein habe ich wie üblich meine Slides erst heute Nacht erstellt. Trotzdem sind’s stolze 111 Seiten geworden, ihr könnte sie hier herunterladen.
Besonders spannend wurde es nach einer Kickstart-Einführung in Puppet vor allem auf den letzten Folien. Knapp und gerade noch in der Zeit konnte ich Tipps und Tricks aus der täglichen Arbeit mit Puppet und MCollective unterbringen, natürlich solche die in der Deployment Pipeline vieles einfacher machen können.
Mit einer zeitlichen Punktlandung blieben dann noch leicht überzogene 5 Minuten für technisch erstaunlich fundierte Fragen. Vor einem anspruchsvollen Publikum bereitet so ein Vortrag gleich doppelt Freude.
Danke für das tolle Feedback und noch eine schöne Konferenz! Ich muss jetzt leider schon wieder weiterziehen, morgen früh gibt es wieder ein Puppet Fundamentals Training in Zürich – ich freu mich schon.

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.

OSBC – Bareos und Bacula Reporting

Vor drei Wochen fand in Köln die Open Source Backup Conference 2013 statt – und wir waren natürlich mit dabei! Mein Vortrag drehte sich ums Reporting für Bacula und natürlich Bareos. Videos und Slides sind mittlerweile online:

Ihr kennt Bareos noch nicht? Hier gibt’s mehr dazu. Bei dieser Gelegenheit nochmal ein herzliches Dankeschön für das nette Feedback und vor allem an den Veranstalter, die dass IT GmbH aus Köln!

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.

MCollective: einfach ausprobieren!

Schon mal MCollective eingesetzt? Oder überhaupt schon einmal davon gehört? Das Orchestration Framework, welches das Konfigurationsmanagement-Werkzeug Puppet auf so elegante Art und Weise ergänzt?! NEIN? Dann wird es jetzt aber höchste Zeit!
Weiterlesen sollte, wer seinen Horizont erweitern, eine neue Sicht auf die Arbeitsweise im Operating kennenlernen und einfach mal etwas Neues ausprobieren möchte. Dieser Artikel versteht sich nicht als Howto, sondern als Ansporn zum Rumspielen. MCollective ist nichts, was sofort und für jeden das Richtige ist und einfach auf die Schnelle ausgerollt werden sollte. Aber es ist ein mächtiges Werkzeug, das man einfach mal “gesehen” haben sollte.
Wie die Bezeichnung Framework schon zeigt, sieht sich MCollective selbst nicht als fertiges Werkzeug, sondern als soliden Grundstock, auf den man aufbauen kann.
Aber was und wozu eigentlich?
MCollective hängt im Grunde alle Server an einen Nachrichtenbus. Und wer dort hinschreiben darf, der steuert (“orchestriert”) diese Server. Dies geschieht im Idealfall parallel und funktioniert auch dann, wenn es sich um ein paar tausend solcher Server handelt.
Wer sich eine kleine virtualisierte Test-Umgebung an seinem Arbeitsplatz hochfahren möchte, findet hier alles was er dazu benötigt. Einen wunderbaren ersten Eindruck der Fähigkeiten von MCollective bietet zudem das Puppet Enterprise Dashboard. Auch Opensource-Evangelisten dürfen ruhig einmal über ihren Schatten springen um die unter http://docs.puppetlabs.com/ gezeigten Schritte zu Download und Inbetriebnahme der verlinkten Trainings-Images nachzuspielen.
MCollective ist freie Software, lediglich die Enterprise-Console (also die Web-Oberfläche von Puppet Enterprise) ist es nicht. Aber gerade diese Oberfläche vermag es am Besten, einen ersten Eindruck vom Potential das in MCollective steckt zu vermitteln. Nutzen lässt sich MCollective dann problemlos auch ohne PE.
Anstatt jetzt aber ein fertiges Howto anzubieten möchte ich den Spieß einmal umdrehen. Ärmel hochkrempeln (falls ihr heute nicht ohnehin schon kurzärmlig unterwegs seid), ich habe Arbeit für euch! Fahrt eine der verfügbaren Testumgebungen hoch, und versucht doch einfach mal:

  • Ein bestimmtes Software-Paket auf allen Rechnern zu installieren, die über eine bestimmte Eigenschaft (z.B. ein Fact aus Facter) verfügen. Mehr zu Facter gibt es hier
  • Herauszufinden, wieviele unterschiedliche MySQL-Versionen auf euren Test-VMs installiert sind
  • Den Webserver-Dienst auf all jenen Rechnern zu stoppen, denen eine bestimmte Puppet-Klasse zugewiesen wurde

Ok, ich geb’s zu: so einfach das auch klingen mag, nicht alles wird auf Anhieb klappen und ihr werdet einige Zeit mit Recherchen verbringen. Nehmt euch die Zeit, es zahlt sich aus! Wenn das nur schwer möglich ist könnt ihr natürlich gerne immer noch zu unseren Trainings kommen. In Puppet Advanced lernen wir MCollective und seine Komponenten kennen, in Extending Puppet schreiben wir nebst anderem auch eigene RPC-Agents für MCollective.
Das alles ist aber erst der Anfang. Mit MCollective kann man wunderbar serverübergreifende Jobs skripten. Komplexe Software-Deployments steuern. Puppet on-demand laufen lassen und damit Ressourcen sparen. Monitoring-Plugins ansteuern. Schon spannender wird es dann, wenn man sich um länger laufende Jobs kümmern will – aber auch da finden sich schnell Lösungen.
MCollective ist ein wunderbares Werkzeug. Es setzt aber voraus, dass man bereit ist sich ein klein wenig Zeit zu nehmen, um sich ernsthaft damit auseinanderzusetzen. Dann aber kann man richtig irre (und auch nützliche) Sachen damit treiben.
Wie soll es jetzt weitergehen? Auf jeden Fall abraten möchte ich von dem Ansatz, MCollective mal eben schnell auf alle Server auszurollen – auch wenn das natürlich verlockend klingen mag. Zwar gibt es fix und fertige Puppet-Module, die genau hierbei helfen. Und es gibt ja auch noch Puppet-Enterprise. Dennoch möchte ich eindringlich dazu raten, MCollective erst dann produktiv einzusetzen, wenn man die involvierten Komponenten auch richtig verstanden hat. Ein nicht sauber eingerichtetes MCollective kann genauso gefährlich sein, wie ein flächendeckend ausgerollter Telnet-Dienst es wäre. Aber die NSA sitzt ja eh schon überall, wozu sich noch die Mühe machen…
…ich wünsche noch eine schöne Woche – und viel Freude mit MCollective!!

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.

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.

Eindrücke von der PuppetConf 2012

Netways auf der PuppetConf 2012

Netways auf der PuppetConf 2012


Schreibe heute aus der San Francisco Bay Area, von der PuppetConf 2012. Der erste Tag brachte viele neue Erkenntnisse und Bekanntschaften, für mich vor allem rund um Schnittstellen zu Puppet, PuppetDB 1.0, Hiera und Puppet 3.0. Als offizieller Sponsor der PuppetConf sind wir natürlich auch mit einem eigenen Stand vertreten!
PuppetConf 2012 - Luke Kanies - IT still sucks

PuppetConf 2012 – Luke Kanies – IT still sucks


Luke Kanies kam in seiner Keynote zur Erkenntnis “IT still sucks – but it sucks less than it did before”, und der als bekannter IRC-Troll vorgestellte Matt Finlayson versorgte uns mit “there is always a single point of stupidity between super important shit and other super important shit” mit dem richtigen Gesprächsstoff für das Feierabendbierchen. Überhaupt ist die PuppetConf genau der richtige Event, um uns für das PuppetCamp in Nürnberg in die richtige euphorische Stimmung zu versetzen!
PuppetConf 2012 - Super important shit

PuppetConf 2012 – Super important shit


Die Keynotes des heutigen Tages vermittelten das Gefühl, durch den eigenen Beitrag zu Puppet etwas zu tun. Schließlich hilft Puppet dabei, nach den “fehlenden” 96% des Universums zu suchen (CERN) und Raketen in den Orbit zu ballern (SpaceX). Und mittlerweile sitze ich in “Package management” von Sam Kottler (RedHat) – es bleibt spannend!

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.

check_open_problems – Alles bunt und doch im Griff

Mit der Idee zu einem überaus nützlichen Plugin trat kürzlich unser Kunde Perdata an uns heran. Das Plugin für Icinga und Nagios sollte Performancedaten zur Anzahl der gegenwärtig offenen Host- und Service-Probleme liefern und bei Überschreiten einer bestimmten Anzahl von Problemen auch entsprechende Benachrichtigungen auslösen können. Das Ziel dahinter ist klar: erstens kann man sich so historisch schön darstellen, wie sich die eigenen “Probleme” entwickelt haben. Und zweitens erhält man eine Benachrichtigung, wenn neue Probleme im alltäglichen Grundrauschen untergehen und sich zu lange keiner darum kümmert.
Die Performancedaten wurden aufgeschlüsselt in offene Probleme, solche die acknowledged wurden sowie Downtimes. Die “konfigurierbare Anzahl” wurde zugunsten einer Mindestdauer verworfen, das Plugin ändert seinen eigenen Zustand also nach dem Zustand des “schlimmsten” Problems, um das sich nach entsprechend verstrichener Zeit noch keiner kümmert.
Der Aufruf ist relativ simpel, und das Plugin “erklärt” sich im Grunde selbst:

Options:
check_open_problems.pl -H <db_host> -U <db_user> -P <db_pass> -...
-H|--host
Database Host, default is 'localhost'
-U|--user
Database user, default is 'icinga'
-P|--pass
Database password, default is 'icinga'
-B|--blacklist
Blacklisted service names, comma-separated. Default: 'Open problems'
-M|--min-duration
Ignore problems lasting less than min-duration seconds. Default: 0

Beachtung verdient der Blacklist-Parameter. Er sollte dem Namen entsprechen, der als Service-Bezeichner für dieses Plugin vergeben wurde. Nur so hat das Plugin eine Chance, seinen eigenen Zustand ignorieren zu können. In der ersten Zeile zeigt die Ausgabe den aktuellen Zustand und eine Zusammenfassung der zugehörigen Stati an:
[CRITICAL] Hosts: 8x DOWN, 1x UNREACHABLE – Services: 6x acknowledged
Anschließend werden im “long-output” die neuesten Host-Probleme angezeigt, davon aber immer nur die letzten 5:

Host problems: gmx-www (19.08. 20:48), google-www (19.08. 20:48),
 web_de-www (19.08. 20:48), yahoo-www (19.08. 20:48), ...

Darunter stehen dann zudem noch die neuesten Service-Probleme samt gekürztem Output. Das fertige Plugin ist wie üblich auf Monitoring Exchange verfügbar und steht unter git.netways.org in der aktuellsten Version zum Download bereit. Viel Freude mit dem Plugin – und an Perdata nochmals ein herzliches Dankeschön für die gute Idee und das Sponsern der Entwicklung!

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.