L’auteur a choisi le Open Internet/Free Speech Fund pour recevoir un don dans le cadre du programme Write for Donations.
En tant qu’administrateur de systèmes, il est préférable de connaître l’état de votre infrastructure et vos services. Idéalement, vous voulez remarquer les disques défaillants ou les temps d’arrêt des applications avant que vos utilisateurs ne le fassent. Des outils de surveillance comme Checkmk peuvent aider les administrateurs à détecter ces problèmes et à maintenir les serveurs en bon état.
En général, les logiciels de surveillance peuvent suivre l’état du matériel, du temps de fonctionnement et des services de vos serveurs, et ils peuvent émettre des alertes en cas de problème. Dans un scénario très simple, un système de surveillance vous avertira si un service tombe en panne. Dans un scénario plus complexe, les notifications interviendraient peu après l’apparition de signes suspects, tels qu’une utilisation accrue de la mémoire ou un nombre anormal de connexions TCP.
Il existe de nombreuses solutions de surveillance offrant divers degrés de complexité et de fonctionnalités, tant gratuites que commerciales. Dans de nombreux cas, l’installation, la configuration et la gestion de ces outils sont difficiles et prennent beaucoup de temps.
Checkmk, cependant, est une solution de surveillance qui est à la fois robuste et plus simple à installer. Il s’agit d’un ensemble de logiciels autonomes qui combine Nagios (un service d’alerte populaire et open source) avec des modules complémentaires de collecte, de surveillance et de représentation graphique des données. Il est également fourni avec l’interface web de Checkmk - un outil complet qui répond à de nombreuses lacunes de Nagios. Il offre un tableau de bord convivial, un système de notification complet et un référentiel d’agents de surveillance faciles à installer pour de nombreuses distributions Linux. Sans l’interface web de Checkmk, nous devrions utiliser différentes vues pour différentes tâches et il ne serait pas possible de configurer toutes ces fonctionnalités sans avoir recours à des modifications importantes des fichiers.
Dans ce guide, nous allons configurer Checkmk sur un serveur Ubuntu 18.04 et nous allons surveiller deux hôtes distincts. Nous surveillerons le serveur Ubuntu lui-même ainsi qu’un serveur CentOS 7 séparé, mais nous pourrions utiliser la même approche pour ajouter un nombre quelconque d’hôtes supplémentaires à notre configuration de surveillance.
Pour pouvoir utiliser notre site de surveillance, nous devons d’abord installer Checkmk sur le serveur Ubuntu. Cela nous donnera tous les outils dont nous avons besoin. Checkmk fournit des fichiers officiels de paquets Ubuntu, prêts à l’emploi que nous pouvons utiliser pour installer le paquet de logiciels.
Tout d’abord, mettons à jour la liste des paquets afin d’avoir la version la plus récente des listes du référentiel :
- sudo apt update
Pour parcourir les paquets, nous pouvons aller sur le site de la liste des paquets. Ubuntu 18.04, entre autres, peut être choisi dans le menu de la page.
Maintenant, téléchargez le paquet :
- wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb
Ensuite, installez le paquet nouvellement téléchargé :
- sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb
Cette commande installera le paquet Checkmk ainsi que toutes les dépendances nécessaires, y compris le serveur web Apache qui est utilisé pour fournir un accès web à l’interface de surveillance.
Une fois l’installation terminée, nous pouvons maintenant accéder à la commande omd
. Essayez-la :
- sudo omd
Cette commande omd
donnera la sortie suivante :
OutputUsage (called as root):
omd help Show general help
. . .
General Options:
-V <version> set specific version, useful in combination with update/create
omd COMMAND -h, --help show available options of COMMAND
La commande omd
peut gérer toutes les instances de Checkmk sur notre serveur. Elle peut démarrer et arrêter tous les services de surveillance en même temps, et nous l’utiliserons pour créer notre instance Checkmk. Cependant, nous devons d’abord mettre à jour les paramètres de notre pare-feu afin d’autoriser l’accès extérieur aux ports web par défaut.
Avant de pouvoir travailler avec Checkmk, il est nécessaire d’autoriser un accès extérieur au serveur web dans la configuration du pare-feu. En supposant que vous avez suivi les étapes de configuration du pare-feu citées dans les conditions préalables, vous disposerez d’un pare-feu UFW configuré pour restreindre l’accès à votre serveur.
Au cours de l’installation, Apache s’enregistre lui-même auprès d’UFW afin de fournir un moyen facile d’activer ou de désactiver l’accès à Apache par le biais du pare-feu.
Pour autoriser l’accès à Apache, utilisez la commande suivante :
- sudo ufw allow Apache
Vérifiez maintenant les changements :
- sudo ufw status
Vous verrez qu’Apache est listé parmi les services autorisés :
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Cela nous permettra d’accéder à l’interface web de Checkmk.
Dans l’étape suivante, nous allons créer la première instance de surveillance Checkmk.
Checkmk utilise le concept d’instances ou d’installations individuelles pour isoler plusieurs copies de Checkmk sur un serveur. Dans la plupart des cas, une seule copie de Checkmk suffit et c’est ainsi que nous allons configurer le logiciel dans ce guide.
Nous devons d’abord donner un nom à notre nouvelle instance, et nous utiliserons monitoring
tout au long de ce texte. Pour créer l’instance, tapez :
- sudo omd create monitoring
L’outil omd
configurera tout automatiquement. La sortie de la commande ressemblera à ce qui suit :
OutputAdding /opt/omd/sites/monitoring/tmp to /etc/fstab.
Creating temporary filesystem /omd/sites/monitoring/tmp...OK
Restarting Apache...OK
Created new site monitoring with version 1.6.0p8.cre.
The site can be started with omd start monitoring.
The default web UI is available at http://your_ubuntu_server/monitoring/
The admin user for the web applications is cmkadmin with password: your-default-password
(It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.)
Please do a su - monitoring for administration of this site.
Dans cette sortie, l’adresse URL, le nom d’utilisateur par défaut et le mot de passe pour accéder à notre interface de surveillance sont mis en évidence. L’instance est maintenant créée, mais elle doit encore être démarrée. Pour démarrer l’instance, tapez :
- sudo omd start monitoring
Tous les outils et services nécessaires seront maintenant démarrés en même temps. À la fin, nous verrons une sortie vérifiant que tous nos services ont démarré avec succès :
OutputStarting mkeventd...OK
Starting rrdcached...OK
Starting npcd...OK
Starting nagios...OK
Starting apache...OK
Initializing Crontab...OK
L’instance est opérationnelle.
Pour accéder à l’instance Checkmk, ouvrez http://your_ubuntu_server_ip/monitoring/
dans le navigateur web. Un mot de passe vous sera demandé. Utilisez les informations d’identification par défaut imprimées au préalable à l’écran ; nous modifierons ces valeurs par défaut ultérieurement.
L’écran Checkmk s’ouvre avec un tableau de bord, qui présente tous nos services et les statuts de nos serveurs sous forme de listes, et il utilise des graphiques pratiques ressemblant à la Terre. Immédiatement après l’installation, ces graphiques sont vides, mais nous allons bientôt faire en sorte qu’ils affichent les états de nos services et de nos systèmes.
Dans la prochaine étape, nous modifierons le mot de passe par défaut pour sécuriser le site à l’aide de cette interface.
Au cours de l’installation, Checkmk génère un mot de passe aléatoire pour l’utilisateur administratif de cmkadmin
. Ce mot de passe est censé être modifié lors de l’installation, et, par conséquent, il est souvent court et peu sûr. Nous pouvons modifier cela via l’interface web.
Tout d’abord, ouvrez la page USERS depuis le menu WATO - Configuration à gauche. La liste affichera tous les utilisateurs qui ont actuellement accès au site Checkmk. Dans le cas d’une nouvelle installation, la liste ne comprendra que deux utilisateurs. Le premier, automation
, est destiné à être utilisé avec des outils automatisés ; le second est l’utilisateur cmkadmin
que nous avons utilisé pour nous connecter au site.
Cliquez sur l’icône représentant un crayon à côté de l’utilisateur cmkadmin
pour modifier ses coordonnées, y compris le mot de passe.
Mettez à jour le mot de passe, ajoutez un courriel admin et effectuez toute autre modification désirée.
Après avoir enregistré les modifications, il nous sera demandé de nous connecter à nouveau en utilisant nos nouveaux identifiants. Faites-le et revenez au tableau de bord, où il y a encore une chose que nous devons faire pour appliquer pleinement notre nouvelle configuration.
Ouvrez à nouveau la page Users dans le menu WATO - Configuration sur la gauche. Le bouton orange dans le coin supérieur gauche intitulé 1 Change nous indique que nous avons apporté quelques modifications à la configuration de Checkmk, et que nous devons les enregistrer et les activer. Cela se produira chaque fois que nous modifierons la configuration de notre système de surveillance, et pas seulement après avoir modifié les informations d’identification d’un utilisateur. Pour enregistrer et activer les changements en attente, nous devons cliquer sur ce bouton et accepter d’activer les changements énumérés à l’aide de l’option Activate affected sur l’écran suivant.
Après l’activation des changements, les données du nouvel utilisateur sont écrites dans les fichiers de configuration et seront utilisées par tous les composants du système. Checkmk se charge automatiquement de notifier les différents composants du système de surveillance, de les recharger si nécessaire et de gérer tous les fichiers de configuration nécessaires.
L’installation Checkmk est maintenant prête à être utilisée. Dans l’étape suivante, nous ajouterons le premier hôte à notre système de surveillance.
Nous sommes maintenant prêts à surveiller le premier hôte. Pour ce faire, nous allons d’abord installer check-mk-agent
sur le serveur Ubuntu. Ensuite, nous limiterons l’accès aux données de surveillance en utilisant xinetd
.
Les composants installés avec Checkmk sont responsables de la réception, du stockage et de la présentation des informations de surveillance. Ils ne fournissent pas les informations elles-mêmes.
Pour recueillir les données réelles, nous utiliserons Checkmk agent. Conçu spécifiquement pour ce travail, l’agent Checkmk est capable de surveiller tous les composants vitaux du système en une seule fois et de renvoyer ces informations à l’instance Checkmk.
Le premier hôte que nous surveillerons sera your_ubuntu_server
—le serveur sur lequel nous avons installé l’instance Checkmk elle-même.
Pour commencer, nous devons installer l’agent Checkmk. Les paquets de toutes les distributions principales, y compris Ubuntu, sont disponibles directement à partir de l’interface web. Ouvrez la page Monitoring Agents depuis le menu WATO - Configuration à gauche. Vous verrez les téléchargements d’agents disponibles avec les paquets les plus populaires sous la première section intitulée Packaged agents.
Le paquet check-mk-agent_1.6.0p8-1_all.deb
est celui adapté aux distributions basées sur Debian, y compris Ubuntu. Copiez le lien de téléchargement de ce paquet depuis le navigateur web et utilisez cette adresse pour télécharger le paquet.
- wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb
Après le téléchargement, installez le paquet :
- apt install -y ./check-mk-agent_1.6.0p8-1_all.deb
Vérifiez maintenant que l’agent a été installé avec succès :
- check_mk_agent
La commande produira un texte très long qui ressemble à du charabia mais qui regroupe toutes les informations vitales sur le système en un seul endroit.
Output<<<check_mk>>>
Version: 1.6.0p8
AgentOS: linux
. . .
["monitoring"]
<<<job>>>
<<<local>>>
C’est la sortie de cette commande que Checkmk utilise pour recueillir les données d’état des hôtes surveillés. Maintenant, nous allons restreindre l’accès aux données de surveillance avec xinetd
.
Par défaut, les données de check_mk_agent
sont servies par xinetd, un mécanisme qui produit des données sur un certain port de réseau lors de l’accès. Cela signifie que nous pouvons accéder au check_mk_agent
en utilisant telnet sur le port 6556
(le port par défaut pour Checkmk) depuis n’importe quel autre ordinateur sur Internet, à moins que la configuration de notre pare-feu ne le refuse.
Ce n’est pas une bonne politique de sécurité que de publier à quiconque des informations vitales concernant les serveurs sur l’internet. Nous devons autoriser uniquement les hôtes qui exécutent Checkmk (et qui sont sous notre supervision) à accéder à ces données, de sorte que seul notre système de surveillance puisse les collecter.
Si vous avez suivi le tutoriel de configuration initiale du serveur, y compris les étapes relatives à la mise en place d’un pare-feu, l’accès à l’agent Checkmk est bloqué par défaut. Il est toutefois recommandé d’appliquer ces restrictions d’accès directement dans la configuration du service et de ne pas compter uniquement sur le pare-feu pour le protéger.
Pour restreindre l’accès aux données de l’agent, nous devons éditer le fichier de configuration à l’adresse /etc/xinetd.d/check_mk
. Ouvrez le fichier de configuration dans votre éditeur préféré. Pour utiliser nano, tapez :
- sudo nano /etc/xinetd.d/check_mk
Localisez cette section :
. . .
# configure the IP address(es) of your Nagios server here:
#only_from = 127.0.0.1 10.0.20.1 10.0.20.2
. . .
Le paramètre only_from
est responsable de la restriction de l’accès à certaines adresses IP. Comme nous travaillons maintenant à la surveillance du même serveur que celui sur lequel tourne Checkmk, il est normal de n’autoriser que localhost
à se connecter. Décommentez et mettez à jour le paramètre de configuration :
. . .
# configure the IP address(es) of your Nagios server here:
only_from = 127.0.0.1
. . .
Enregistrez et quittez le fichier.
Le démon xinetd doit être redémarré pour que les changements soient pris en compte. Faites-le maintenant :
- sudo systemctl restart xinetd
Notre agent est maintenant opérationnel et est limité pour n’accepter que les connexions locales. Nous pouvons procéder à la configuration de la surveillance pour cet hôte en utilisant Checkmk.
Tout d’abord, pour ajouter un nouvel hôte à surveiller, nous devons nous rendre dans le menu Hosts du menu WATO - Configuration (à gauche). À partir d’ici, cliquez sur Create new host. Nous serons invités à donner quelques informations sur l’hôte.
Le Hostname est le nom familier que Checkmk utilisera pour la surveillance. Il peut s’agir d’un nom de domaine pleinement qualifié, mais ce n’est pas nécessaire. Dans cet exemple, nous nommerons l’hôte monitoring
, tout comme le nom de l’instance de Checkmk elle-même. Comme monitoring
ne peut pas être résolu à notre adresse IP, nous devons également fournir l’adresse IP de notre serveur. Et comme nous surveillons l’hôte local, l’IP sera simplement 127.0.0.1
. Cochez la case IPv4 Adresse pour activer la saisie manuelle de l’adresse IP et entrez la valeur dans le champ de texte.
La configuration par défaut de la section Data Sources repose sur Checkmk pour fournir des données de surveillance, ce qui est bien. Le paramètre Networking Segment est utilisé pour désigner les hôtes sur les réseaux distants, qui se caractérisent par une latence attendue plus élevée qui ne constitue pas un signe de dysfonctionnement. Comme il s’agit d’un hôte local, le paramètre par défaut est également correct.
Pour enregistrer l’hôte et configurer les services à surveiller, cliquez sur le bouton Save & go to services.
Checkmk fera un inventaire automatique. Cela signifie qu’il recueillera les informations fournies par l’agent et les déchiffrera pour savoir quels types de services il peut contrôler. Tous les services disponibles pour la surveillance figureront sur la liste, y compris la charge du processeur, l’utilisation de la mémoire et l’espace libre sur les disques.
Pour permettre la surveillance de tous les services découverts, nous devons cliquer sur le bouton Monitor sous la section Undecided services ( actuellement non surveillés). La page sera ainsi actualisée, mais tous les services seront désormais répertoriés sous la section Monitored services, nous informant qu’ils sont effectivement surveillés.
Comme c’était le cas lors de la modification de notre mot de passe utilisateur, ces nouveaux changements doivent être enregistrés et activés avant d’être effectifs. Appuyez sur le bouton “2 changes” et acceptez les changements en utilisant le bouton Activate affected. Après cela, la surveillance de l’hôte sera opérationnelle.
Vous êtes maintenant prêt à travailler avec les données de votre serveur. Jetez un coup d’œil au tableau de bord principal en utilisant l’élément de menu Overview/Main Overview sur la gauche.
Examinons maintenant le tableau de bord principal à l’aide de l’élément de menu Overview/Main Overview sur la gauche :
La sphère terrestre est maintenant entièrement verte et le tableau indique qu’un hôte est en place sans aucun problème. Nous pouvons voir la liste complète des hôtes, qui se compose maintenant d’un seul hôte, dans la vue Hosts/All hosts (en utilisant le menu à gauche).
Nous y verrons combien de services sont en bonne santé (indiqués en vert), combien sont défaillants et combien sont en attente de contrôle. Après avoir cliqué sur le nom d’hôte, nous pourrons voir la liste de tous les services avec leur statut complet et leur Perf-O-Meters. Le Perf-O-Mètre montre la performance d’un seul service par rapport à ce que Checkmk considère comme une bonne santé.
Tous les services qui renvoient des données graphiques affichent une icône graphique à côté de leur nom. Nous pouvons utiliser cette icône pour accéder aux graphiques associés au service. Comme la surveillance de l’hôte est récente, il n’y a presque rien sur les graphiques - mais après un certain temps, les graphiques fourniront des informations précieuses sur l’évolution des performances de notre service dans le temps.
En cas de défaillance ou de rétablissement de l’un de ces services, les informations seront affichées sur le tableau de bord. Pour les services défaillants, une erreur rouge sera affichée, et le problème sera également visible sur le graphique de la Terre.
Après la reprise, tout sera indiqué en vert comme fonctionnant correctement, mais le journal des événements sur la droite contiendra des informations sur les défaillances passées.
Maintenant que nous avons un peu exploré le tableau de bord, ajoutons un second hôte à notre instance de surveillance.
La surveillance devient vraiment utile lorsque vous avez plusieurs hôtes. Nous allons maintenant ajouter un deuxième serveur à notre instance Checkmk qui, cette fois-citourne sous CentOS 7.
Comme pour notre serveur Ubuntu, l’installation de l’agent Checkmk est nécessaire pour recueillir les données de surveillance sur CentOS. Cette fois, cependant, nous aurons besoin d’un paquet rpm
de la page Monitoring Agents de l’interface web, appelé check-mk-agent-1.6.0p8-1.noarch.rpm
.
Mais nous devons d’abord installer xinetd
, qui par défaut n’est pas disponible sur l’installation de CentOS. Xinetd
, rappelons-le, est un démon qui est chargé de rendre disponibles sur le réseau les données de surveillance fournies par check_mk_agent
.
Sur votre serveur CentOS, installez d’abord xinetd
:
- sudo yum install -y xinetd
Nous pouvons maintenant télécharger et installer le paquet de l’agent de surveillance nécessaire à notre serveur CentOS :
- sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm
Tout comme précédemment, nous pouvons vérifier que l’agent fonctionne correctement en exécutant check_mk_agent
:
- sudo check_mk_agent
La sortie sera semblable à celle du serveur Ubuntu. Nous allons maintenant restreindre l’accès à l’agent.
Cette fois, nous ne surveillerons pas un hôte local, donc xinetd
doit permettre les connexions provenant du serveur Ubuntu, où Checkmk est installé, pour recueillir les données. Pour cela, ouvrez d’abord votre fichier de configuration :
- sudo vi /etc/xinetd.d/check_mk
Vous y verrez la configuration de votre service check_mk
, en précisant comment l’agent Checkmk peut être accessible via le démon xinetd
. Trouvez les deux lignes commentées suivantes :
. . .
# configure the IP address(es) of your Nagios server here:
#only_from = 127.0.0.1 10.0.20.1 10.0.20.2
. . .
Décommentez maintenant la deuxième ligne et remplacez les adresses IP locales par your_ubuntu_server_ip
:
. . .
# configure the IP address(es) of your Nagios server here:
only_from = your_ubuntu_server_ip
. . .
Enregistrez et quittez le fichier en tapant :x
et ensuite ENTER
. Redémarrez le service xinetd
en utilisant :
- sudo systemctl restart xinetd
Nous pouvons maintenant procéder à la configuration de Checkmk pour surveiller notre hôte CentOS 7.
Pour ajouter des hôtes supplémentaires à Checkmk, nous utilisons le menu Hosts comme auparavant. Cette fois-ci, nous allons nommer l’hôte centos
, configurer son adresse IP et choisir WAN (high-latency) sous la case Networking Segment, puisque l’hôte est sur un autre réseau. Si nous laissons cette option en local, Checkmk nous avertira rapidement que l’hôte est hors service, car il s’attend à ce qu’il réponde aux requêtes des agents beaucoup plus rapidement qu’il n’est possible sur Internet.
Cliquez sur “Save & go to services”, qui affichera les services disponibles pour la surveillance sur le serveur CentOS. La liste sera très similaire à celle du premier hôte. Là encore, nous devons également cliquer sur Monitor et ensuite activer les changements à l’aide du bouton orange situé dans le coin supérieur gauche.
Après l’activation des changements, nous pouvons vérifier que l’hôte est surveillé sur la page All hosts. Allez sur cette page. Deux hôtes, monitoring
et centos
, seront maintenant visibles.
Vous surveillez maintenant un serveur Ubuntu et un serveur CentOS avec Checkmk. Il est possible de surveiller encore plus d’hôtes. En fait, il n’y a pas de limite supérieure autre que la performance du serveur, ce qui ne devrait pas poser de problème tant que vos hôtes ne se comptent pas par centaines. En outre, la procédure est la même pour tout autre hôte. Les agents Checkmk dans les paquets deb
et rpm
fonctionnent sur Ubuntu, CentOS et la majorité des autres distributions Linux.
Dans ce guide, nous avons configuré deux serveurs avec deux distributions Linux différentes : Ubuntu et CentOS. Nous avons ensuite installé et configuré Checkmk pour surveiller les deux serveurs, et nous avons exploré la puissante interface web de Checkmk.
Checkmk permet de mettre en place facilement un système de surveillance complet et polyvalent, qui regroupe tout le travail de configuration manuelle dans une interface web facile à utiliser, pleine d’options et de fonctionnalités. Avec ces outils, il est possible de surveiller plusieurs hôtes, de configurer des notifications par courriel, SMS ou push en cas de problème, de mettre en place des contrôles supplémentaires pour plus de services, de surveiller l’accessibilité et les performances, etc.
Pour en savoir plus sur Checkmk, n’oubliez pas de consulter la documentation officielle.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.