This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved. |
1. Introduction
1.1. Contexte et motivation
Notre intégration de Datadog s'adresse à tous nos utilisateurs qui utilisent déjà Datadog au sein de leur organisation. Grâce à cette intégration, nous avons réduit la nécessité de vérifier en permanence deux systèmes de supervision et avons également comblé le fossé entre les deux systèmes.
L'intégration nous permet de corréler les données des deux systèmes, afin d'accélérer toute analyse des causes profondes et, dans le même temps, de faciliter la communication entre les utilisateurs de Checkmk et de Datadog.
1.2. Moniteurs et événements de supervision
Concrètement, notre connexion permet de réaliser la supervision et l’affichage de tous les moniteurs et événements provenant de Datadog dans Checkmk. Vous pouvez bien sûr également être notifié des événements depuis Checkmk de la manière habituelle.
L'intégration des moniteurs et des événements de Datadog est assurée par un agent spécial.
2. Configuration de l'intégration
2.1. Génération et copie des clés
Pour l'exploration des données, notre agent spécial utilise l'API de Datadog. Pour sécuriser l'accès à cette API, deux clés sont nécessaires : une clé API et une clé d'application. Nous vous recommandons de créer deux nouvelles clés destinées à Checkmk et de les utiliser exclusivement pour les requêtes de Checkmk.
Au moment de la rédaction de cet article, vous pouvez trouver les clés correspondantes ou l’option permettant de créer de nouvelles clés dans Datadog en cliquant sur le bouton situé dans le coin inférieur gauche, à côté de votre nom d’utilisateur. Cliquez ensuite sur « Organization Settings ». Sous l’en-tête « ACCESS », vous trouverez les deux entrées « API Keys » et « Application Keys ». Créez une nouvelle clé dans chacun de ces deux sous-menus à l’aide du bouton « New Key ».

Afin de pouvoir insérer ces deux clés dans Checkmk par la suite, il est recommandé de les copier. Pour ce faire, cliquez sur la ligne de la clé correspondante, puis sur « Copy ».
Remarque : au moment de la rédaction de cet article, l'emplacement des clés a déjà changé une fois. Si vous ne trouvez pas les entrées de menu décrites ci-dessus, veuillez consulter la documentation Datadog.
2.2. Création d’un ordinateur hôte
Selon la manière dont vous souhaitez intégrer Datadog à Checkmk, il existe différentes façons d’attribuer les données obtenues à des ordinateurs hôtes dans Checkmk. Nous y reviendrons plus tard. Pour l’instant, concentrons-nous sur une configuration simple et attribuons toutes les données à un ordinateur hôte.
Pour ce faire, créez un nouvel ordinateur hôte dans Checkmk de la manière habituelle et nommez-le, par exemple, « mydatadoghost ».
Étant donné que cet ordinateur hôte ne recevra pour l'instant des données que via l'agent spécial, définissez l'option « IP address family » sur « No IP ».

Effectuez tous les autres réglages en fonction de votre environnement et confirmez votre sélection via Save & view folder.
2.3. Création d'une règle pour l'agent Datadog
Vous devez ensuite configurer l’agent spécial via le jeu de règles « Setup > Agents > Other integrations > Applications > Datadog ». Commencez par copier les deux clés que vous avez créées précédemment dans les champs prévus à cet effet, ou utilisez le coffre-fort à mot de passe de Checkmk. Vérifiez ensuite si l’adresse « API host » préremplie correspond à celle de votre instance Datadog. Pour ce faire, comparez simplement l’URL de votre instance Datadog avec l’entrée par défaut dans la règle et modifiez-la si nécessaire.
Si Checkmk communique avec Datadog via une interface de programmation d'applications (HTTP proxy), saisissez-la dans l'option suivante.
Vous pouvez désormais choisir les données que vous souhaitez transférer de Datadog vers Checkmk. Vous avez ici le choix entre ce que l'on appelle les « monitors » et les « events ».
Récupération des moniteurs de supervision
Si vous activez la supervision des moniteurs, vous avez la possibilité de filtrer les données à transmettre à l'aide de balises dans Datadog.
Dans les environnements de grande envergure notamment, il est recommandé d'associer aux moniteurs que vous souhaitez voir dans Checkmk une balise appropriée dans Datadog (par exemple « monitored_by_checkmk:yes »).
Saisissez ensuite ces balises sous « Restrict by monitor tags ».
De plus, il est également possible d'utiliser d'autres balises figurant dans la configuration du moniteur dans Datadog à des fins de filtrage. Par exemple, vous pourriez baliser les ordinateurs hôtes avec « Checkmk:yes » dans Datadog.
Si vous créez ensuite un moniteur d'hôte dans Datadog qui fait référence à tous les hôtes portant cette balise, vous pouvez également utiliser cette même balise dans Checkmk sous Restrict by tags. De cette manière, vous obtiendrez sans grand effort tous les moniteurs de Datadog contenant la balise « checkmk:yes ». Bien entendu, cela fonctionne non seulement pour les balises de l’hôte, mais aussi pour toutes les balises à partir desquelles des moniteurs peuvent être créés dans Datadog.

