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. Les bases
Docker vous permet d'installer Checkmk au sein d'un environnement de conteneurs léger et autonome. Dans cet article, nous vous guiderons tout au long de la configuration de Checkmk dans Docker et vous présenterons quelques astuces qui peuvent vous faciliter la vie avec Checkmk dans Docker.
Checkmk fournit des images Docker officielles, mais n’a aucun contrôle sur les caractéristiques de l’ordinateur hôte sur lequel vous configurez les conteneurs correspondants.
Les avantages et inconvénients connus des environnements de conteneurs s’appliquent ici.
Dans certains cas particuliers, des problèmes de performances inattendus peuvent survenir, par exemple si le noyau de l’ordinateur hôte est nettement plus récent ou plus ancien que celui prévu par l’installation de Checkmk dans le conteneur.
Dans de tels cas, des réglages supplémentaires de l’ |
2. Conditions préalables
Pour exécuter les instructions présentées dans cet article, vous devez disposer d'une installation opérationnelle de Docker Engine et avoir des connaissances de base sur son utilisation.
L'utilisation de Checkmk à partir des images présentées ici n'est prise en charge que dans Docker lui-même. D'autres environnements de conteneurs compatibles avec Docker peuvent fonctionner, mais ne sont pas pris en charge par Checkmk. Dans ce cas, vous les utilisez à vos propres risques et ils ne sont pas recommandés pour les environnements de production. |
3. Obtenir une image Checkmk
Afin de vous faciliter au maximum l'utilisation de Checkmk en tant que conteneur, nous mettons à votre disposition des images distinctes pour chaque édition de Checkmk, sous différentes formes. Les images provenant des différentes sources pour une même édition sont identiques.
|
— |
— |
||
|
— |
|||
|
— |
|||
|
— |
Lorsqu’une de ces images est lancée pour la première fois, non seulement le conteneur approprié est exécuté, mais une instance de supervision nommée cmk est également configurée et démarrée.
Celui-ci est immédiatement accessible via le login avec l’utilisateur cmkadmin.
Les images officielles sont également disponibles gratuitement sur diverses plateformes pour les éditions commerciales Checkmk Ultimate et Checkmk Ultimate avec multi-tenancy.
Ces éditions de Checkmk peuvent être testées avec toutes leurs fonctionnalités dans le cadre d'une période de test de 30 jours.
Si vous n'achetez pas de licence pour l'édition sélectionnée, vous passerez au statut de licence « Free » à l'expiration de la période de test.
Avec ce statut, vous pouvez effectuer la supervision de jusqu'à 750 services et serez limité à une seule instance.
3.1. Télécharger automatiquement les images lors du premier démarrage d’un conteneur
Si une connexion Internet est disponible, le moteur Docker recherche automatiquement sur Docker Hub le nom de l'image que vous spécifiez lors de la création d'un conteneur. Pour les éditions dont les images sont disponibles sur Docker Hub conformément au tableau ci-dessus, vous pouvez passer directement à la section Démarrer un conteneur Checkmk.
Les images pour Checkmk Pro sont stockées dans le registre Docker de Checkmk. Ici, le moteur Docker peut automatiquement trouver et télécharger les images en fonction de leur nom complet et de leur chemin d'accès. Cependant, vous devez d'abord vous connecter au registre à l'aide de vos identifiants du portail client Checkmk. Pour vous connecter, utilisez le magasin d'identifiants Docker ou l'instruction suivante :
Une fois la connexion établie, le moteur Docker peut accéder aux images Checkmk via le registre. Pour ce faire, indiquez le chemin d'accès complet de l'image souhaitée lors du démarrage du conteneur Docker. Le moteur Docker vérifie alors si l'image est déjà disponible localement et, si ce n'est pas le cas, la télécharge automatiquement.
Pour la version 2.4.0p24 de Checkmk Pro, par exemple, indiquez le chemin d'accès complet de l'image lors du démarrage du conteneur comme suit :
registry.checkmk.com/enterprise/check-mk-enterprise:2.4.0p24
3.2. Téléchargement et préparation manuels des images
Les images peuvent également être téléchargées sous forme de fichiers d'archive et stockées sur l'ordinateur hôte sur lequel vous souhaitez démarrer le conteneur Docker.
Cela peut s'avérer utile, par exemple, si votre ordinateur hôte Docker ne dispose pas d'une connexion internet au moment du démarrage du conteneur Docker.
Téléchargez l'image souhaitée et transférez le fichier vers votre ordinateur hôte Docker en utilisant la méthode de votre choix.
Utilisez ensuite la commande docker load -i pour mettre le fichier image à la disposition du moteur Docker sur votre système :
4. Démarrer un conteneur Checkmk
Vous pouvez démarrer les images Checkmk soit avec docker compose et un fichier compose, soit avec docker container run, en spécifiant un ensemble de paramètres.
Le choix de l'option dépend de votre charge de travail spécifique.
4.1. Démarrage avecdocker compose
L'exemple suivant illustre la variante utilisant docker compose, qui permet, moyennant un effort de configuration minime, de démarrer des conteneurs supplémentaires en parallèle.
Dans le fichier compose.yaml, vous utilisez des paramètres pour définir les propriétés souhaitées du conteneur Docker à démarrer.
Plusieurs conteneurs peuvent également être définis ici, qui seront ensuite démarrés ensemble.
L'exemple suivant d'un fichier compose.yaml adapté présente les paramètres permettant de démarrer un seul conteneur Checkmk.
Les paramètres contenus et leurs valeurs sont expliqués ci-dessous.
Plus d'informations sur les options utilisées :
| Option | Description |
|---|---|
|
Nom descriptif personnalisé pour le service Docker pour lequel le conteneur Checkmk doit être démarré. |
|
Nom de l'image Checkmk au format Vous pouvez consulter les noms des images existantes à l'aide de l'instruction « Si vous récupérez l'image depuis le registre Docker de Checkmk, celle-ci doit être spécifiée avec son chemin d'accès complet. |
|
Nom descriptif de votre choix pour le conteneur. Ce nom doit être unique et ne peut pas être utilisé une deuxième fois sur le Docker node. |
environment: - CMK_PASSWORD=mypassword - TZ=Europe/Berlin |
Utilisez la variable d'environnement
Si vous ne souhaitez pas définir explicitement le fuseau horaire, vous pouvez également adopter les paramètres de date et d’heure de l’ordinateur hôte Docker.
Pour ce faire, montez le fichier |
volumes: - monitoring:/omd/sites |
Cette spécification lie les données de l'instance dans ce conteneur à un emplacement persistant dans le système de fichiers du Docker node.
Le volume nommé |
tmpfs: - /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 |
Pour des performances optimales, vous pouvez utiliser un système de fichiers temporaire directement dans la mémoire vive (RAM) du Docker node. Avec cette option, vous spécifiez le chemin d'accès à ce système de fichiers. Si vous spécifiez un nom différent lors de la création de l'instance, ce chemin d'accès doit également être mis à jour en conséquence. |
ports: - 8080:5000 - 8000:8000 |
Le serveur web du conteneur écoute par défaut sur le port 5000.
Dans cet exemple, le port 8080 du Docker node est lié au port 5000 du conteneur afin que son interface web soit accessible depuis l'extérieur.
Si vous ne disposez pas d’un autre conteneur ou processus utilisant le port HTTP standard 80, vous pouvez également y lier le conteneur.
Dans ce cas, l’option se présenterait comme suit :
Pour certains scénarios qui vont au-delà des fonctionnalités de base de Checkmk, des ports supplémentaires doivent être explicitement activés. Cela s'applique, par exemple, à l'accès à Livestatus via TCP dans le cadre de la supervision distribuée ou à l'utilisation de l'Event Console au sein d'un conteneur Checkmk. Vous trouverez un aperçu des ports concernés dans l'article Ports. |
|
Normalement, un conteneur ne redémarre pas lorsqu'il est arrêté. Cette option garantit qu'il redémarre automatiquement. Toutefois, si vous arrêtez un conteneur manuellement, il ne redémarrera que lorsque le Docker daemon redémarrera ou que le conteneur lui-même sera redémarré manuellement. |
volumes: monitoring: |
Tous les volumes requis au sein des services sont spécifiés ici.
Dans ce cas, il s'agit uniquement du volume |
En plus du service Docker Compose checkmk, vous pouvez définir dans votre fichier compose.yaml des services supplémentaires qui doivent être démarrés dans le même groupe de conteneurs.
Une fois que vous avez tout décrit comme vous le souhaitez, vous pouvez créer et démarrer le ou les conteneurs.
Pour ce faire, exécutez docker compose up dans le répertoire où se trouve votre fichier compose.yaml.
docker compose up garantit que tous les conteneurs et leurs volumes associés sont créés correctement.
Avec docker compose up -d (pour « detached »), les conteneurs sont démarrés en arrière-plan.
Si vous n’avez pas encore téléchargé d’image et ne l’avez pas stockée sur votre système, l’exécution de la commande `docker compose up` prendra quelques minutes, car l’image spécifiée sera chargée à ce stade depuis Docker Hub ou depuis le registre Docker de Checkmk.
Si une image portant le nom spécifié existe déjà sur votre ordinateur hôte Docker, aucune nouvelle image ne sera téléchargée — votre image locale risque donc d’être déjà obsolète lorsque vous démarrez le conteneur Docker pour la première fois.
Pour vous assurer que vous travaillez avec la dernière image, exécutez |
La sortie présentée ici est basée sur un scénario dans lequel l'image a été préparée avec docker load -i.
Arrêtez les conteneurs en cours d'exécution à l'aide de docker compose stop.
Pour redémarrer les conteneurs déjà créés, exécutez docker compose start.
Affichez la sortie du conteneur monitoring à l'aide de docker container logs monitoring.
Avec docker inspect monitoring, obtenez des informations détaillées sur le conteneur, par exemple les volumes qu'il contient.
4.2. Démarrer avecdocker container run
Au lieu d’utiliser la commande docker compose, vous pouvez démarrer l’image Checkmk avec docker container run.
Pour ce faire, transmettez les informations du fichier compose.yaml en tant que paramètres.
L'instruction suivante crée le même conteneur avec les mêmes propriétés que dans l'exemple ci-dessus.
La sortie affichée correspond à un scénario dans lequel l'image n'a pas encore été téléchargée manuellement.
Vous pouvez également forcer le téléchargement de la dernière image en ajoutant le préfixe docker pull checkmk/check-mk-raw:2.4.0-latest.
Ici, le conteneur est exécuté en mode détaché (-d).
Pour afficher la sortie du conteneur, utilisez docker container logs monitoring.
Pour obtenir des informations détaillées sur le conteneur, utilisez docker inspect monitoring.
Lorsque vous démarrez avec |
4.3. Options de configuration supplémentaires
Les exemples présentés jusqu’à présent concernent la configuration simple des conteneurs Checkmk. Plusieurs options supplémentaires sont disponibles pour des scénarios d’application spécifiques.
HTTPS
Vous pouvez également sécuriser l’interface web de votre instance via HTTPS au sein d’un conteneur Docker. La pratique courante consiste à utiliser un proxy inverse, qui sert d’interface pour les connexions HTTP(S) entre les conteneurs de votre système et le monde extérieur. Ce proxy peut garantir que seules les connexions HTTPS sont acceptées ou transmises au conteneur Checkmk.
Si vous utilisez un proxy inverse, n'activez explicitement aucun port lors du démarrage de votre conteneur Checkmk. Toutes les connexions entrantes et sortantes seront alors gérées exclusivement via le proxy inverse.
Variables d'environnement supplémentaires
Le tableau présente toutes les variables d'environnement spécifiques à Checkmk que vous pouvez utiliser lors du démarrage du conteneur pour le configurer selon vos besoins.
Pour ce faire, spécifiez les valeurs des variables dans le fichier compose ou dans la liste des paramètres lors de l'appel de docker container run, sous la même forme que les variables d'environnement mentionnées précédemment CMK_PASSWORD et TZ.
|
Nom personnalisé de l’instance Checkmk à créer au sein du conteneur, si vous souhaitez vous écarter du nom d’instance par défaut |
|
Paramètre permettant d'utiliser Livestatus via TCP.
Si vous sélectionnez |
|
Adresse d'un serveur de relais de messagerie que vous fournissez (par exemple, |
5. Utilisation de Checkmk dans le conteneur en cours d'exécution
Une fois que tous les fichiers nécessaires ont été chargés et que le conteneur Docker a démarré, vous devriez pouvoir accéder à l'interface graphique de Checkmk via http://localhost:8080/cmk/check_mk/ ou via l'adresse du Docker node :

