Ep. 16: Arbeiten mit Bulk-Aktionen

Hinweis: Alle Videos sind im deutschen Originalton und verfügen über englische Untertitel. Zudem stellen wir für alle Inhalte die Transkripte auf Englisch zur Verfügung.

[0:00:00] In der heutigen Folge greifen wir ein Thema auf, was sich unsere User gewünscht haben, und zwar geht es um sogenannte Bulk-Aktionen in der Host-Verwaltung von WATO.
[0:00:22] Mit den Bulk-Aktionen könnt ihr im WATO auf einer ganzen Reihe von Hosts Dinge gleichzeitig ausführen, und wie das geht zeigen ich jetzt live im System.
[0:00:31] Ihr seht hier ein sehr einfaches Checkmk- System mit nur sechs Hosts, aber die reichen uns, um die wichtigsten Sachen hier anzuschauen.
[0:00:39] Ich gehe jetzt in die Host-Verwaltung, und gehe in den Ordner "Servers", wo bei mir 5 Hosts sind.
[0:00:48] Jetzt findet ihr hier ein Symbol mit einer Checkbox, das ist unter der Liste.
[0:00:54] Ab 10 Einträgen findet ihr es auch unter und über der Liste. Wenn ich jetzt diese Checkbox anwähle, dann erscheint bei jedem Host links zusätzlich eine Checkbox.
[0:01:05] Nun, für was brauche ich diese Checkbox: Mit der kann ich jetzt hier einzelne Hosts auswählen.
[0:01:11] Ihr könnt auch mit diesem kleinen Symbol hier oben alle Checkboxen gleichzeitig anmachen oder alle gleichzeitig ausmachen.
[0:01:17] Wenn die Checkboxen nicht aktiviert sind, ist es so, als wären alle Checkboxen angekreuzt. So, ich mache das einmal wieder an, und wähle zum Beispiel mal hier
[0:01:29] drei Hosts aus, und jetzt findet ihr unten oder bei längeren Listen auch über der Liste, hier, eine Reihe von Knöpfen.
[0:01:37] Ich klappe jetzt mal die die Seitenleiste ein, damit man das besser sieht, und jetzt gibt es eben etliche Aktionen, die ich auf dieser ganzen Liste ausführen kann.
[0:01:46] Ein paar davon sind relativ simpel, also zum Beispiel "Move to:" könnte ich sagen, ich verschiebe die jetzt alle in einen bestimmten Ordner.
[0:01:52] Das ist, glaube ich, relativ einfach zu verstehen, wenn ich jetzt Bulk-Edit mache, wird es interessanter.
[0:01:59] Mit diesem Knopf kann ich also quasi diese 3 Hosts gleichzeitig editieren. Es sind also 3 Hosts ausgewählt, und jetzt ist es natürlich wichtig zu wissen, dass nur dort, wo ich eine Checkbox setze, ich das Attribut für die Hosts ändere.
[0:02:17] Ihr seht, dass hier eine Checkbox bereits gesetzt ist, das liegt daran, dass diese ganzen Hosts alle explizit die IP-Adresse vom localhost eingetragen haben, weil es eben hier mein Testsystem ist. Also, ich könnte hier zum Beispiel sagen, ich möchte bei allen ein Netzwerk-Segment eintragen.
[0:02:37] Dann setze ich die Checkbox, und wähle zum Beispiel Netzwerksegment "WAN" aus. Interessant ist auch hier diese Beschriftung, die müsst ihr genau lesen, da steht zum Beispiel "This value differs between the select hosts". Das bedeutet, dass diese 3 Hosts, die ich ausgewählt habe, momentan unterschiedliche Werte haben.
[0:02:57] Der Eintrag hier unten zum Besipiel "my own tags", "Webserver", da seht ihr dieser Wert ist geerbt vom Ordner und ist momentan für alle 3 Hosts gleich, sonst würde eben hier auch der andere Text angezeigt werden. So, wenn ich jetzt hier speichere, bedeutet das, dass bei diesen 3 ausgewählten Hosts explizit das Netzwerk-Segment "WAN" eingetragen wird.
[0:03:18] Wie ihr ja wahrscheinlich schon wisst, ist es bei Checkmk ein Unterschied, ob ich ein Attribut explizit gesetzt habe, oder ob ich es nicht definiert habe.
[0:03:30] Also, wenn ich jetzt quasi beim Host irgendwo eine Checkbox rausnehme, dann seht ihr ja immer, dass er dann den Wert vom Ordner kriegt oder den Default-Wert, dass also ein Unterschied, ob ich explizit einen Wert reinschreibe, oder ob ich einfach gar nichts festlege.
[0:03:43] Wenn ihr jetzt hier dieses Bulk-Edit verwendet, dann ist natürlich so, dass ich damit nur Attribute setzen kann, ich kann keine mehr entfernen.
[0:03:52] Wenn ich also mit Bulk-Edit hier wieder reingehe und eine Checkbox rausnehme, dann heißt es nicht, dass ich dieses Attribut bei den 3 Hosts entferne, sondern es heißt nur, dass ich jetzt das im Bulk-Edit eben nicht bearbeiten will.
[0:04:05] Wenn ich jetzt hier zum Beispiel speichere, dann hat sich an der IP-Adresse bei den Hosts nichts geändert. Deswegen gibt es eine umgekehrte Aktion, das sogenannte Bulk-Cleanup.
[0:04:14] Das ist dieser Knopf hier unten. Mit dem Cleanup könnt ihr von den ausgewählten Hosts Attribute entfernen, die explizit gesetzt sind, und damit wieder vom Ordner erben.
[0:04:27] Ihr seht hier eine Liste, die ist jetzt wesentlich kürzer. Das liegt daran, dass natürlich jetzt hier nur Attribute angezeigt werden, die überhaupt bei irgendeinem dieser 3 Hosts gesetzt sind. Wir sehen hier zum Beispiel, dass ein Alias bei einem der Hosts ist, die IPv4-Adresse ist bei allen ausgewählten Host gesetzt, zum Beispiel bei diesen Dreien, und eben auch das Netzwerksegment, weil das war ja, was wir gerade im Beispiel gesetzt haben.
[0:04:53] Das heißt, wenn ich jetzt hier den Haken setze, und "Save" mache, dann habe ich dieses explizite Attribut entfernt. Wir können mal reinschauen bei einem der Hosts, wenn ich jetzt in die Eigenschaften von diesem Host gehe, müsste dann hier unten wieder die Checkbox entfernt sein. Und er sagt wieder, er erbt diesen Wert "Webserver" von seinem Ordner. Das ist eine sehr mächtige Methode, um dafür zu sorgen, dass die Vererbung wieder funktioniert, es bringt ja nichts, wenn ich jetzt von Hunderten von Hosts alle Attribute explizit setze, dann kann ich nämlich über den Ordner keine Eigenschaften mehr vererben, und deswegen macht das Cleanup einen Sinn, um seine Konfiguration wieder aufzuräumen und in einen vernünftigen Zustand zu bringen.
[0:05:38] Eine weitere, wichtige Aktion in Checkmk ist die Service-Erkennung, also das automatische Hinzufügen von fehlenden Services zu Hosts oder vielleicht auch das Entfernen von Überflüssigen. Und den Weg zu Fuß quasi, den kennt ihr sicher, das ist der: Auf das Icon Service-Konfiguration, wo ich eben zu einem Host mir die Services anschauen kann, und eventuell Fehlende hinzufügen, Überflüssige entfernen und so weiter. Was wir natürlich jetzt ja heute besprechen wollen sind Bulk-Aktionen, das heißt die Frage: Wie kann ich das jetzt für mehrere Hosts auf einmal machen, und speziell beim Discovery gibt es jetzt 2 Möglichkeiten.
[0:06:17] Das eine ist eben, dass ich hier diesen Knopf "Discovery" verwende, dann mache ich die Service-Konfiguration für die ganze Liste von Hosts neu, oder eben für die, die ich mit der Checkbox auswähle.
[0:06:30] Da können jetzt mal reingehen, hier, ich gehe also auf "Discovery", jetzt bekomme ich einen Dialog, wo ich jetzt nochmal entscheiden kann, was ich genau machen möchte.
[0:06:40] Nämlich, per Default ausgewählt ist:"Add unmonitored services and new host labels", das heißt, hier werden nur neue Services hinzugefügt, es werden keine Services entfernt, die weggefallen sind, das kann nämlich auch gefährlich sein.
[0:06:55] Also, nehmen wir ein Beispiel: Ihr überwacht Dateisysteme, und ein Dateisystem verschwindet, es kann ja ein Fehler sein, dass das verschwunden ist, und das wollt ihr ihm Monitoring eben sehen und alarmiert werden. Wenn jetzt einfach sagt: "Remove vanished services" würde es heißen, dass einfach der Service entfernt wird und aus dem Monitoring ganz rausfliegt.
[0:07:12] Das ist also nicht unbedingt ganz ungefährlich. Oder das Gleiche gilt für Switch-Ports, wo ja per Default die Einstellung ist, das dort die momentan Verwendeten überwacht werden.
[0:07:25] Also, dass würde natürlich heißen, dass die Ports, die nicht verwendet werden, damit beim Discovery herausfliegen, das kann sicherlich nicht das sein, was ihr haben wollt.
[0:07:32] Also könnt ihr das hier auswählen, ob ihr nur neue Services haben wollt oder eben umgekehrt die überflüssigen Services entfernen wollt. Das wäre jetzt beides, und die 4. Option ist also ein komplettes Re-Discovery von allem, also quasi alles rausschmeißen und neu machen.
[0:07:49] Dann gibt es nochmal ganz interessante Zusatzfunktionen, zum Beispiel "only include hosts that failed on previous discovery". Das heißt, wenn ihr zum Beispiel über einen Bulk-Import über CSV-Import Hunderte von Hosts aufnehmt, über die gleichzeitig einen Discovery macht, dann kann es zum Beispiel sein, dass von diesen Hunderten, vielleicht 3 oder 4 oder 10 nicht erreichbar sind, wo die Discovery nochmal neu gemacht werden muss, und damit ihr nicht den Aufwand habt, die alle einzeln auszuwählen, könnt ihr diese Checkbox setzen, und dann werden genau nur die Hosts neu discovered, die eben beim letzten Mal fehlgeschlagen sind. Eine ähnliche Option ist hier die Option, wo der Discovery-Check gefailed ist, also es gibt ja einen Check, der euch warnt, das auf einem Host Services nicht gemonitored werden. Jetzt könnt ihr sagen.
[0:08:39] Genau die, wo dieser Check angeschlagen ist, die möchte ich jetzt hier re-discovern.
[0:08:45] Und wenn ihr die Auswahl gemacht habt, sagt er einfach hier auf Start, und dann läuft ein sogenannter Background-Job, das heißt, das ganze kann ja ein Weilchen dauern, es können ja hier möglicherweise Tausende von Hosts sein, und irgendwann
[0:08:57] ist das Ding fertig, und dann seht ihr hier eine Aufstellung, was hier alles passiert ist, zum Beispiel wurden hier 57 Services hinzugefügt, 57 entfernt, also, weil ich eben die Einstellung gewählt habe: Mach alles neu.
[0:09:12] Das war jetzt also quasi die Bulk-Discovery in dieser Liste. Es gibt aber noch eine noch weitergehende Sache, und zwar hier oben gibt es einen Knopf, der heißt auch bei "Bulk discovery", und damit könnt ihr diese Discovery rekursiv für den Ordner und sämtliche Unterordner starten, die Optionen sind die Gleichen wie hier, nur wenn ich jetzt quasi das in meinem Hauptordner mache, und da hängen noch alle möglichen Unterordner dran, dann wird diese Bulk-Discovery automatisch alle Hosts in allen Unterordnern auch mit erfassen, beziehungsweise kann ich dieses Verhalten hier mit der Checkbox ausschalten, die per Default an ist. Wenn ich das jetzt rausnehme, dann habe ich das Gleiche, wie wenn ich in diesem Ordner alle Hosts ausgewählt hätte.
[0:09:58] Eine andere Operation auf Host ist das Umbenennen. Das klingt jetzt erstmal sehr unspektakulär, einen Host umzubenennen sollte keine große Aktion seien, aber wer das schon mal gemacht hat, wird sehen, dass Checkmk ein großes Aufheben darum herum macht, denn der Host-Name ist ja auch gleichzeitig ein Schlüssel in der Historie, in den Datenbanken und so weiter. Das heißt, wenn er einen Host umbenennt, muss Checkmk durch sämtliche Datenbanken gehen und Datenansammlungen, und dort überall diesen Host-Namen umbenennen, damit dort zum Beispiel auch die Historie wieder stimmt, sonst könntet ihr den Host zwar löschen und neu anlegen, aber wenn wir zum Beispiel eine Availability, eine Verfügbarkeit haben wollt, eine Historie aller Notifications und so weiter, dann ist die Umbenennen-Aktion so, dass sie eben auch in der Vergangenheit den Host umbenennt, also so tut, als hätte der schon immer so gehießen, das ist also eine recht komplexe Operation, die auch erfordert, dass das Checkmk-System gestoppt wird, damit konsistent diese Datenbanken angepasst werden können.
[0:10:59] Wenn ihr also eine ganze Menge von Hosts unmbenennt, und bei jedem Einzelnen muss das Checkmk-System anhalten, und wieder starten, ist also recht aufwändig, und deswegen gibt es hier eine Bulk-Renaming-Funktion, die möchte ich euch jetzt zeigen.
[0:11:12] Die Funktion zum Umbenennen von mehreren Host auf einmal findet ihr beim Knopf "Bulk renaming".
[0:11:18] Per Default ist angekreuzt "include all subfolders", wenn ihr das ausmacht, dann finden das ganz in nur im aktuellen Ordner statt.
[0:11:25] Wichtig ist jetzt hier ein Host-Name-Matching, damit könnt ihr jetzt entscheiden, welche Hosts überhaupt umbenannt werden sollen, ansonsten würde das erstmal für alle funktionieren.
[0:11:34] Das hier ist ein regulärer Ausdruck, über reguläre Ausdrücke findet ihr auch im Handbuch ein eigenes Kapitel, wo ihr euch noch damit befassen könnt und alle Features von denen lernen könnt.
[0:11:45] Wichtig ist hier zu wissen: es matched auf den Anfang des Host-Namens, ich kann zum Beispiel sagen:"dbserver", dann werden alle Hosts umbenannt werden, die mit "dbserver" beginnen.
[0:11:57] So, und in was wollen sie umbenannt werden?
[0:11:59] Nun, jetzt kann ich natürlich nicht einfach nur einen neuen Host-Namen angeben, weil die sollen ja nicht alle gleich heißen. Was ich brauche ist eine Operation, eine Art Regel, nach der die Umbenennung stattfindet, und das ist ein sogennantes Renaming.
[0:12:13] Ihr sagt jetzt einfach "add renaming" und findet verschiedene Möglichkeiten in der Auswahlliste wie Hosts umbenannt werden können. Eine ganz einfache Sache ist zum Beispiel eine "Case translation", dass ihr sagt, ihr möchtet zum Beispiel, dass alle Hosts in Kleinbuchstaben sind oder in Großbuchstaben, zum Beispiel kommen vielleicht von einem Import irgendwie Hosts mit irgendwie gemischter Beschreibung, ihr wollt die alle auf jeden Fall kleingeschrieben haben, könnt ihr das hier einstellen, ich mache jetzt zum Beispiel groß, weil bei mir sind sie schon klein.
[0:12:39] Und ausprobieren kann ich dann, in dem ich einfach "Bulk Rename" klicke und bevor es losgeht, kriege ich noch eine Aufstellung der Hosts und in was sie umbenannt werden würden, also zum Beispiel "dbserver04" wird dann heißen "DBSERVER04" großgeschrieben.
[0:12:53] Wenn ich jetzt hier auf "no" gehe, komme ich wieder zurück und kann mein Renaming nochmal anpassen. Ich kann zum Beispiel noch ein zweites Renaming hinzufügen, die beiden werden dann der Reihenfolge nach ausgeführt, ich könnte zum Beispiel hier sagen nachdem Umwandeln in Großbuchstaben möchte ich noch ein Suffix hinzufügen, und zwar ".test".
[0:13:16] Ich gehe wieder "Bulk Rename", ihr seht auch dieses Suffix ist jetzt hier kleingeschrieben, das heißt zuerst wird in Grossbuchstaben umgewandelt, und dann wird das Suffix ".test" hinzugefügt.
[0:13:29] Wenn ich das ändern will, kann ich hier einfach diese Operation verschieben, kann sagen: Die hier ziehe ich nach oben, dann wird zuerst .test hinzugefügt, und dann wird es in Großbuchstaben umgewandelt, was dann so aussieht.
[0:13:42] Die flexibelste Operation, die ihr hier findet, mit denen ihr die meisten Probleme lösen könnt, ist aber nicht so was eine "Case translation" oder "Suffix", deswegen entferne ich die mal wieder, sondern ihr findet hier eine Operation, die heißt "Regular expressions substitution", die ist jetzt etwas komplexer, und hat es wirklich in sich, und ich zeige euch jetzt mal ein schönes Beispiel.
[0:14:05] Und zwar möchte ich jetzt, dass die Host-Namen nicht mehr dbserver01 heißen, 02 und so weiter, sondern ich möchte, dass diese zum Beispiel heißen "db-01-server",
[0:14:17] also ich möchte einen Teil aus dem Host-Namen rausziehen und in den neuen Host-Namen wiederverwenden. Dazu brauche ich für die regulären Ausdrücke eine sogenannte Subgruppe, ich schreibe das jetzt so, ich sage "dbserver(.*)".
[0:14:36] Mit diesen beiden Klammern fange ich quasi den Text ein, der an dieser Stelle steht. In dem Fall ist es halt der Text 01, 02, 03. Und diesen Text kann ich jetzt in meinem Replacement an einer beliebigen Stelle wieder einfügen.
[0:14:52] Ich könnte zum Beispiel jetzt sagen, der neue Host-Name soll dann heißen: "db-\1-server" Backslash bedeutete, die erste Subgruppe möchte ich hier einsetzen.
[0:15:08] Machen wir eine Kontrolle, wenn wir das aus "dbserver04" jetzt "db-04-server" wird, dass ist also eine sehr flexible Art, wie ihr einfach einen beliebigen Teil rausschneiden könnt aus dem Host-Namen, und einen kompletten neuen Host-Namen aus dem konstruiert.
[0:15:27] Wenn ihr mit der Liste der Umbenennungen zufrieden seid, dann klickt ihr einfach auf "Yes!", und jetzt findet das Umbenennen statt, und das Ganze ist ein Background-Job, das kann jetzt tatsächlich etwas dauern, weil das Checkmk-System wie ich vorhin schon erwähnte, aus Konsistenzgründen gestoppt werden muss, und dann wird in sämtlichen Log-Files, Datenbanken und so weiter diese Host-Name umbenannt, und so getan, als hätte der Host schon immer so geheißen.
[0:15:58] Das heißt, ihr solltet das nicht machen, wenn gerade Produktivbetrieb von Checkmk notwendig ist. Das Monitoring muss halt jetzt hier einfach mal kurz stehen, das kann Sekunden oder Minuten dauern, und dann wird eben automatisch wieder gestartet. Das Ganze läuft in einem sogennanten Background-Job, ihr könnt also hier verfolgen, wie der aktuelle Stand ist, sobald es fertig ist, wird es jetzt hier grün erscheinen, und das Monitoring läuft wieder.
[0:16:25] Ihr seht jetzt hier unten eine Zusammenfassung: "Auto-discovered services of the host", das heißt die Auto-Checks wurden umbenannt, gecached, also ihr sieht quasi an welchen Stellen überall Umbennenungen statt-gefunden haben, und das das Ganze erfolgreich war, und jetzt läuft das Checkmk auch wieder, und eure Hosts sind umbenannt.
[0:16:43] So, das war es, was ich euch zu den Bulk-Aktionen zeigen wollte, ich hoffe ich hat es gefallen, und ich hoffe natürlich, dass ihr den Kanal abonniert habt, und damit auch das nächste Video nicht verpasst.

Wollen Sie mehr über Checkmk erfahren? Dann nehmen Sie an unserem Webinar "Einführung in Checkmk" teil!

Jetzt anmelden

Mehr Checkmk-Videos