Comment démarrer avec Checkmk



La supervision d’une infrastructure informatique peut s’avérer complexe, mais un outil tel que Checkmk simplifie grandement cette tâche.

De nombreuses entreprises ont intégré des technologies cloud natives à leur architecture pour accroître l’efficacité de leurs produits. Simultanément, elles continuent souvent à maintenir leurs propres réseaux et infrastructures sur site. Cette transition vers des infrastructures hybrides doit être prise en compte lors de la supervision, en raison de la grande quantité de données générées chaque seconde pour divers éléments tels que les systèmes d’exploitation, le stockage, les serveurs, les environnements cloud, etc. Tous ces éléments sont importants pour garantir le fonctionnement optimal des applications.

Ces données sont essentielles pour permettre aux équipes DevOps d’évaluer la santé de leur infrastructure. C’est pourquoi les organisations ont besoin d’une solution de supervision pour les aider à identifier rapidement les problèmes de production grâce à des données, des visualisations et des analyses. Checkmk est un outil de supervision d’infrastructure très répandu et utile. Dans cet article, je vais vous expliquer pourquoi Checkmk jouit d’une si bonne réputation et comment vous pouvez commencer à l’utiliser.

Qu’est-ce que Checkmk ?

Checkmk contrôle en permanence le bon fonctionnement de tous les aspects des environnements informatiques actuels et est particulièrement adapté aux infrastructures hybrides. D’une part, Checkmk est flexible et prend en charge les conteneurs, les ressources cloud et les systèmes sur site tels que les commutateurs et les serveurs. D’autre part, il est vraiment facile de commencer et de gérer votre supervision, car Checkmk est fourni avec des alertes automatisées basées sur une vaste expertise informatique, ainsi que d’autres fonctionnalités intelligentes qui vous feront gagner beaucoup de temps.

Si vous souhaitez utiliser Checkmk gratuitement, vous avez deux possibilités : premièrement, vous pouvez choisir Checkmk Raw Edition, qui est entièrement open source et dont l’utilisation est gratuite et illimitée. Deuxièmement, il existe la version d’essai de Checkmk Enterprise, qui comprend toutes les fonctionnalités supplémentaires des éditions Checkmk Enterprise, mais après 30 jours, le nombre d’hôtes sera limité à 25.

Comment Checkmk résout-il ce problème ?

Checkmk peut surveiller les applications, les serveurs, les bases de données, les réseaux, les conteneurs, le stockage, etc. Il propose un grand nombre de plus de 2 000 plugins de supervision. Grâce à ces plugins, Checkmk peut être étendu pour surveiller des technologies spécifiques de différents fournisseurs disponibles sur le marché. Parmi les plugins Checkmk populaires, on retrouve ceux pour Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Avec plus de 2 000 plugins, Checkmk s’impose comme une solution de supervision d’infrastructure très prometteuse disponible actuellement.

De plus, pour toute solution de supervision, il est essentiel de savoir à quelle vitesse et avec quelle précision elle peut lire les données et configurer des alertes et des notifications intelligentes. La solution de Checkmk répond à tous ces critères. Grâce à sa fonctionnalité de découverte automatique, Checkmk est capable d’identifier plus de 90 % des services et des appareils. Aujourd’hui, la plupart des entreprises ont besoin d’évolutivité et d’automatisation. Vous pouvez facilement adapter la capacité de supervision de centaines à des milliers d’hôtes dans Checkmk et utiliser ses agents disponibles pour l’automatisation.

Installation de Checkmk dans un conteneur Docker

Dans cet article, je vais installer Checkmk Raw Edition dans un conteneur Docker sur un serveur Linux fonctionnant sous Ubuntu 20.04. Depuis Dockerhub, vous pouvez télécharger le Conteneur Checkmk Docker. Il compte près de 5 millions de téléchargements à ce jour, ce qui témoigne de la popularité et de l’utilisation répandue de Checkmk.

Récupérez l’image Docker avec la dernière version de Checkmk et exécutez-la dans un conteneur à l’aide de la commande « docker container run ».

docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest

Le nom du conteneur sera ‘monitoring’, le serveur web écoutera le port 5000 et sera accessible sur le port 8080 du nœud. Le conteneur utilisera le système de fichiers temporaire et le fuseau horaire local.

