Checkmk Verlinkung nach Netbox auf die Devicekarte

Hallo zusammen,

an Netbox kommt man ja momentan als “Single Source of Trouth” nicht vorbei…. :grinning_face:

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:

https://neboxserver.xyz.de/dcim/devices/40/

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?

Wir machen das einfach mit einem Link auf die Suche von Netbox:

https://netbox.example.com/search/?q=$HOSTNAME$

Das ist uns präzise genug.

1 Like

Danke @r.sander toller Shortcut. Funktioniert für mich auch erstmal.

Es bleibt aber nur die B-Lösung. Weil es über die Suche von Netbox läuft und man dort immer noch das entsprechende Device anklicken muss.

Schön wäre doch, wenn man auch aus Custom fields oder auch per Labels einen direkten Link erzeugen kann.

@Checkmk-Announcement ein verdeckerter Featurewunsch :wink:

1 Like

Custom Host Attributes lassen sich wohl tatsächlich nicht für Custom Icons and Actions als Makros verwenden.

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.

1 Like

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.

Ja schon klar, aber geht halt nicht :grin:

Und wenn ihr das eh schon automatisiert habt, dann automatisiert doch im selben Step die Erzeugung einer entsprechenden Redirect-Config.

OK OK genug gepusht meine Idee :grin:

1 Like

Du könntest es hier einreichen:

https://ideas.checkmk.com/search?q=netbox