[Check_mk (deutsch)] automatische Service-Label

Huhu,

gibt's irgendwo ein Beispiel, wie ein Inventory-Modul automatisch
Service-Label setzt? Die Dokumentation zu Host- & Service-Labels redet
davon, dass Service-Label automatisch gesetzt werden können; ich finde aber
dazu nichts weiter.

Viele der Module in share/check_mk/inventory machen zwar etwas mit dem
inventory_tree, aber ich verstehe noch zu wenig von den Innereien, um
wirklich sagen zu können, ob da Host- oder Service-Label gesetzt werden.

Warum ich die brauche: ich habe ein eigenes Plugin, das einen Haufen
Infos zu Datenbank-Backups zusammenträgt, woraus dann Services gemacht
werden. Jetzt laufen diese Datenbankbackups oft viele Stunden lang, und in
dem Zeitraum sind die Backupdateien alle in einem Status, der die Services
als critical einstufen würde.

Kurz, ich will die Service-Checks für diese Datenbankbackups nur in einer
gewissen Zeitperiode durchführen lassen. Das geht, wenn ich manuell Rules
für jeden einzelnen Service baue, aber das ist mir zu viel Arbeit, auch
weil die Datenbank (und damit die Backups) nicht nur von mir angelegt
werden.

Also ist meine Idee, dass mein DB-Backup-Plugin auch gleichzeitig über ein
eigenes Inventory-Modul jedem der Services ein Label geben kann. Das Label
könnte ich dann schön mit einer Rule für die Zeitperiode der Checks nutzen.

Oder habt ihr andere Ideen, wie ich das automatisch umsetzen könnte?

Danke :slight_smile:

m.

···

--
Dipl.-Inform. Moritz Bunkus
Geschäftsführer/CTO

LINET Services GmbH | Cyriaksring 10a | 38118 Braunschweig
Tel. 0531-180508-113 | Fax 0531-180508-29 | http://www.linet-services.de

LINET in den sozialen Netzwerken:
https://twitter.com/linetservices | https://www.facebook.com/linetservices
Wissenswertes aus der IT-Welt: http://www.linet-services.de/blog/

Geschäftsführung: Timo Springmann, Mirko Savic und Moritz Bunkus
HR B 9170 Amtsgericht Braunschweig

USt-IdNr. DE 259 526 516

Hi Moritz,

schau dir mal das Werk 7978 an, da wird es beschrieben - fuer Checks:
https://checkmk.de/check_mk-werks.php?werk_id=7978

Hoffe, das hilft dir.

Gruesse,
Marcel

···

Am Fr., 6. Dez. 2019 um 12:33 Uhr schrieb Moritz Bunkus via checkmk-de <checkmk-de@lists.mathias-kettner.de>:

Huhu,

gibt's irgendwo ein Beispiel, wie ein Inventory-Modul automatisch
Service-Label setzt? Die Dokumentation zu Host- & Service-Labels redet
davon, dass Service-Label automatisch gesetzt werden können; ich finde aber
dazu nichts weiter.

Viele der Module in share/check_mk/inventory machen zwar etwas mit dem
inventory_tree, aber ich verstehe noch zu wenig von den Innereien, um
wirklich sagen zu können, ob da Host- oder Service-Label gesetzt werden.

Warum ich die brauche: ich habe ein eigenes Plugin, das einen Haufen
Infos zu Datenbank-Backups zusammenträgt, woraus dann Services gemacht
werden. Jetzt laufen diese Datenbankbackups oft viele Stunden lang, und in
dem Zeitraum sind die Backupdateien alle in einem Status, der die Services
als critical einstufen würde.

Kurz, ich will die Service-Checks für diese Datenbankbackups nur in einer
gewissen Zeitperiode durchführen lassen. Das geht, wenn ich manuell Rules
für jeden einzelnen Service baue, aber das ist mir zu viel Arbeit, auch
weil die Datenbank (und damit die Backups) nicht nur von mir angelegt
werden.

Also ist meine Idee, dass mein DB-Backup-Plugin auch gleichzeitig über ein
eigenes Inventory-Modul jedem der Services ein Label geben kann. Das Label
könnte ich dann schön mit einer Rule für die Zeitperiode der Checks nutzen.

Oder habt ihr andere Ideen, wie ich das automatisch umsetzen könnte?

Danke :slight_smile:

m.

--
Dipl.-Inform. Moritz Bunkus
Geschäftsführer/CTO

LINET Services GmbH | Cyriaksring 10a | 38118 Braunschweig
Tel. 0531-180508-113 | Fax 0531-180508-29 | http://www.linet-services.de

LINET in den sozialen Netzwerken:
https://twitter.com/linetservices | https://www.facebook.com/linetservices
Wissenswertes aus der IT-Welt: http://www.linet-services.de/blog/

Geschäftsführung: Timo Springmann, Mirko Savic und Moritz Bunkus
HR B 9170 Amtsgericht Braunschweig

USt-IdNr. DE 259 526 516
_______________________________________________
checkmk-de mailing list
checkmk-de@lists.mathias-kettner.de
Verwaltung & Abmeldung unter
https://lists.mathias-kettner.de/cgi-bin/mailman/listinfo/checkmk-de

