an Netbox kommt man ja momentan als “Single Source of Trouth” nicht vorbei….
Ich setzte sowohl Netbox als auch Checkmk ein und möchte die jeweiligen Datensätze Device/Host gegenseitig verlinken um im Servicefall schnell an die notwendigen Infos zu kommen.
Aus Netbox heraus ist mir das gut gelungen - der Devicename ist gleich dem Hostname.
Aus Checkmk ist das etwas komplizierter, weil Netbox den Link mit einer Device-ID aufbaut:
Ich habe mir also ein Custom Field am Host angelegt (Name: Netbox-ID), wo ich die Netbox ID ablegen möchte und dann einen Custom Link.
Hier beginnt nun meine Herausforderung. Mit welcher Variable kann ich die Netbox-ID im Link wieder aufrufen. Bisher ist mir das nur mit $HOSTNAME$ etc geglückt - aber eben nicht mit dem Custom Field $NETBOX-ID$ oder ähnlichem.
Habt Ihr eine Idee?
Was ich bei uns für einen anderen Zieldienst aufgesetzt habe, ist etwas hacky, funktioniert aber:
auf der CheckMK-Seite: custom link mit dem Hostnamen auf einen von mir kontrollierten internen Server (Caddy, nginx, Apache, völlig egal) mit Path so etwas wie /redirect-to-someservice/$HOSTNAME_URL_ENCODED$
in der korrespondierenden Webserver-Config dann eine lange Liste von Konfigurationen, dass für /redirect-to-someservice/my.first.host ein Redirect auf den echten Zieldienst mit der zu my.first.host gehörenden Datenbank-ID gemacht wird, und das halt für jeden einzelnen im Zieldienst konfigurierten Host (zzgl. eines Fallbacks für Hosts, die irgendwie anders heißen)
Ich pflege in CheckMK die Dienst-interne Datenbank-ID also nicht in CheckMK, sondern in meiner Webserver-Config. Damit ich das nicht manuell anpassen muss, hab ich ein Script, das mir die entsprechende Config direkt aus der Datenbank vom Zieldienst erzeugt.
Bei Netbox könnte man entweder direkt an die Datenbank rangehen, wenn das netzwerktopologisch einfach ist, oder die Netbox-API nutzen.
Yeah, etwas mehr aufwand, als man eigentlich haben will…
Ein ähnliches Schema verwende ich für einen Dokumentations-Link in unser internes Wiki. Im Wiki sind gibt’s nicht für jeden Host explizit eine Seite, aber zumindest für jeden Kunden; somit hab ich den Redirect effektiv immer auf einen Teil vom CheckMK-Hostnamen, der den Kunden eindeutig identifiziert, und das Ziel ist dann die Kundenseite im Wiki. Das ist allerdings eine manuell gepflegte Liste, die aber immer nur angefasst werden muss, wenn ein neuer Kunde in CheckMK hinzukommt. Somit bleibt der Aufwand überschaubar.
Interessanter Vorschlag, aber wie du schreibst hacky!
Da die meisten User hier die Daten zwischen Netbox und Checkmk via Webhock oder Ansible hin und her schieben, ist der Transfer der Netbox-ID eine Kleinigkeit und wäre bei Nutzbarkeit des der benutzerdefinierte Variable (Custom Host Attributes) als Linkelement ein echter Gewinn.