La surveillance de l'infrastructure informatique est complexe, mais un outil comme Checkmk facilite la tâche.

De nombreuses organisations ont ajouté des technologies cloud natives à leur pile technologique pour améliorer les performances de leurs produits. Dans le même temps, ils continuent souvent à gérer leurs propres réseaux et infrastructures sur site. Ce passage aux infrastructures hybrides doit être pris en compte dans la surveillance en raison du grand nombre de métriques générées chaque seconde pour divers composants tels que le système d'exploitation, le stockage, le serveur, les environnements cloud, etc. Ils sont tous importants pour s'assurer que les applications fonctionnent au maximum. performance.

Ces mesures sont un signal essentiel pour Les équipes DevOps pour comprendre la santé de leur infrastructure. C'est pourquoi les organisations ont besoin d'une solution de surveillance pour les aider à identifier rapidement les problèmes de production avec des métriques, des visualisations et des analyses. Checkmk est l'un des outils de surveillance d'infrastructure les plus populaires et les plus utiles. Dans cet article, je vais vous dire pourquoi Checkmk mérite sa bonne réputation et comment vous pouvez faire les premiers pas avec lui.

What is Checkmk?

Checkmk vérifie en permanence le fonctionnement de tous les aspects des environnements informatiques modernes et est particulièrement bien adapté aux infrastructures hybrides. D'une part, Checkmk est flexible et prend en charge les conteneurs, les actifs cloud et les systèmes sur site tels que les commutateurs et les serveurs. D'autre part, il est vraiment facile de démarrer et de gérer votre surveillance, car Checkmk est livré avec des alertes automatiques basées sur une grande expertise informatique et d'autres fonctionnalités intelligentes qui vous feront gagner beaucoup de temps.

Si vous souhaitez utiliser Checkmk gratuitement, vous avez deux options : premièrement, vous pouvez opter pour Checkmk Raw Edition, qui est entièrement open-source et gratuit à utiliser sans aucune limitation. Deuxièmement, il y a le Édition d'essai de Checkmk Enterprise qui possède 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 le problème ?

Checkmk peut surveiller les applications, les serveurs, les bases de données, les réseaux, les conteneurs, le stockage, etc. Il fournit une liste massive de plus de 2,000 XNUMX plug-ins de surveillance. Avec ces plugins. Checkmk peut être étendu pour surveiller des technologies spécifiques de différents fournisseurs disponibles sur le marché. Quelques plug-ins Checkmk populaires sont pour Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Avec ses plus de 2,000 XNUMX plug-ins, Checkmk s'impose comme une solution de surveillance d'infrastructure très prometteuse disponible actuellement.

De plus, pour toute solution de surveillance, il est crucial de savoir à quelle vitesse et correctement ils peuvent lire les métriques et configurer des alertes et des notifications intelligentes. La solution de Checkmk répond à tous ces critères. Grâce à sa fonction de découverte automatique, Checkmk peut 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 faire évoluer la capacité de surveillance de centaines d'hôtes à des milliers d'hôtes dans Checkmk et tirer parti de ses agents disponibles pour l'automatisation.

Install Checkmk in a Docker container

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 tirages à ce jour, ce qui indique à quel point Checkmk est populaire et largement utilisé.

checkmk dockerhub

Prenez 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 s'ouvrira 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 é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écuter 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 de connexion à l'interface Web Checkmk, imprimez 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 à https://localhost:8080/cmk/check_mk. La sortie de la commande ci-dessus vous indique que le nom d'utilisateur est cmkadmin et le mot de passe, dans mon cas, le mot de passe est ClFxBPre. Ouvrez l'adresse dans un navigateur Web et utilisez vos informations d'identification pour vous connecter.

connexion checkmk

Une fois connecté, c'est le 'Tableau de bord principal' qui apparaîtra. Il est vide car vous n'avez pas encore ajouté d'hôtes.

tableau de bord checkmk

Surveiller Docker à l'aide de Checkmk

Habituellement, vous installez l'agent Checkmk sur votre machine qui héberge vos conteneurs Docker, puis utilisez le plug-in Checkmk pour Docker pour surveiller tous les conteneurs. Ce plug-in (mk_docker.py) utilise l'API Python de Docker pour suivre les conteneurs Docker et obtenir une visibilité complète sur leur statut et leurs performances en temps réel. Vous pouvez lire plus de détails sur Surveillance Docker avec Checkmk sur le site Checkmk.

Parce que dans mon environnement Docker, il n'y a qu'un seul conteneur Docker en cours d'exécution, mon conteneur Checkmk Docker, j'utiliserai simplement l'agent Checkmk en cours d'exécution dans le conteneur Docker et n'installerai pas le Checkmk sur mon hôte Docker. L'agent est pré-installé dans le conteneur Checkmk, il me suffit donc d'ajouter mon conteneur Checkmk en tant qu'hôte.

Obtenons l'adresse IP sur laquelle le service Docker s'exécute en utilisant ifconfig sur 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.

hôtes checkmk

  • Cliquez sur "Ajouter un hôte".

checkmk ajouter un hôte

  • Fournissez maintenant le nom d'hôte et l'adresse IP et cliquez sur "Enregistrer et accéder à la configuration du service".

docker hôte checkmk

  • Une fois que vous faites cela, Checkmk démarrera automatiquement la découverte de service.

service docker checkmk

Faites défiler vers le bas pour voir les services de surveillance exécutés sous l'hôte Docker. Vous pouvez voir que les services ne sont pas surveillés actuellement. Si vous souhaitez tout surveiller, la solution la plus simple est de cliquer sur "Tout réparer". Si vous souhaitez configurer les services à surveiller, vous pouvez également le faire en détail. Clique sur le + sign si vous souhaitez surveiller un service.

checkmk docker liste des services

Une fois que vous avez sélectionné les services que vous souhaitez surveiller, ils viendront dans l'onglet "Services surveillés". Vous obtiendrez tous les détails d'état pour chaque service que vous surveillez. Si vous cliquez sur ? signe, ce service sera déplacé vers la liste des services indécis. Si vous cliquez sur le X signe, le service passera à l'onglet 'Services désactivés'.

services surveillés par checkmk

J'ai désactivé quatre services, je peux donc les voir dans l'onglet des services désactivés.

services désactivés checkmk

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

  • Cliquez sur le champ en surbrillance avec le point d'exclamation jaune (!) dans le coin supérieur droit pour voir 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

C'était donc tout à propos de Checkmk, un outil de surveillance de l'infrastructure. C'est un outil très facile à utiliser que vous devez essayer pour surveiller vos environnements de production. Je recommande d'essayer le Checkmk Édition gratuite pour commencer votre surveillance.