Checkmk

Checkmk est un logiciel développé en Python et C++ pour la surveillance d’infrastructures informatiques et de réseaux. Il est utilisé pour le contrôle de serveurs, applications conteneurisées ou non, réseaux, infrastructures cloud (publiques, privées, et hybrides), périphériques de stockage, bases de données et capteurs environnementaux[5].

Checkmk

Informations
Développé par tribe29 GmbH (previously Mathias Kettner GmbH)
Première version
Dernière version 1.5.0p21[1] (le 31 juillet 2019)
Version avancée 1.6.0b5 ()[2]
2.0.0i1 ()[3]
Dépôt github.com/tribe29/checkmk
Écrit en Python, C++
Système d'exploitation Debian, Red Hat Enterprise Linux, CentOS, Ubuntu et SUSE Linux Enterprise Server
Environnement Linux
Type Surveillance d’infrastructures informatiques et de réseaux
Licence GNU GPL v2 et d’autres licences open source, Checkmk Entreprise License [4]
Site web checkmk.com

Checkmk est disponible sous trois formes[6] : une édition open source (Checkmk Raw Edition – CRE)[7], une édition commerciale à destination des entreprises (« Checkmk Entreprise Edition – CEE ») et une autre édition commerciale pour les fournisseurs de services d’infogérance (MSP) (Checkmk Managed Services Edition – CME). Ces éditions de Checkmk sont disponibles pour plusieurs plateformes, en particulier différentes versions de Debian, Ubuntu, SLES et RedHat / CentOS, et aussi comme Docker Image[8]. Des équipements matériels et virtualisés de différente taille sont aussi offerts pour simplifier l’administration par une interface graphique et de proposer des solutions de haute disponibilité.

Les sondes, ou agents, utilisés par Checkmk pour collecter les données sont disponibles pour 11 plateformes, dont Windows[9].

Historique

Checkmk a été créé en 2008 en substituant un script shell à l'agent Inetd de Nagios. Il fut publié en avril 2009 sous la GPL[10]. À l’origine, il ajoutait de nouvelles extensions à un noyau Nagios[11],[12]. L’édition open source (Checkmk Raw Edition) est toujours basée sur le noyau Nagios et des extensions formant un système de surveillance open source complet[13].

Au fil des années, les éditions commerciales de Checkmk ont remplacé les composants essentiels de Nagios par des composants propres, incluant un cœur de surveillance propriétaire plus performant[14]. Cependant, la majorité du développement pour les éditions commerciales, dont les agents et les plugins, est disponible dans l’édition libre.

En plus de la surveillance d’environnements étendus et hétérogènes sur site, Checkmk supporte la surveillance des services AWS, Azure, Docker et Kubernetes depuis la version 1.5+ (1.5p12)[15].

Checkmk est développé par tribe29 GmbH[16] à Munich en Allemagne, qui jusqu’au 16 avril 2019 opérait sous le nom de « Mathias Kettner GmbH ». Avec le changement de nom de la compagnie, le nom du produit « Check_MK » a également été changé en « Checkmk ».

Tribe29 GmbH suit un modèle d’entreprise open source. L’édition libre est disponible sous différentes licences, dont principalement la GPLv2, tandis qu’une grande partie des éditions commerciales est distribuée sous la « Checkmk Enterprise License ».

Le produit

Checkmk combine trois types de surveillance d’infrastructures informatiques : la surveillance fondée sur l’état du système, la surveillance à base de données de métriques et la surveillance basée sur les événements. La surveillance fondée sur l’état du système utilise des seuils pour déterminer et enregistrer la « santé » d’un périphérique ou d’une application. La surveillance à base de données de métriques permet l’enregistrement et l’analyse graphique de séries temporelles ; un système graphique en HTML5 et une intégration avec Grafana sont également disponibles dans l’édition entreprise (CEE)[17]. Et finalement, la surveillance basée sur les événements et la journalisation offre la possibilité de filtrer les événements clés et de déclencher des actions.

Afin d’assurer une surveillance très large, Checkmk a actuellement plus de 1700 plugins sous licence GPLv2 qui sont disponibles dans chaque édition. Ces plugins font partie du produit et sont régulièrement complétés par d’autres plugins et des extensions. Il est également possible d’utiliser des plugins Nagios.

La configuration et le fonctionnement de Checkmk sont simplifiés par une entière intégration de tous les composants. Une seule et même règle peut ainsi être utilisée pour différents services et différents hôtes. Ce haut degré d’automatisation accélère le workflow de manière significative. Il est ainsi possible de découvrir automatiquement des ordinateurs hôtes et des services, de configurer automatiquement des plugins par des seuils et des règles présentes par défaut, de mettre à jour automatiquement des agents (une fonctionnalité CEE), de configurer automatiquement et de manière dynamique le logiciel ce qui permet la surveillance de services d’une durée de vie de quelques secondes seulement, tel que dans l’environnement Kubernetes (CEE v1.6), et de découvrir automatiquement des tags et étiquettes à partir de sources telles que Kubernetes, AWS et Azure (CEE v1.6).