Vous pouvez désormais vous connecter pour la première fois et essayer Checkmk.
Pour ce faire, utilisez l'utilisateur cmkadmin et le mot de passe que vous avez choisi lors de la création du conteneur.
Si votre instance porte un nom autre que cmk, modifiez le nom dans l'URL.
Pour accéder à votre site au sein du conteneur via la ligne de commande, connectez-vous au conteneur en tant qu'utilisateur de l'instance.
Dans Checkmk, cet utilisateur porte toujours le même nom que l'instance qu'il gère.
Utilisez l'instruction suivante pour ouvrir une session Bash interactive dans le conteneur monitoring et vous connecter en tant qu'utilisateur cmk :
Vous pouvez ensuite transmettre vos instructions à l'instance.
6. Mise à jour
La procédure de mise à jour de Checkmk dans le conteneur Docker est décrite dans l'article Mises à jour et mises à niveau.
7. Désinstallation
Si vous n'avez plus besoin d'un conteneur, vous pouvez le supprimer et, si nécessaire, supprimer les volumes qui lui sont associés. Les instructions permettant d'effectuer cette opération se trouvent dans les sections suivantes.
7.1. Désinstallation à l'aide de la commande «docker compose
»
Pour supprimer un conteneur, exécutez la commande « docker compose down » (lorsque le conteneur est en cours d'exécution) ou « docker compose rm » (lorsque le conteneur est arrêté).
Si vous ajoutez l'option -v, les volumes associés sur le Docker node seront également supprimés en même temps que le conteneur Docker.
N'utilisez l'option |
7.2. Désinstallation après un démarrage avec l'option «docker container run
»
Vous pouvez arrêter un conteneur nommé « monitoring » qui a été démarré avec « docker container run » à l'aide de « docker container stop monitoring ». Vous pouvez ensuite supprimer le conteneur à l'aide de « docker rm monitoring ». Vous pouvez supprimer un volume nommé « monitoring » dont vous n'avez plus besoin après avoir supprimé le conteneur associé à l'aide de « docker volume rm monitoring ».
7.3. Suppression de l'image Checkmk
Si vous ne souhaitez plus utiliser l'image Checkmk sélectionnée, vous pouvez la supprimer à l'aide de docker rmi myimageid.
L'instruction docker images crée une liste des images existantes.
Identifiez l'image que vous souhaitez supprimer et ajoutez l'identifiant (ID) d'image correspondant à votre appel à docker rmi.