[email protected]:~$ sudo docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v/omd/sites --name monitoring -v/etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest
Unable to find image 'checkmk/check-mk-raw:2.0.0-latest' locally
2.0.0-latest: Pulling from checkmk/check-mk-raw
33847f680f63: Pull complete
474905f2790b: Pull complete
1804f0e63047: Pull complete
f36fe6334464: Pull complete
03c68dfa69cf: Pull complete
b60cfdb78e96: Pull complete
Digest: sha256:7788fa2e31c7270be201d75285c13ccc7a74f67f991872ea63ba0cfa6708cac6
Status: Downloaded newer image for checkmk/check-mk-raw:2.0.0-latest
9729e323a840a08b0e758cfa9e6dbf76ba5dab4b2ecc4eea5174b8ee1a5cfbcf

Vous pouvez vérifier si l’image Docker a bien été téléchargée en exécutant la commande « docker images ».

[email protected]:~$ sudo docker images
REPOSITORY              TAG            IMAGE ID       CREATED        SIZE
bitnami/node-exporter   latest         ba0f519ca49b   34 hours ago   104MB
checkmk/check-mk-raw    2.0.0-latest   097319702432   13 days ago    1.03GB
hello-world             latest         feb5d9fea6a5   7 weeks ago    13.3kB

Exécutez la commande « docker ps » pour voir si le conteneur Checkmk est en cours d’exécution.

[email protected]:~$ sudo docker ps
CONTAINER ID   IMAGE                               COMMAND                  CREATED              STATUS                             PORTS                                                 NAMES
9729e323a840   checkmk/check-mk-raw:2.0.0-latest   "/docker-entrypoint.…"   About a minute ago   Up 59 seconds (health: starting)   6557/tcp, 0.0.0.0:8080->5000/tcp, :::8080->5000/tcp   monitoring
3d3a95ed3c25   bitnami/node-exporter:latest        "/opt/bitnami/node-e…"   25 hours ago         Up 25 hours                        9100/tcp                                              node-exporter

Pour obtenir les informations d’identification pour l’interface Web de Checkmk, affichez le journal du conteneur Checkmk.

[email protected]:~$ sudo docker container logs 9729e323a840
### CREATING SITE 'cmk'
Adding /opt/omd/sites/cmk/tmp to /etc/fstab.
Going to set TMPFS to off.
Temporary filesystem already mounted
Updating core configuration...
Generating configuration for core (type nagios)...Precompiling host checks...OK
OK
Executing post-create script "01_create-sample-config.py"...OK
Created new site cmk with version 2.0.0p15.cre.

  The site can be started with omd start cmk.
  The default web UI is available at http://9729e323a840/cmk/

  The admin user for the web applications is cmkadmin with password: ClFxBPre
  For command line administration of the site, log in with 'omd su cmk'.
  After logging in, you can change the password for cmkadmin with 'htpasswd etc/htpasswd cmkadmin'.

### STARTING XINETD
[ ok ] Starting internet superserver: xinetd.
### STARTING SITE
Temporary filesystem already mounted
Starting mkeventd...OK
Starting rrdcached...OK
Starting npcd...OK
Starting nagios...OK
Starting apache...OK
Starting redis...OK
Initializing Crontab...OK
### STARTING CRON
### CONTAINER STARTED

Le conteneur Checkmk Docker s’exécutera par défaut sur https://localhost:8080/cmk/check_mk. Le résultat de la commande ci-dessus indique que le nom d’utilisateur est cmkadmin et le mot de passe, dans mon cas, est ClFxBPre. Ouvrez l’adresse dans un navigateur Web et utilisez vos identifiants pour vous connecter.

Une fois connecté, le ‘Tableau de bord principal’ s’affichera. Il est vide car aucun hôte n’a encore été ajouté.

Surveillance de Docker à l’aide de Checkmk

En général, vous installez l’agent Checkmk sur votre machine hébergeant vos conteneurs Docker, puis utilisez le plugin Checkmk pour Docker pour surveiller tous les conteneurs. Ce plugin (mk_docker.py) utilise l’API Python de Docker pour suivre les conteneurs Docker et obtenir une visibilité complète de leur statut et de leurs performances en temps réel. Vous trouverez plus d’informations sur la surveillance Docker avec Checkmk sur le site Checkmk.