En outre, il existe des manuels d'utilisation pour des outils de configuration et de déploiement tels qu’Ansible[18] ou Salt[19].

Checkmk est souvent utilisé dans de très larges environnements distribués où un nombre élevé de sites, comme les 300 sites de Faurecia[20]) ou les plus de 100 000 périphériques d’Edeka[21], sont surveillés. Cela est rendu possible par le micronoyau de Checkmk qui consomme beaucoup moins de ressources processeur que, par exemple, Nagios et offre donc des performances nettement supérieures avec le même matériel. De plus, les données non persistantes sont stockées en mémoire vive, ce qui améliore considérablement la rapidité d'accès[réf. nécessaire].

Composants

Cette section ne cite pas suffisamment ses sources (mai 2020). 
Pour l'améliorer, ajoutez des références de qualité et vérifiables (comment faire ?) ou le modèle {{Référence nécessaire}} sur les passages nécessitant une source.

Le noyau de surveillance (« Checkmk Microcore – CMC »)

Les éditions commerciales de Checkmk utilisent un noyau de surveillance écrit en C++ offrant des performances bien supérieures au noyau Nagios de l’édition libre. De plus, à partir de la version 1.6, il permet de surveiller de manière dynamique des objets ayant un cycle de vie court tels que les conteneurs. De plus, le CMC ne nécessite pas de redémarrage après un changement de configuration[réf. nécessaire].

Configuration et contrôle

Checkmk propose une découverte de services et une génération de paramètres automatiques. Checkmk utilise sa propre méthode pour effectuer les contrôles (checks) et ne sonde chaque hôte qu’une seule fois pour récolter les données. Les résultats du sondage sont transmis au noyau de surveillance en tant que « contrôles passifs ». Cela améliore considérablement les performances du serveur de supervision et des hôtes surveillés.

Checkmk utilise différentes méthodes pour accéder aux données. Celles-ci comprennent les agents installés sur le système cible ; les « agents spéciaux » fonctionnant sur le superviseur et communiquant avec l'API du système cible, l'API SNMP de gestion de réseau des périphériques réseau et des imprimantes ; et les protocoles HTTP et TCP pour communiquer avec des services web et l’internet. Par défaut, Checkmk interroge explicitement les données (pull) afin d’identifier les pannes système rapidement. Un hôte peut également transférer directement ses données à Checkmk ou à un hôte intermédiaire (push).

Interface données (« Livestatus »)

Livestatus est la principale interface de Checkmk. Elle propose un accès direct à toutes les données depuis les hôtes et les services surveillés. Les données sont récupérées directement en mémoire, ce qui permet un accès rapide aux informations sans surcharger le système. L'accès s'effectue grâce à un protocole simple, réalisable dans n’importe quel langage de programmation, sans bibliothèque spéciale.

Interface utilisateur en ligne (« Multisite »)

Multisite est l’interface utilisateur web de Checkmk. Elle offre une mise en page rapide et la possibilité de définir des vues et des tableaux de bord et intégrés à NagVis. De plus, elle permet une surveillance distribuée intégrant plusieurs instances de monitoring via Livestatus. Elle comprend une connexion LDAP et permet aussi l'accès à d’autres données par des services web, etc.[22]

Administration en ligne (« WATO »)

L'application de contrôle de configuration en ligne (WATO) permet à un système basé sur Checkmk d'être entièrement administrable dans le navigateur. Cela inclut la gestion des utilisateurs, des rôles, des groupes, des périodes de surveillance, etc. Des autorisations peuvent être accordées de manière granulaire en définissant de nouveaux rôles. Les rôles existants (LDAP, AD) peuvent aussi être utilisés à cet effet. WATO fonctionne sur la base de règles, de sorte que la configuration d’environnements complexes reste simple et intuitive. La découverte, la configuration, et la mise à jour automatique des agents, accélèrent encore la configuration. Une interface HTTP peut aussi être utilisée pour intégrer des CMDBs pour simplifier le travail des administrateurs.

Système d’alerte

Plusieurs canaux de notification peuvent être configurés avec des règles différentes pour chaque utilisateur. Par exemple, les e-mails peuvent être envoyés à tout moment de la journée, mais les SMS ne le sont que pour les problèmes les plus importants et pendant les heures de garde. Les notifications peuvent être définies pour toutes les équipes ou pour des équipes spécifiques, par exemple, en ne notifiant que les administrateurs responsables du stockage qu'un disque dur est en panne. Les messages en double sont regroupés afin qu'un utilisateur ne soit pas averti deux fois par le même canal. De plus, les utilisateurs peuvent configurer leurs propres notifications. Dans les environnements distribués, les alertes peuvent être gérées de manière centralisée. Pour les problèmes détectés, des actions peuvent être déclenchées automatiquement par des scripts. Checkmk comprend une intégration aux passerelles de courriels et de SMS ainsi qu'aux solutions de communication telles que Slack, Jira, PagerDuty, OpsGenie, VictorOps et ServiceNow.

Informatique décisionnelle

