Checkmk
to checkmk.com

1. Einleitung

1.1. Hintergrund und Motivation

Unsere Integration von Datadog richtet sich an alle unsere Benutzer, die Datadog in ihren Unternehmen bereits im Einsatz haben. Durch unsere Integration verringern wir die Notwendigkeit dauerhaft zwei Monitoring-Systeme prüfen zu müssen und schließen damit die entstandene Lücke zwischen den zwei Systemen.

So ermöglichen wir eine Korrelation der Daten aus den beiden Systemen, beschleunigen eine etwaige Fehlerursachenanalyse und erleichtern gleichzeitig die Kommunikation zwischen Checkmk- und Datadog-Benutzern.

1.2. Monitore und Events

Konkret ermöglichen wir mit unserer Anbindung beliebige sogenannte Monitore (englisch: Monitors) und Events aus Datadog in Checkmk zu überwachen und anzuzeigen. Selbstverständlich können Sie sich dann auch auf den gewohnten Wegen aus Checkmk heraus über Vorkommnisse benachrichtigen lassen.

Die Integration beliebiger Monitore und Events aus Datadog wird über einen Spezialagenten zur Verfügung gestellt.

2. Einrichten der Integration

2.1. Schlüssel erzeugen und kopieren

Für die Datengewinnung nutzt unser Spezialagent die API von Datadog. Um den Zugriff auf diese API abzusichern werden zwei Schlüssel benötigt - jeweils ein API Key und ein Application Key. Wir empfehlen für die Verwendung durch Checkmk zwei neue Schlüssel zu erzeugen und diese ausschließlich für den Abruf durch Checkmk zu verwenden.

Zum Zeitpunkt, zu dem dieser Artikel entstanden ist, finden Sie die entsprechenden Schlüssel bzw. die Möglichkeit solche Schlüssel neu zu erzeugen, in Datadog über den Knopf unten links in der Ecke, auf dem Ihr Benutzername steht. Klicken Sie dort auf Organization Settings. Unter der Überschrift ACCESS finden Sie nun die beiden Einträge API Keys und Application Keys. Erzeugen Sie in diesen beiden Untermenüs über den Knopf New Key jeweils einen neuen Schlüssel.

integrating datadog application key

Damit Sie die beiden Schlüssel im Anschluss in Checkmk einfügen können, empfiehlt es sich, diese zu kopieren. Klicken Sie dazu in die Zeile des jeweiligen Schlüssels und anschließend auf Copy.

Hinweis: Während der Entstehung dieses Artikels hat sich der Ablageort der Schlüssel bereits einmal geändert. Sollten Sie die oben beschriebenen Menüpunkte so nicht vorfinden, konsultieren Sie bitte die Dokumentation von Datadog.

2.2. Host anlegen

Je nachdem, wie Sie Datadog in Checkmk integrieren möchten, kann es unterschiedliche Wege geben, wie Sie die gewonnenen Daten auf Hosts in Checkmk zuweisen. Dazu später mehr. Im Folgenden konzentrieren wir uns erstmal auf eine einfache Einrichtung und zeigen, wie Sie alle Daten einem Host zuweisen.

Erzeugen Sie dazu in Checkmk auf gewohnte Weise einen neuen Host und nennen Sie diesen beispielsweise mydatadoghost. Da dieser Host vorerst ausschließlich über den Spezialagenten Daten erhält, setzen Sie die Option IP address family auf No IP.

integrating datadog add host

Nehmen Sie alle weiteren Einstellungen Ihrer Umgebung entsprechend vor und bestätigen Sie Ihre Auswahl über Save & view folder.

2.3. Regel für den Datadog-Agenten anlegen

Als nächstes müssen Sie den Spezialagenten über den Regelsatz Setup > Agents > Other integrations > Applications > Datadog einrichten. Kopieren Sie als erstes die beiden zuvor erzeugten Schlüssel in die dafür vorgesehenen Felder oder verwenden Sie alternativ den Passwortspeicher von Checkmk. Prüfen Sie danach, ob der voreingetragene API host dem Ihrer Datadog-Instanz entspricht. Vergleichen Sie dazu einfach die URL Ihrer Datadog-Instanz mit dem vorgegebenen Eintrag in der Regel und passen Sie diesen gegebenenfalls an.

Falls Sie die Kommunikation von Checkmk mit Datadog über einen HTTP proxy laufen lassen, tragen Sie diesen in der folgenden Option ein.

Nun können Sie entscheiden, welche Daten Sie konkret aus Datadog nach Checkmk übertragen möchten. Hier stehen die sogenannten Monitors, Events und Logs zur Auswahl.

Fetch monitors

