Hallo ![]()
erst einmal vielen Dank an Ralf Prengel für die Idee und (Weiter‑)Entwicklung von labelpicker. Wir haben den ursprünglichen Labelpicker lange im Einsatz gehabt, bis er mit Checkmk 2.3 nicht mehr funktionierte. Da ich auf der Homepage (https://labelpicker.mk) längere Zeit keine neue Version gefunden habe, habe ich begonnen, den Labelpicker von Grund auf zu überarbeiten – und erst im Nachhinein entdeckt, dass Ralf im Checkmk Exchange bereits neuere Versionen veröffentlicht hat.
Mit Labelpicker NG möchte ich euch nun eine (fast) komplette Überarbeitung des ursprünglichen Labelpickers vorstellen, die speziell auf aktuelle Checkmk-Versionen ausgerichtet ist.
Was hat sich geändert?
- Modularisiertes Backend
Die ursprüngliche Logik wurde in mehrere Bibliotheken/Module aufgeteilt, um den Code klarer zu strukturieren, besser wartbar zu machen und zukünftige Erweiterungen zu erleichtern. - Konfiguration & Validierung mit Pydantic
Sämtliche Konfigurationen (Checkmk-Anbindung, Logging, Datasources etc.) werden intern validiert, Default-Werte sauber gesetzt und – wo sinnvoll – vererbt. Fehlkonfigurationen führen zu deutlich aussagekräftigeren Fehlermeldungen. - Verbesserte YAML-Fehlerdiagnose
Wenn ein Fehler in der YAML-Konfiguration auftritt, wird die konkrete Stelle (Zeile/Spalte) inklusive Kontext ausgegeben. Das erleichtert das Debugging von Tippfehlern und Strukturfehlern in der Config erheblich. - Komplett überarbeitetes Logging
Labelpicker NG schreibt ein eigenes Logfile und erlaubt, unterschiedliche Log-Levels für Konsole und Logfile zu konfigurieren (z. B. DEBUG im File, INFO auf der Konsole). So kann man im Fehlerfall tief einsteigen, ohne die Konsole zu „zukleistern“. - Nachvollziehbares Aufräumen der erzeugten Labels
Das Entfernen von durch Labelpicker erzeugten Labels wurde neu umgesetzt:
Bei jeder Ausführung wird eine Pickle-Datei mit den von labelpicker NG gesetzten Labels geschrieben. Auf Basis dieser Historie können erzeugte Labels gezielt und sauber wieder entfernt bzw. bereinigt werden, ohne „fremde“ Labels anzufassen. - Neue Datasource: Active Directory
Es gibt ein zusätzliches Plugin, um Labels anhand von AD-Gruppen zu erstellen.
Typisches Einsatzszenario: AD-Gruppen, die Hosts/Servern zugewiesen sind (z. B. für automatisierte Windows-Updates), werden in Checkmk-Labels übersetzt – etwa zur automatisierten Steuerung von Downtimes oder Wartungsfenstern. - Neue Datasource: hwswtreeapi (Hardware-/Software-Inventory über API)
Das frühere Auslesen der Inventardaten direkt aus den lokalen Inventory-Dateien wurde durch ein neues Plugin hwswtreeapi ersetzt. Die Hardware-/Software-Inventory-Daten werden jetzt über die Checkmk-API geholt und anschließend ausgewertet. Das ist robuster gegenüber Änderungen am Dateiformat, funktioniert auch bei verteilten Setups / Remote-Instanzen und erlaubt eine klar definierte, zukunftssichere Schnittstelle für Inventory-basierte Labels (inklusive Regex-Filtern und komplexen Pfaden im Inventarbaum).
Labelpicker ist bei entsprechender Konfiguration auch unabhängig von Checkmk lauffähig und muss nicht mehr im Kontext einer Checkmk Site laufen.
Und natürlich noch viele kleinere Verbesserungen und Aufräumarbeiten „unter der Haube“ …
Eine erste Test-Version von labelpicker NG könnt ihr hier herunterladen:
Feedback, Bugmeldungen und Verbesserungsvorschläge sind ausdrücklich willkommen!