Le module d’informatique décisionnelle est intégré à l'interface graphique. Il regroupe l’état général des processus d’affaires et leur dépendance à l'égard des applications et des éléments d'infrastructure provenant des différents hôtes et services. Il se base sur les règles définies par l’opérateur. Il peut également être utilisé pour contrôler des applications constituées de microservices consistant en modules Kubernetes et en déploiements d’applications conteneurisées. De plus, les scénarios les plus défavorables peuvent être simulés en temps réel et l’historique des données peut être analysé pour identifier les causes de la dégradation des performances.

Console d'événements

La console d'événements intègre le traitement des messages du journal et des interruptions SNMP à l’application de contrôle. Elle est configurée par un ensemble de règles qui classent les messages selon qu’il doivent être traités ou supprimés. La console peut compter les messages, les corréler et en attendre de nouveaux, les réécrire, etc. Des entrées peuvent être regroupées (par exemple, après plusieurs échecs de connexion) pour assurer le suivi des événements. La console intègre également un démon syslog qui reçoit les messages directement sur le port 514 et un gestionnaire SNMP qui les reçoit sur le port 162.

Représentation des données de métriques

Les éditions commerciales Checkmk utilisent leur propre représentation graphique de données de métriques (également appelées séries temporelles). Cela permet d'analyser ses données sur de longs intervalles à l'aide d’éléments visuels interactifs HTML5 avec une résolution maximale d'une seconde. Les données peuvent être importées à partir d'une variété de sources et de formats (JSON, XML, SNMP, etc.) et stockées à long terme sur un autre périphérique.

Il est également possible d’exporter les données vers Graphite ou InfluxDB. Dans la version 1.5p16 de la version CEE, un plugin est disponible pour l'exportation des données directement vers Grafana à des fins de visualisation. La Checkmk Raw Edition utilise PNP4Nagios comme système graphique.

Rapports

Les rapports permettent d’établir des documents au format PDF, de manière automatique ou ad hoc et à intervalles réguliers. Ils comprennent l'analyse de la disponibilité dans laquelle l'historique des données peut être fourni en un clic sur n'importe quelle période de temps. Les calculs de disponibilité peuvent exclure les heures non surveillées, ajuster la résolution ou ignorer des intervalles courts. Outre les calculs de disponibilité, ils peuvent également inclure des informations sur la qualité de service (SLA) dans lesquels des configurations complexes peuvent être contrôlées. Les rapports ne sont disponibles que dans les versions commerciales de Checkmk.

Inventaire logiciel et inventaire matériel

L'inventaire matériel et l’inventaire logiciel peuvent être utilisés pour surveiller les changements matériels et logiciels, pour vérifier que les mises à jour de sécurité sont installées et pour mettre à jour des données statiques telles que celles de l'utilisation d’un disque dur. L’intégration d’une base de données de gestion de la configuration (CMDB) simplifie l’échange de données.

Voir aussi

Références

  1. (en) tribe29 GmbH, « Checkmk stable release 1.5.0p21 », sur Checkmk Announcement, .
  2. « https://github.com/tribe29/checkmk/releases/tag/v1.6.0b5 »
  3. « https://github.com/tribe29/checkmk/releases/tag/v2.0.0i1 », (consulté le )
  4. (en) « Checkmk EULA », tribe29 GmbH (consulté le ).
  5. (en) « Use Cases », tribe29 GmbH (consulté le ).
  6. (en) « Checkmk Editions », tribe29 GmbH (consulté le ).
  7. (en) « Open Source IT monitoring with Checkmk », tribe29 GmbH (consulté le ).
  8. (en) « Download version », tribe29 GmbH (consulté le ).
  9. (en) « Monitoring Agents », tribe29 GmbH (consulté le ).
  10. (en) « Mathias Kettner (check_mk) » [archive du ], sur Meet The Community, Nagios Enterprises, (consulté le ).
  11. (de) Götz Rieger, « Einfach mal Nagios – Netzwerk-Monitoring mit OMD und Check_MK », c’t, (consulté le ), p. 190.
  12. (de) Mathias Huber, « Nagios-Erweiterung Check_mk in Version 1.1.10 », Linux-Magazin, (consulté le ).
  13. (de) Peter Siering, « Monitoring-System Check_MK in frischer Version 1.4.0 », Heise Online, (consulté le ).
  14. (en) Mathias Kettner, « The Checkmk micro core (CMC) » (consulté le ).
  15. (en) « Checkmk community announcement 1.5 Plus(1.5.p12) », tribe29 GmbH, (consulté le ).
  16. (en) « tribe29 - Our Story », tribe29 GmbH (consulté le ).
  17. Christian Mueller, « Grafana Data Source Plugin », sur GitHub, (consulté le )
  18. (en) « Ansible integration with Checkmk », sur GitHub, (consulté le ).
  19. (en) « Salt integration with Checkmk », sur GitHub, (consulté le )
  20. (en) « Global deployment of Check_MK at Faurecia », (consulté le ).
  21. (de) « EDEKA Vortrag », (consulté le ).
  22. (de) Heike Jurzik, Marcel Arentz, « vSphere-Monitoring mit Checkmk », Linux-Magazin, (consulté le ).

Liens externes

  • Portail du logiciel
  • Portail des réseaux informatiques
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.