Wenn Sie die Überwachung der Monitore aktivieren, haben Sie die Möglichkeit, die zu übertragenden Daten über Tags innerhalb von Datadog zu filtern. Gerade in großen Umgebungen empfiehlt es sich, Monitore, die Sie in Checkmk sehen möchten, in Datadog mit einem entsprechenden Tag (bspw. monitored_by_checkmk:yes) zu versehen. Tragen Sie diese Tags dann unter Restrict by monitor tags ein.

Des Weiteren ist es auch möglich andere Tags, die in der Konfiguration der Monitore in Datadog auftauchen, zum Filtern zu verwenden. Sie können beispielsweise in Datadog Hosts mit einem Tag 'checkmk:yes' versehen.

Wenn Sie im Anschluss in Datadog einen Host-Monitor erstellen, der sich auf alle Hosts mit diesem Tag bezieht, können Sie eben dieses Tag auch in Checkmk unter Restrict by tags eintragen. So erhalten Sie mit sehr geringem Aufwand alle Monitore aus Datadog, die dieses Tag enthalten. Das funktioniert natürlich nicht nur für Host-Tags, sondern für alle Tags aus denen sich Monitore in Datadog erstellen lassen.

integrating datadog fetch monitors

Wenn Sie die beiden Optionen deaktiviert lassen, werden einfach alle Monitore aus Datadog nach Checkmk übertragen.

Für jeden Monitor, welchen Sie überwachen, wird in Checkmk ein Service angelegt.

Fetch events

Mit dem Spezialagenten für Datadog haben Sie auch die Möglichkeit Events aus Datadog direkt in die Event Console von Checkmk zu übertragen. Zur Eingrenzung, welche Events übertragen werden sollen, können Sie erneut Tags aus Datadog verwenden. Des Weiteren kann ein Zeitrahmen festgelegt werden, aus welchem Events übertragen werden sollen. Dieses Maximum age of fetched events sollte nicht kürzer sein als das Check-Intervall, da sonst gegebenenfalls Events übersehen werden. Da es aber auch vorkommen kann, dass Datadog Events mit einem Zeitstempel anlegt, der in der Vergangenheit liegt, sollte der Zeitraum nicht zu knapp bemessen werden. Die voreingestellten 10 Minuten sind hier ein guter Anhaltspunkt.

integrating datadog fetch events

Alle weiteren Felder in diesem Teil der Regel beziehen sich darauf, mit welchen Parametern die Events aus Datadog in der Event Console von Checkmk angelegt werden sollen. Eine detaillierte Beschreibung all dieser Felder finden Sie im Artikel zur Event Console in den Abschnitten Syslog-Priorität und -Facility und Service-Level.

Für die Events wird auf dem Host in Checkmk nur ein einzelner Service angelegt, der Sie darüber in Kenntnis setzt, wie viele Events übertragen wurden.

Fetch logs

Auch Logs können Sie von Datadog importieren und über die Event Console auswerten lassen, grundsätzlich exakt wie just für die Events beschrieben. Im Feld Log search query verwenden Sie für die Suche die Datadog-eigene Syntax. Und auch die Zusammensetzung des weiterzuleitenden Texts über die Option Text of forwarded events wird in der Datadog-Dokumentation ausgeführt.

integrating datadog fetch logs

Expliziten Host festlegen und Service-Erkennung durchführen

Damit die Monitore und Events, die Sie mit dieser Regel aus Datadog abholen, nur auf einem Host ankommen, müssen Sie den zuvor erzeugten Host zum Abschluss noch unter Conditions > Explicit hosts eintragen. Klicken Sie anschließend auf Save. Sobald Sie für diesen Host eine Service-Erkennung durchführen, sehen Sie Ihre ersten Monitore und Events aus Datadog in Checkmk.

Hinweis: In der Praxis hat sich gezeigt, dass es günstig sein kann, Monitore und Events auf getrennte Hosts in Checkmk zu legen. Dieses Vorgehen erhöht im Allgemeinen die Übersicht und erlaubt eine einfachere Konfiguration weiterer Parameter für die einzelnen Hosts.

3. Mapping der Zustände

Die Zustände, die mit den Monitoren aus Datadog übertragen werden, lassen sich nicht für jeden Anwendungsfall 1:1 auf die Zustände in Checkmk übertragen. Um Ihnen die Möglichkeit zu geben, diese Zustände nach Ihren Bedürfnissen einzustellen, gibt es die Regel Checking of Datadog monitors. Diese finden Sie über die Suche im Setup-Menü oder über Setup > Services > Service monitoring rules > Applications, Processes & Services > Checking of Datadog monitors.

integrating datadog parameters

Des Weiteren können Sie in dieser Regel auch festlegen, welche Tags aus Datadog im Service Output in Checkmk angezeigt werden sollen.

Auf dieser Seite