Piggypack hostname translation

Ich habe folgendes Problem(chen):

Auf diversen Hosts, die im Monitoring sind laufen Docker container, die überall den selben Namen haben. Der mk_docker.py Plugin sammelt diverse Daten ein und schickt die Huckepack weiter.

Für jeden dieser Container auf allen Hosts gibt es einen weiteren Host nach dem Muster ‘Container.Host’, in den lediglich die Huckepack Daten reinlaufen sollen., sonst nichts. (Kein Agent, kein snmp etc.=

Ich bin also naiv davon ausgegangen, dass ich eine Regex Translation des Namens:
Regular Expression: (^.*$)
Replacement: \1.$HOSTNAME$

machen könne. (Ich weiss, so ist das ein bisschen blöd, weil das, wenn man nicht weiter einschränkt, alle Huckepackdaten so ersetzt. Nehmen wir mal an, das sei auf die Hosts beschränkt, für die ich das will und alles, was anderweitig behandelt sein soll, schon abgefühstückt ist.)

Leider wird $HOSTNAME$ nicht durch den sammelnden Host ersetzt, sondern durch _$HOSTNAME$_.

Was mach ich falsch? Oder kann ich an der Stelle gar keine Check_mk-Variablen eintragen? Oder heisst die bloss falsch?

Hat jemand einen Tipp?

Ah, andere Frage: Kann man irgenwie, ausser Löschen und neu schreiben, die Reihenfolge der regulären Ausdrücke in der Translation for piggypacked hostnames ändern?

Danke und viele Grüße

Steffzt

Du musst tatsächlich für jeden Docker Host eine Piggyback-Translation-Regel anlegen mit dem Hostnamen als Condition und dann auch in der Ersetzung statisch eingetragen.

Es wäre praktisch, wenn das Docker-Plugin bereits $(hostname -f) dem Containernamen hinzufügen könnte.

Ist etwas für das Ideenportal: https://ideas.checkmk.com/suggestions/532086/include-hostname-in-container-name

3 Likes