Huhu,

ich hab leider kein Beispiel gefunden, wie ich aus einem Plugin heraus
Service-Labels vergebe. Daher hab ich's anders gelöst:

Was mir vorher nicht bewusst war, ist dass die Regeln fürs Vergeben von
Service-Label reguläre Ausdrücke verstehen. Da die Namen all meine
Datenbank-Backup-Checks mit »Database backup …« beginnen, genügte also eine
Regel, um all diesen Services ein Laben zu verpassen, das ich anschließend
in einer Regel für die Check-Zeitperiode nutzen konnte.

Würde mich trotzdem weiterhin sehr interessieren, wie ich Service-Label in
eigenen Plugins setzen kann…

Gruß
mosu

···

--
Dipl.-Inform. Moritz Bunkus
Geschäftsführer/CTO

LINET Services GmbH | Cyriaksring 10a | 38118 Braunschweig
Tel. 0531-180508-113 | Fax 0531-180508-29 | http://www.linet-services.de

LINET in den sozialen Netzwerken:
https://twitter.com/linetservices | https://www.facebook.com/linetservices
Wissenswertes aus der IT-Welt: http://www.linet-services.de/blog/

Geschäftsführung: Timo Springmann, Mirko Savic und Moritz Bunkus
HR B 9170 Amtsgericht Braunschweig

USt-IdNr. DE 259 526 516

Hallo Moritz,

die automatischen Service-Labels funktionieren folgendermaßen:

Normalerweise sieht ja eine Inventory-Funktion (mit "items") ungefähr so aus:

     def inventory_mycheck(parsed):
         for item in sorted(parsed):
             yield (item, {})

Dabei gehe ich davon aus, dass Du eine "parse"-Funktion hast, die in etwa folgendes zurück liefert:

     parsed = {
         "item1" : data_for_item_1,
         "item2" : data_for_item_2,
     }

Wenn Du automatisch Service-Labels für diesen konkreten Check anlegen möchstest, musst Du die Inventory-Funktion statt dessen so schreiben:

     def inventory_mycheck(parsed):
         service_labels = ServiceLabels(
             ServiceLabel( u'label1', u'value1' ),
             ServiceLabel( u'label2', u'value2' ),
         )
         for item in sorted(parsed):
             yield Service( item = item,
                            parameters = {},
                            service_labels = service_labels )

Die Klassen "Service", "ServiceLabels" und "ServiceLabel" sind neu und ohne weitere "import"-Statements verfügbar. Mit dieser Inventory-Funktion hat der Service "mycheck" automatisch die Labels "label1:value1" und "label2:value2".

Gruß Dirk

···

Am 11.12.2019 10:52, schrieb Moritz Bunkus via checkmk-de:

Huhu,

ich hab leider kein Beispiel gefunden, wie ich aus einem Plugin heraus
Service-Labels vergebe. Daher hab ich's anders gelöst:

Was mir vorher nicht bewusst war, ist dass die Regeln fürs Vergeben von
Service-Label reguläre Ausdrücke verstehen. Da die Namen all meine
Datenbank-Backup-Checks mit »Database backup …« beginnen, genügte also eine
Regel, um all diesen Services ein Laben zu verpassen, das ich anschließend
in einer Regel für die Check-Zeitperiode nutzen konnte.

Würde mich trotzdem weiterhin sehr interessieren, wie ich Service-Label in
eigenen Plugins setzen kann…

Gruß
mosu

--
Dipl.-Inform. Moritz Bunkus
Geschäftsführer/CTO

LINET Services GmbH | Cyriaksring 10a | 38118 Braunschweig
Tel. 0531-180508-113 | Fax 0531-180508-29 | http://www.linet-services.de

LINET in den sozialen Netzwerken:
https://twitter.com/linetservices | https://www.facebook.com/linetservices
Wissenswertes aus der IT-Welt: http://www.linet-services.de/blog/

Geschäftsführung: Timo Springmann, Mirko Savic und Moritz Bunkus
HR B 9170 Amtsgericht Braunschweig

USt-IdNr. DE 259 526 516
_______________________________________________
checkmk-de mailing list
checkmk-de@lists.mathias-kettner.de
Verwaltung & Abmeldung unter
https://lists.mathias-kettner.de/cgi-bin/mailman/listinfo/checkmk-de

Hey Dirk,

vielen Dank, das ist _exakt_ die Info, die ich gesucht habe.

Gruß
mosu

···

--
Dipl.-Inform. Moritz Bunkus
Geschäftsführer/CTO

LINET Services GmbH | Cyriaksring 10a | 38118 Braunschweig
Tel. 0531-180508-113 | Fax 0531-180508-29 | http://www.linet-services.de

LINET in den sozialen Netzwerken:
https://twitter.com/linetservices | https://www.facebook.com/linetservices
Wissenswertes aus der IT-Welt: http://www.linet-services.de/blog/

Geschäftsführung: Timo Springmann, Mirko Savic und Moritz Bunkus
HR B 9170 Amtsgericht Braunschweig

USt-IdNr. DE 259 526 516