Comme dans mon environnement Docker, il n’y a qu’un seul conteneur Docker en cours d’exécution, mon conteneur Checkmk Docker, je vais simplement utiliser l’agent Checkmk qui s’exécute dans le conteneur Docker et ne vais pas installer Checkmk sur mon hôte Docker. L’agent est préinstallé dans le conteneur Checkmk, je n’ai donc qu’à ajouter mon conteneur Checkmk en tant qu’hôte.

Obtenons l’adresse IP sur laquelle le service Docker s’exécute en utilisant la commande « ifconfig » dans le terminal.

[email protected]:~$ ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:59ff:fe8a:8ba8  prefixlen 64  scopeid 0x20<link>
        ether 02:42:59:8a:8b:a8  txqueuelen 0  (Ethernet)
        RX packets 5559  bytes 7230215 (7.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4164  bytes 614703 (614.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.108  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::144a:4682:35e7:bb2  prefixlen 64  scopeid 0x20<link>
        ether 08:00:27:91:82:82  txqueuelen 1000  (Ethernet)
        RX packets 699491  bytes 1044235622 (1.0 GB)
        RX errors 0  dropped 7  overruns 0  frame 0
        TX packets 101260  bytes 7555470 (7.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 20655  bytes 8446042 (8.4 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20655  bytes 8446042 (8.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

veth44ba5ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::145f:1fff:fee9:a7b0  prefixlen 64  scopeid 0x20<link>
        ether 16:5f:1f:e9:a7:b0  txqueuelen 0  (Ethernet)
        RX packets 5559  bytes 7308041 (7.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4173  bytes 616263 (616.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vetha82ee43: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::585c:6fff:fe0a:a79b  prefixlen 64  scopeid 0x20<link>
        ether 5a:5c:6f:0a:a7:9b  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 92  bytes 9799 (9.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Dans mon cas, le service Docker s’exécute sur 172.17.0.1. L’étape suivante consiste à ajouter le service Docker en tant qu’hôte dans Checkmk afin qu’il puisse être surveillé.

  • Accédez à Checkmk et cliquez sur Configuration -> Hôtes.

  • Fournissez maintenant le nom d’hôte et l’adresse IP, puis cliquez sur « Enregistrer et accéder à la configuration du service ».

  • Une fois cette action effectuée, Checkmk lancera automatiquement la découverte de service.

Faites défiler vers le bas pour afficher les services de surveillance qui s’exécutent sous l’hôte Docker. Vous constaterez que les services ne sont pas surveillés actuellement. Si vous souhaitez tout surveiller, le plus simple est de cliquer sur « Tout réparer ». Si vous souhaitez configurer les services à surveiller, vous pouvez également le faire en détail. Cliquez sur le signe « + » si vous voulez surveiller un service.

Une fois les services que vous souhaitez surveiller sélectionnés, ils apparaitront dans l’onglet « Services surveillés ». Vous obtiendrez tous les détails d’état pour chaque service que vous surveillez. Si vous cliquez sur le signe « ? », le service sera déplacé vers la liste des services indécis. Si vous cliquez sur le signe « X », le service sera déplacé vers l’onglet ‘Services désactivés’.

J’ai désactivé quatre services, ils sont donc visibles dans l’onglet des services désactivés.

Lorsque vous avez terminé d’ajouter les services, vous devez activer les modifications avant qu’elles ne soient prises en compte en production.

  • Cliquez sur le champ mis en évidence par un point d’exclamation jaune (!) dans le coin supérieur droit pour consulter les modifications en attente.
  • Cliquez sur « Activer sur les sites sélectionnés ».

Vous avez surveillé avec succès les services Docker à l’aide de Checkmk !

Conclusion

Voilà, c’est tout ce que vous devez savoir sur Checkmk, un outil de surveillance d’infrastructure. Il s’agit d’un outil très facile à utiliser que vous devriez essayer pour surveiller vos environnements de production. Je vous recommande d’essayer l’édition gratuite de Checkmk pour commencer votre supervision.