Si vous laissez les deux options désactivées, tous les moniteurs seront simplement transférés de Datadog vers Checkmk.
Un service sera créé dans Checkmk pour chaque moniteur Datadog, que vous pourrez ensuite surveiller dans Checkmk.
Récupération des événements
Grâce à l'agent spécial pour Datadog, vous avez également la possibilité de transférer des événements de Datadog directement vers l'Event Console de Checkmk. Pour limiter les événements à transférer, vous pouvez à nouveau utiliser les balises de Datadog. De plus, vous pouvez spécifier une plage horaire à partir de laquelle les événements doivent être transférés. CetteMaximum age of fetched eventse ne doit pas être inférieure à l'intervalle de vérification, sinon des événements pourraient être manqués. Cependant, comme il peut arriver que Datadog crée des événements avec un horodatage situé dans le passé, cette période de temps ne doit pas être trop courte. Les 10 minutes par défaut constituent un bon point de départ.

Tous les autres champs de cette partie de la règle indiquent quels paramètres doivent être utilisés pour créer les événements de Datadog dans la Event Console de Checkmk. Vous trouverez une description détaillée de tous ces champs dans l'article sur la Event Console, dans les sections Priorité et facilité syslog et Niveaux de service.
Pour les événements, un seul service est créé sur l'ordinateur hôte dans Checkmk, qui vous indique combien d'événements ont été transférés.
Récupération des journaux
Vous pouvez également importer des journaux depuis Datadog et les analyser à l’aide de l’Event Console, en suivant essentiellement la procédure décrite ci-dessus pour les événements. Dans le champ « Log search query », utilisez la syntaxe propre à Datadog pour la recherche. La composition du texte à transférer via l’option « Text of forwarded events » est également expliquée dans la documentation de Datadog.

Définition explicite de l'ordinateur hôte et reconnaissance du service
Pour vous assurer que les moniteurs et les événements que vous récupérez depuis Datadog avec cette règle n’arrivent que sur un seul hôte, vous devez ajouter l’hôte créé précédemment à Conditions > Explicit hosts à la fin. Cliquez ensuite sur Save. Une fois que vous avez effectué une reconnaissance du service pour cet hôte, vous verrez apparaître vos premiers moniteurs et événements provenant de Datadog dans Checkmk.
Remarque : dans la pratique, il s'avère parfois pratique de placer les moniteurs et les événements de supervision sur des ordinateurs hôtes distincts dans Checkmk. Cette approche améliore généralement la clarté et facilite la configuration de paramètres supplémentaires pour chaque ordinateur hôte.
3. Affectation des états
Les états transférés avec les moniteurs depuis Datadog ne peuvent pas être transférés à l'identique vers les états de Checkmk dans tous les cas d'utilisation. Afin de vous permettre de configurer ces états selon vos besoins, vous trouverez la règle « Checking of Datadog monitors ». Vous pouvez trouver cette règle en effectuant une recherche dans le menu « Setup », ou via l'URL Setup > Services > Service monitoring rules > Applications, Processes & Services > Checking of Datadog monitors.

De plus, dans cette règle, vous pouvez également spécifier quelles balises de Datadog doivent être affichées dans la sortie du service dans Checkmk.
