Checkmk
to checkmk.com
Important

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. Qu'est-ce que le SNMP ?

1.1. Utilisation du SNMP à la place d'un agent Checkmk

Les routeurs, commutateurs, pare-feu, imprimantes, appliances, onduleurs, capteurs matériels et de nombreux autres appareils ne permettent pas l’installation d’un agent Checkmk. Ils disposent toutefois déjà d’une interface de supervision intégrée fournie par leur fabricant : un agent SNMP. Cet agent est accessible via le protocole SNMP (Simple Network Management Protocol). Checkmk utilise le SNMP pour surveiller ces appareils. L'avantage pour vous est que la configuration de la supervision est très simple.

Il existe également des agents SNMP pour Windows et Linux, mais il n’est pas recommandé de les utiliser à la place de l’agent Checkmk. Le protocole SNMP n’est pas très performant ; son utilisation pour la supervision implique donc généralement que le serveur Checkmk ait besoin de plus de ressources CPU et de mémoire par ordinateur hôte que lorsqu’il fonctionne avec son propre agent. De plus, les données fournies via SNMP sont incomplètes. Dans certains cas, cependant, la supervision via SNMP en complément de l’agent Checkmk peut s’avérer utile. Consultez le chapitre consacré au SNMP et à l’agent Checkmk pour en savoir plus sur ce thème.

Toutefois, s’il n’existe pas de plugin d’agent Checkmk pour la supervision d’un composant matériel ou logiciel particulier (par exemple, un contrôleur RAID), mais que ce composant dispose d’une interface SNMP, vous pouvez bien sûr collecter des données de supervision supplémentaires via SNMP. Dans ce cas, assurez-vous que les intervalles de requête sont suffisamment longs.

La supervision des périphériques SNMP avec Checkmk est très simple. Si vous souhaitez simplement vous lancer rapidement avec SNMP, vous devrez probablement lire la brève section consacrée à SNMP dans le guide du débutant. Cet article, en revanche, aborde le sujet de manière beaucoup plus approfondie et vous présente tous les détails ainsi que des scénarios spécifiques relatifs à la supervision SNMP avec Checkmk.

1.2. Versions SNMP

Le protocole SNMP est disponible en différentes versions. Ces protocoles sont tous incompatibles entre eux ; le système de supervision et le périphérique surveillé doivent donc toujours utiliser la même version du protocole. Checkmk prend en charge les versions v1, v2c et v3. Dans la pratique, on estime que 99 % des installations utilisent la version v2c. Voici un aperçu de toutes les versions pertinentes de SNMP :

Version Caractéristiques Checkmk Description et application pratique

v1

oui

À utiliser uniquement sur des appareils très anciens (par exemple, de 15 ans ou plus) qui ne prennent pas en charge la version v2c, ou dont la prise en charge de la version v2c est défectueuse.

v2c

Requêtes groupées,
compteur 64 bits

oui

Il s'agit de la norme en vigueur. v2c est une variante « allégée » de v2 et le « c » signifie ici « communauté », qui joue le rôle d'un mot de passe dans SNMP. Les compteurs 64 bits sont indispensables pour la supervision des ports du switch à 1 Gbit/s et plus. Les requêtes groupées accélèrent la supervision jusqu'à un facteur 10.

v2

Sécurité

non

La version 2 offre des options de sécurité encore meilleures en plus des fonctionnalités de v2c. La version 2 du SNMP n'est pas utilisée dans la pratique ; par conséquent, Checkmk ne prend pas en charge cette version du protocole. Si vous avez besoin de sécurité, utilisez plutôt la version 3 .
Attention : comme la « véritable » version 2 n'a aucune pertinence, de nombreux masques dans Checkmk font simplement référence à v2, mais désignent en réalité toujours v2c.

v3

Sécurité,
Contexte

oui

La version 3 est utilisée pour le chiffrement du trafic SNMP. Avec v2c et v1, celui-ci s'effectue en texte clair, y compris dans la communauté. En pratique, la version 3 est plutôt moins courante, car cette version nécessite une puissance de calcul nettement supérieure, et le coût de la configuration est également nettement plus élevé qu’avec la v2c. Les contextes constituent un concept selon lequel différentes informations sont visibles dans la même zone de la structure de données SNMP (OID), en fonction de l’ID de contexte. Cela serait utilisé, par exemple, pour le partitionnement des commutateurs Fibre Channel.

Tip

SNMPv3 ne s’applique — à condition que vous ayez activé la règle appropriée — qu’aux ordinateurs hôtes dont la configuration contient des données d’accès de type SNMPv3.
SNMPv2c ne s’applique qu’aux ordinateurs hôtes pour lesquels le jeu de règles «Enable SNMPv2c for hosts » a été explicitement activé.
SNMPv1 s’applique toujours automatiquement à tous les autres ordinateurs hôtes.

1.3. Traps SNMP

Checkmk utilise des requêtes actives pour la supervision SNMP – une méthode de type « pull ». Checkmk envoie un paquet UDP (port 161) contenant une requête SNMP à l’appareil, lui demandant de fournir des données spécifiques. L’appareil répond alors par un paquet UDP contenant la réponse (ou un message d’erreur).

Le protocole SNMP comporte un deuxième processus : les traps SNMP. Il s'agit de messages push spontanés envoyés par les périphériques à des adresses configurées via UDP (port 162) en mode Push. Les traps présentent de nombreux inconvénients par rapport aux requêtes actives, ce qui explique pourquoi ils ne revêtent pas une grande importance pour la supervision. Voici quelques-uns de ces inconvénients :

  • Les traps ne sont pas fiables. Les paquets UDP peuvent être perdus. Il n'y a pas d'accusé de réception.

  • La plupart du temps, seuls des messages d'erreur sont envoyés, mais aucun message de récupération. L'état actuel de la supervision n'est donc pas clair.

  • Si des milliers de commutateurs envoient simultanément des traps (par exemple, si un service en amont important n'est pas disponible pour eux), le récepteur de traps ne sera pas en mesure de les handle et cédera sous la charge. La supervision sera alors surchargée au moment où vous en avez le plus besoin.

  • Lors de la modification de l'adresse IP du récepteur de traps, tous les appareils doivent être reconfigurés.

  • Les traps sont difficiles à tester. Peu de périphériques disposent même d’une fonction permettant d’envoyer un trap de test générique – sans parler de tester de véritables messages d’erreur. Il est donc difficile de faire une prévision sur le fait que le trap important sera traité correctement lors de sa première invocation, plusieurs mois ou années plus tard.

Toutefois, si vous souhaitez ou devez travailler avec des traps, l'Event Console offre une solution. Celle-ci peut recevoir des traps et générer des événements à partir de ceux-ci.

2. Configuration du protocole SNMP dans Checkmk

2.1. Préparation d'un périphérique

La première étape consiste à préparer le périphérique. Chaque périphérique SNMP dispose de son propre masque de configuration quelque part dans ses paramètres. Effectuez les réglages suivants dans ce masque de configuration :

  1. Accédez à la configuration des requêtes actives (SNMP GET). (Ne confondez pas cela avec les traps SNMP — la terminologie utilisée dans les dialogues de configuration peut prêter à confusion).

  2. Activez SNMP pour les requêtes de lecture.

  3. Saisissez les adresses de vos serveurs Checkmk en tant qu'adresses IP autorisées. Il peut également être utile d'indiquer ici une instance de test Checkmk. Important : si vous disposez de plusieurs serveurs Checkmk redondants, n’oubliez pas de spécifier également la ou les adresses IP utilisées après un failover. Dans le cas particulier de l’appliance Checkmk, celle-ci utilise l’adresse IP du nœud actif comme adresse IP source pour les connexions sortantes — et non l’adresse IP du service. Dans un environnement distribué, l’adresse IP de l’instance distante à partir de laquelle le dispositif est supervisé est essentielle.

  4. Attribuez une communauté si les versions de protocole v1 et v2c doivent être utilisées.

La communauté est une sorte de mot de passe, à l’exception que l’utilisateur n’a pas de nom pour le SNMP. La convention veut que la communauté soit public. C’est la valeur par défaut pour de nombreux appareils — et également pour Checkmk. Bien sûr, vous pouvez faire valoir que cela n’est pas sécurisé et qu’il faudrait spécifier une autre communauté. Cela est certes judicieux, mais vous devez savoir que le SNMP transmet la communauté en texte clair (avec une exception pour la version 3 du SNMP). Quiconque est en mesure d’intercepter les paquets peut donc très facilement identifier la communauté. D’autre part, votre accès est limité à la lecture seule, et la plupart des informations pouvant être récupérées via le SNMP ne sont pas très critiques.

De plus, l’utilisation de communautés différentes par appareil est très fastidieuse à gérer. En effet, celles-ci doivent non seulement être gérées au niveau des appareils, mais aussi au niveau du système de supervision. C’est pourquoi, dans la pratique, les utilisateurs utilisent généralement la même communauté partout — ou du moins partout au sein d’une région, d’un service, d’un centre de données, etc.

Si vous souhaitez renforcer la sécurité même sans SNMP version 3, il est judicieux d'étendre le concept de réseau de manière à placer le trafic des services de gestion, et donc également le SNMP, dans un VLAN de gestion distinct et à sécuriser cet accès à l'aide du pare-feu.

2.2. Ajouter un appareil dans Checkmk

Ajoutez les périphériques surveillés en tant qu’ordinateurs hôtes dans Checkmk de la manière habituelle. Si vous avez choisi votre structure de dossiers de manière à ce qu’un seul dossier contienne les périphériques SNMP, vous pouvez effectuer les autres réglages directement dans ce dossier. Cela facilite l’ajout ultérieur d’ordinateurs hôtes supplémentaires et permet également d’éviter les erreurs.

Adding a host to monitoring via SNMP.

Dans les propriétés de l'ordinateur hôte (ou du dossier), dans la case « Monitoring agents », définissez « Checkmk agent / API integrations » sur « No API integrations, no Checkmk agent ».

Dans la même case de dialogue, activez également l'option « SNMP » et sélectionnez « SNMPv2 or v3 » comme protocole SNMP. Le choix de la version 1 du protocole n'est qu'une solution de secours pour les appareils très anciens. Vous ne devriez l'utiliser que si vous savez que la version 2 n'est vraiment pas prise en charge, ou lorsque l'implémentation pour l'appareil est défectueuse (en pratique, uniquement dans des cas isolés). Surtout, la version 1 du protocole SNMP est très lente car elle ne prend pas en charge les accès en masse. Cette différence est très importante.

Le troisième et dernier paramètre s’appelle « SNMP credentials ». Ici encore, il est nécessaire de choisir la version du protocole, car les versions v2c et v3 diffèrent sur ce point. Nous aborderons la version 3 ci-dessous. Si vos exigences en matière de sécurité ne sont pas très élevées, la version v2c vous conviendra parfaitement — ou vous pouvez placer la communication SNMP dans un VLAN de gestion et ainsi la sécuriser. SNMPv2c nécessite la saisie de la communauté, comme indiqué ci-dessus.

Il existe une autre façon de configurer les identifiants SNMP si vous ne pouvez pas les faire passer facilement via votre structure de dossiers : le jeu de règles « Setup > Agents > SNMP rules > SNMP credentials of monitored hosts ». Cela vous permettra d’attribuer les identifiants en fonction des balises de l’hôte, des étiquettes et d’autres propriétés similaires. Le principe est qu’une communauté définie directement au niveau de l’hôte ou du dossier a toujours la priorité sur les règles.

Supervision via SNMP et l'agent Checkmk

On se demande parfois s’il ne serait pas possible, voire utile, de surveiller Linux ou Windows à l’aide de SNMP plutôt qu’avec l’agent Checkmk. La réponse est très simple : possible oui, utile non. Pourquoi ?

  • Les données de supervision de l'agent SNMP sont très limitées. Vous avez donc de toute façon besoin de l'agent Checkmk pour une supervision à peu près utile.

  • L'agent SNMP ne fournit aucune donnée significative que l'agent Checkmk ne fournirait pas.

  • L'agent SNMP est plus fastidieux à configurer.

  • Enfin, le protocole SNMP nécessite nettement plus de ressources CPU et réseau que la supervision normale avec Checkmk.

Il existe toutefois quelques situations où une supervision via SNMP en complément de l’agent Checkmk peut s’avérer utile. Cela peut alors concerner aussi bien l’agent Checkmk pour Linux que celui pour Windows. Un exemple typique est celui d’un composant logiciel ou matériel (par exemple, un contrôleur RAID) pour lequel un outil du fabricant du serveur est installé et ne fournit des données de supervision que via SNMP, comme c’est le cas avec Fujitsu ServerView, par exemple. Vous pouvez alors bien sûr réaliser la collecte de données de supervision supplémentaires via SNMP. Dans ce cas, assurez-vous que les intervalles de requête sont suffisamment longs. Sous Windows, il peut également arriver qu’une requête via PowerShell ne soit pas possible — en raison de la version de Windows utilisée ou parce qu’il n’existe pas de Cmdlets pour l’application.

Dans ce cas, si vous souhaitez superviser l’ordinateur hôte Linux ou Windows via l’agent Checkmk et SNMP, procédez comme suit : Dans les propriétés de l’ordinateur hôte, dans le menu « Setup », dans la case « Monitoring agents », définissez l’option « Checkmk agent / API integrations » sur une valeur avec l’agent Checkmk (API integrations if configured, else Checkmk agent ou Configured API integrations and Checkmk agent). Dans la même case, activez l’option « SNMP » et définissez la valeur sur SNMPv2 or v3 ou SNMP v1, comme décrit ci-dessus :

Include a host in monitoring via Checkmk agent and SNMP.

Les services disponibles à la fois via SNMP et l'agent Checkmk (par exemple, la charge de travail du processeur, les systèmes de fichiers, les cartes réseau) sont alors automatiquement récupérés depuis l'agent Checkmk et non via SNMP.

2.3. Diagnostics

Une fois les réglages terminés, vous pouvez faire un petit détour par la page de diagnostics. Pour ce faire, enregistrez à l'aide du bouton de la barre d'action «Save & go to connection test».

Voici un exemple de diagnostic pour un commutateur. Différentes versions du protocole SNMP sont testées simultanément, à savoir :

  • SNMPv1

  • SNMPv2c

  • SNMPv2c sans requêtes groupées

  • SNMPv3

Un appareil moderne standard devrait répondre aux quatre variantes avec les mêmes données — toutefois, cela peut être limité en fonction de la configuration. Le résultat se présentera comme suit :

Output of SNMPv2c diagnostics.

Les quatre informations fournies sont décrites ci-dessous :

sysDescr

La description de l'appareil telle qu'elle est codée en dur dans le micrologiciel de l'appareil par le fabricant. Ce texte est très important pour Checkmk en vue de la reconnaissance automatique du service.

sysContact

Ce champ sert à indiquer une personne de contact et est défini par vous dans la configuration de l'appareil.

sysName

Voici le nom de domaine de l'appareil. Ce champ est également configuré sur l'appareil. Pour la supervision proprement dite, le nom ne joue aucun rôle supplémentaire et n'est affiché qu'à titre d'information. Il est toutefois judicieux et utile que le nom de domaine indiqué ici corresponde au nom de domaine dans Checkmk.

sysLocation

Il s'agit d'un champ de saisie libre — à titre purement informatif — dans lequel vous pouvez indiquer l'emplacement de l'appareil.

2.4. La configuration du service

Particularités des périphériques SNMP

Après avoir enregistré les propriétés de l’hôte (et, éventuellement, les diagnostics), l’étape suivante consiste généralement à configurer les services. Cette opération présente certaines particularités, car en interne, la reconnaissance du service s’effectue de manière très différente sur les périphériques SNMP par rapport aux ordinateurs hôtes surveillés à l’aide de l’agent Checkmk. Checkmk peut simplement examiner la sortie de l’agent et trouver les éléments d’intérêt à l’aide des plugins de supervision individuels. Avec SNMP, un peu plus de travail est nécessaire. Bien que Checkmk puisse effectuer une détection et générer une sortie complète de toutes les données SNMP (SNMP walk), puis y rechercher les informations pertinentes, il existe des périphériques SNMP pour lesquels une seule détection prendrait plusieurs heures !

Checkmk adopte toutefois une approche plus intelligente. Dans un premier temps, il ne récupère que les deux tout premiers enregistrements (OID) de l’appareil : l’sysDescr et l’sysObjectID. Par la suite, si nécessaire, d’autres requêtes sont lancées. En fonction des résultats, chacun des quelque 1 000 plugins de supervision SNMP fournis détermine si le périphérique prend effectivement en charge ce plugin. Checkmk appelle cette phase « analyse SNMP » ; à l’issue de celle-ci, le logiciel génère une liste de plugins de supervision qui servent de candidats pour la reconnaissance effective du service.

Dans un deuxième temps, la détection proprement dite s’effectue. Les plugins identifiés récupèrent les données exactes dont ils ont besoin à l’aide de requêtes SNMP locales, et utilisent ces données pour déterminer les services à surveiller. Les données récupérées sont précisément celles qui seront ensuite récupérées régulièrement à des fins de supervision.

Pour les appareils situés sur un réseau local (LAN), l’ensemble du processus ne prend généralement pas beaucoup de temps — il s’agirait d’une exception si cela durait plus de quelques secondes. Si vous effectuez la supervision de ces appareils via des liaisons WAN à forte latence, l’analyse complète peut prendre plusieurs minutes. Une analyse prend également plus de temps pour les commutateurs dotés de centaines de ports, bien sûr. Il serait très peu pratique de devoir attendre aussi longtemps à chaque fois que vous ouvrez la page des services.

C'est pourquoi la configuration ignore généralement l'analyse et effectue la détection uniquement à l'aide des plugins de supervision déjà utilisés sur l'ordinateur hôte. Les parcours SNMP sont alors déjà disponibles sous forme de fichiers de cache via la supervision normale, et la détection ne prend pas beaucoup de temps. Cela vous permettra de trouver de nouveaux éléments à partir de plugins existants (par exemple, de nouveaux ports du switch, disques durs, capteurs, VPN, etc.), mais pas de découvrir des plugins entièrement nouveaux.

Le bouton «Full service scan» force une analyse SNMP et récupère des données récentes via SNMP. De ce fait, les services provenant de plugins entièrement nouveaux sont également détectés. Il peut être nécessaire d'attendre pour les appareils à réponse lente.

Services standard

Quel que soit le périphérique SNMP que vous supervisez, les trois services suivants doivent au minimum apparaître dans la configuration :

Display of the three standard services that every SNMP device should have.

Le premier service est une vérification qui surveille les ports réseau. L’appareil doit en posséder au moins un et celui-ci doit être actif, sinon SNMP ne fonctionnerait pas. En général, Checkmk est préréglé de manière à inclure dans la supervision tous les ports actifs au moment de la reconnaissance du service (état opérationnel « up »). Vous pouvez modifier ce comportement à l’aide du jeu de règles «Setup > Services > Service discovery rules > Network interface and switch port discovery ».

À ce propos, vous trouverez dans le Guide du débutant un chapitre consacré aux bonnes pratiques de configuration des ports du switch.

Le deuxième est le service « SNMP Info », qui affiche les quatre mêmes informations que celles que vous avez vues dans le diagnostic. Ce service a une fonction purement informative et est toujours OK.

Enfin, il y a le service « Uptime », qui vous indique quand le périphérique a été redémarré pour la dernière fois. Ce service est toujours désactivé (OK) par défaut, mais vous pouvez définir des valeurs seuils pour la durée de fonctionnement.

3. Lorsque les périphériques posent des problèmes

3.1. Une implémentation SNMP défectueuse

En réalité, il semble que toutes les erreurs imaginables pouvant théoriquement être commises lors de la mise en œuvre du SNMP aient déjà été commises par un fabricant ou un autre à un moment ou à un autre. Il existe donc des appareils avec lesquels le SNMP fonctionne raisonnablement bien, mais certaines parties du protocole ne fonctionnent pas ou ont été mal implémentées.

Si les problèmes surviennent avec les éditions commerciales, cela peut s’expliquer en partie par le fait que l’implémentation SNMP inline, plus performante et activée par défaut, repose davantage sur le respect des normes que l’option « snmpget ». Si les appareils ne répondent pas du tout ou de manière instable, il est parfois utile de désactiver le SNMP inline pour les appareils concernés et d’activer ainsi l’option « snmpget », légèrement plus robuste mais nettement plus lente.

Pour les tests en ligne de commande, la commande cmk dispose, pour certaines options, de l'option supplémentaire --snmp-backend, qui accepte inline (utilisation du SNMP inline), classic (utilisation de l'snmpget) ou stored-walk (utilisation d'un SNMP walk enregistré) comme paramètres. Si le test en ligne de commande a réussi, vous pouvez utiliser le jeu de règles Hosts not using inline SNMP pour spécifier les ordinateurs hôtes qui ne doivent pas utiliser le SNMP inline de manière permanente.

Aucune réponse à une requête adressée àsysDescr

Une erreur possible survient lorsque les agents SNMP ne répondent pas à la requête d’informations standard — par exemple, aucune réponse à sysDescr. Ces périphériques sont pratiquement hors service dans le cadre d’un diagnostic, et ils ne fourniront aucun résultat lors de la reconnaissance du service si vous ne les aidez pas à l’aide d’une configuration spéciale. Pour ce faire, pour les ordinateurs hôtes concernés, créez une règle sous Setup > Agents > SNMP rules > Hosts without system description OID avec l’option Positive match (Add matching hosts to the set). Checkmk part alors simplement du principe que tout va bien et ignore le test avec l’option « sysDescr ». Bien qu’aucun plugin de supervision n’attendant des éléments spécifiques dans ce texte ne soit détecté, cela n’a en pratique aucune importance, car les plugins concernés sont conçus pour s’adapter à une telle condition.

SNMPv2c fonctionne, mais les requêtes groupées échouent

Certains appareils prennent en charge la version v2c (et le signaleront dans les diagnostics), mais l’implémentation de l’instruction GetBulk fait défaut dans le protocole. Checkmk utilise cette instruction pour obtenir autant d’informations que possible en une seule requête, ce qui est très important pour les performances.

Avec un tel ordinateur hôte, certaines vérifications SNMP simples fonctionneront — telles que « SNMP Info » ou « SNMP Uptime » — mais d’autres services feront défaut — en particulier les interfaces réseau qui doivent être présentes sur chaque périphérique.

Si vous disposez effectivement d’un ordinateur hôte dans lequel c’est le cas, vous pouvez l’exécuter avec v2c, mais sans requêtes groupées. Configurez un tel ordinateur hôte comme suit :

  1. Définissez la version SNMP pour les propriétés de l'ordinateur hôte sur SNMPv1.

  2. Dans le jeu de règles « Setup > Agents > SNMP rules > Legacy SNMP devices using SNMPv2c », créez une règle pour l'ordinateur hôte et définissez la valeur généralement sur « Positive match (Add matching hosts to the set) ».

Cela oblige l’ordinateur hôte à utiliser le protocole SNMPv2c — bien que la version 1 ait été définie — mais sans exploration en masse. Par ailleurs, nous ne recommandons pas l’utilisation de SNMPv1 — même si celui-ci est pris en charge — car il ne prend pas en charge les compteurs 64 bits. Cela peut entraîner des données de mesure manquantes ou erronées pour les ports réseau soumis à un trafic intense.

Périphériques qui répondent très lentement

Il existe certains périphériques SNMP avec lesquels certaines requêtes SNMP prennent beaucoup de temps. Cela est en partie dû à des implémentations incorrectes. Dans ce cas, il peut parfois être utile de revenir à SNMPv1 — qui est généralement beaucoup plus lent, mais peut parfois s’avérer plus rapide qu’un SNMPv2c défaillant. Avant d’essayer cela, vous devriez toutefois vérifier si le fabricant propose une mise à jour du micrologiciel qui résout le problème.

Une deuxième cause peut être que le dispositif dispose d’un très grand nombre de ports du switch, ainsi que d’une implémentation SNMP lente. Si vous ne souhaitez pas effectuer de supervision sur un très petit nombre de ports (les deux premiers ports uniquement, par exemple), vous pouvez limiter manuellement Checkmk afin qu’il n’interroge que les ports spécifiés. Vous trouverez plus de détails à ce sujet ci-dessous, dans la section Performances.

3.2. Seuls les services standard sont détectés

Vous avez inclus un périphérique SNMP dans la supervision, mais Checkmk ne reconnaît que les services SNMP Info et SNMP Uptime ainsi que les interfaces. Cela peut être dû à plusieurs causes :

a) Il n'y a pas de plugins

Checkmk fournit près de 1 000 plugins de supervision pour les périphériques SNMP, mais même cette liste n’est bien sûr jamais exhaustive. On constate régulièrement que, pour certains périphériques, Checkmk ne fournit aucun plugin spécifique, ce qui signifie que vous ne pouvez surveiller que les services standard mentionnés. Vous disposez alors des options suivantes :

  • Vous trouverez peut-être un plugin adapté sur Checkmk Exchange, où les utilisateurs peuvent mettre en ligne leurs propres plugins.

  • Vous développez vous-même des plugins. Vous trouverez des articles à ce sujet dans ce guide de l'utilisateur.

  • Vous pouvez contacter notre équipe d'assistance ou l'un de nos partenaires et leur demander de développer des plugins adaptés.

b) Les plugins ne sont pas reconnus

Il arrive parfois qu’une nouvelle version du micrologiciel d’un appareil empêche les plugins Checkmk de reconnaître l’appareil, par exemple parce qu’un texte a été modifié dans la description système de l’appareil. Dans ce cas, les plugins existants doivent être adaptés. Contactez notre équipe d’assistance à cet effet.

c) L'appareil ne fournit pas les données requises

Certains (rares) appareils permettent de configurer individuellement l'accès à des zones d'informations spécifiques dans leur configuration SNMP. Votre appareil est peut-être configuré pour fournir les informations par défaut, mais pas celles relatives aux services spécifiques à l'appareil.

Sur certains appareils, vous devez utiliser SNMPv3 et des contextes pour obtenir les données souhaitées.

3.3. Périphériques SNMP qui ne répondent pas du tout au protocole SNMP

Si le test ping fonctionne, mais qu'aucune des versions du protocole SNMP ne fonctionne, plusieurs causes sont possibles :

  • Le périphérique n'est absolument pas accessible via IP. Vous pouvez le checker à l'aide du test ping.

  • L'appareil ne prend pas du tout en charge le protocole SNMP.

  • Le partage SNMP n'est pas configuré correctement (activation, adresses autorisées, communauté).

  • Un pare-feu bloque le protocole SNMP. Vous devez ouvrir le port UDP 161 pour le trafic sortant et entrant.

4. SNMPv3

4.1. Sécurité

Par défaut, le protocole SNMP n'est pas chiffré et son authentification est donc très faible, car la communauté est transmise en clair sur le réseau. Ce niveau peut toutefois suffire pour un réseau local isolé, car la supervision se limite ici à des opérations en lecture seule.

Si vous souhaitez néanmoins bénéficier d'un niveau de sécurité plus élevé, vous aurez besoin de la version 3 de SNMP. Celle-ci offre la possibilité de chiffrer les données et d'effectuer une authentification véritable. Pour cela, une configuration appropriée est toutefois nécessaire.

SNMPv3 reconnaît différents niveaux de sécurité :

noAuthNoPriv

Aucune authentification réelle basée sur l'utilisateur, aucun chiffrement. Néanmoins, l'avantage par rapport à la version 2c est que le mot de passe n'est plus transmis en texte clair, mais est haché.

authNoPriv

Authentification basée sur l'utilisateur avec un nom (Security name) et un mot de passe, mais sans cryptage.

authPriv

Authentification basée sur l'utilisateur, comme avec authNoPriv. De plus, toutes les données sont chiffrées. Ici, vous devez échanger manuellement une clé, c'est-à-dire enregistrer la clé à la fois dans l'appareil et dans Checkmk.

Le paramétrage requis dans Checkmk s’effectue au même endroit où vous avez défini la communauté — soit dans les propriétés de l’ordinateur hôte, soit dans la règle d’SNMP credentials of monitored hosts. À cet endroit, au lieu de « SNMP Community », sélectionnez l’un des trois niveaux de la version 3 et configurez les valeurs nécessaires :

Configuring SNMPv3 security settings.

4.2. Contextes

SNMPv3 introduit le concept de contextes. Un périphérique SNMP peut afficher des informations différentes à un même emplacement dans l’arborescence SNMP, selon l’ID de contexte spécifié dans la requête.

Si vous disposez d’un périphérique prenant en charge ces contextes, deux paramétrages sont nécessaires dans Checkmk :

  • Tout d’abord, le périphérique doit être interrogé à l’aide de SNMPv3 (comme décrit dans la section précédente).

  • Ensuite, vous avez besoin d’une autre règle dans le jeu de règles «SNMPv3 contexts to use in requests». Ici, vous sélectionnez le plugin de supervision pour lequel les contextes doivent être activés, puis la liste des contextes qui doivent être interrogés lors de la supervision.

Heureusement, les situations dans lesquelles vous devez travailler avec des contextes sont très rares, car la supervision ne peut malheureusement pas les reconnaître automatiquement. Une configuration manuelle des contextes est toujours nécessaire.

5. Performances et synchronisation

5.1. SNMP inline

Les performances jouent toujours un rôle — en particulier dans les environnements comportant de nombreux ordinateurs hôtes — et la supervision via SNMP consomme davantage de CPU et de mémoire que celle effectuée par les agents Checkmk.

CEE Alors que Checkmk Community effectue les requêtes SNMP de manière classique via les instructions « snmpget » ou « snmpbulkwalk », les éditions commerciales disposent d’un moteur SNMP intégré qui exécute les requêtes SNMP de manière très efficace sans générer de processus supplémentaires. Grâce à cela, la charge CPU liée au traitement SNMP est réduite de moitié environ. Les temps d’interrogation plus courts réduisent également le nombre de processus Checkmk nécessaires simultanément, et donc la charge de travail liée à l’utilisation de la mémoire.

5.2. Intervalles de vérification pour les contrôles SNMP

Si vos ressources atteignent leurs limites, ou s’il faut plus de 60 secondes pour interroger un seul périphérique, vous pouvez réduire l’intervalle auquel Checkmk interroge le ou les ordinateurs hôtes. Grâce à l’ensemble de règles « Normal check interval for service checks », que vous appliquez spécifiquement aux services Checkmk des ordinateurs hôtes, vous pouvez étendre l’intervalle général d’une minute à, par exemple, 2 ou 5 minutes.

Pour les contrôles SNMP en particulier, il existe également le jeu de règles « Fetch intervals for SNMP sections ». Cela vous permet de réduire l'intervalle pour des plugins de supervision individuels. Il est important de savoir que vous ne pouvez jamais définir un intervalle plus court que celui utilisé pour la supervision générale par le service « Check_MK ».

Dans l'ensemble, nous recommandons toutefois de configurer la supervision de manière à ce que l'intervalle standard d'une minute puisse être maintenu, et qu'il ne soit augmenté que dans des cas exceptionnels pour des ordinateurs hôtes ou des checks individuels.

5.3. Paramètres de synchronisation pour l'accès SNMP

Par défaut, Checkmk attend une réponse en moins d’une seconde pour une requête SNMP. Il effectue également trois tentatives au total avant d’abandonner. Pour les appareils qui répondent très lentement ou qui ne sont accessibles que via un réseau très lent, il peut être nécessaire de modifier ces paramètres. Pour ce faire, utilisez le jeu de règles « Timing settings for SNMP access » :

Increasing the response timeout.

Veuillez noter que ces paramètres s'appliquent à une requête SNMP individuelle. Le processus complet de supervision d'un ordinateur hôte se compose de nombreuses requêtes distinctes. Le timeout total est donc un multiple des paramètres spécifiés ici.

5.4. Balayage en masse : nombre d'OID par balayage

Par défaut, SNMP transmet 10 réponses dans un paquet par requête d’GetBulk. Essayez le jeu de règles « Bulk walk: Number of OIDs per bulk » pour voir si une valeur plus élevée offre de meilleures performances. Toutefois, cela ne sera le cas que lorsque de grands tableaux sont transférés vers l’ordinateur hôte — par exemple, s’il s’agit d’un commutateur doté de nombreux ports.

Le SNMP remplit toujours les paquets jusqu’au nombre spécifié, y compris les enregistrements qui suivent ceux réellement requis. Et si seuls quelques-uns de ces enregistrements sont réellement nécessaires, des données supplémentaires sont transférées inutilement et le dépassement augmente.

D'autre part, dans la pratique, il peut parfois arriver que des périphériques dont la valeur par défaut est de 10 OID par bloc rencontrent des problèmes. Dans un tel cas, il peut être utile de réduire ce nombre.

5.5. Limitation des plages d'OID SNMP

Checkmk fonctionne normalement en récupérant toujours les informations sur tous les ports du switch, même si tous ne sont pas réellement supervisés. C'est de toute façon une bonne chose, car cela est généralement plus rapide, les requêtes individuelles ne pouvant pas être effectuées avec les requêtes groupées efficaces. De plus, de notre point de vue, il est toujours conseillé de réaliser la supervision de tous les ports afin de détecter les ports défectueux ou les câbles présentant des taux d'erreur élevés. Si les ports ne sont pas fiables UP, vous pouvez également marquer l'état de la liaison DOWN comme étant OK.

Il existe toutefois des cas isolés où des commutateurs disposent d’un très grand nombre de ports et qui, pour une raison quelconque, répondent très lentement ou effectuent le processus de traitement du protocole SNMP de manière très inefficace, de sorte qu’il n’est plus possible d’effectuer la supervision avec une récupération complète de toutes les informations relatives aux ports.

Pour ces cas, il existe le jeu de règles « Bulk walk: Limit SNMP OID Ranges ». Cela vous permet de limiter de manière statique la liste des données interrogées (par exemple, les ports). Dans la valeur de la règle, pour chaque plugin de supervision particulier, vous spécifiez quels index de la table correspondante doivent être récupérés.

Le type de check habituel pour les ports du switch s’appelle « SNMP interface check with 64 bit counters (using v2c) ». L’exemple suivant montre un paramétrage dans lequel seuls les deux premiers ports sont récupérés via SNMP :

Bulk walk: limit SNMP OID ranges.

Remarque : ce filtrage s’applique avant la reconnaissance du service et la supervision des services. Selon le paramètre « Network interface and switch port discovery », cela ne signifie pas automatiquement que ces deux ports seront effectivement supervisés.

6. Simulation via des parcours SNMP

6.1. Principe

Le moteur SNMP de Checkmk dispose d’une fonctionnalité très pratique : vous pouvez demander à un périphérique surveillé d’enregistrer un snapshot complet de toutes ses données SNMP dans un fichier, ce qu’on appelle une « SNMP walk ». Vous pouvez ensuite utiliser ce fichier pour simuler la supervision du périphérique sur un autre serveur Checkmk, même si ce dernier n’est pas réellement connecté au périphérique via le réseau.

Nous utilisons cette fonctionnalité de manière très intensive, par exemple lorsque notre équipe d’assistance développe de nouveaux plugins de supervision pour nos clients. Nos développeurs n’ont donc pas besoin d’accéder à vos appareils — un simple SNMP walk suffit.

6.2. Création d’un walk via l’interface graphique

Vous pouvez créer une exploration SNMP directement depuis l’interface graphique. Cette fonction se trouve dans le menu d’action du service « Check_MK » des ordinateurs hôtes, ainsi que dans le menu d’action des ordinateurs hôtes (entrée « Download SNMP walk ») :

Download SNMP walk in the action menu for the host in the monitoring overview.

La création de la balade prend quelques secondes dans le meilleur des cas, mais il n’est pas rare que cela prenne quelques minutes. Une fois la création terminée, vous pouvez télécharger le fichier créé via la ligne « Result ».

6.3. Création d'un parcours à partir de la ligne de commande

Vous pouvez également créer des walks à partir de la ligne de commande. Connectez-vous à l'instance à partir de laquelle l'appareil est surveillé. La création du walk s'effectue simplement à l'aide de l'instruction cmk --snmpwalk et de l'ordinateur hôte spécifié (qui doit être configuré dans la supervision) :

OMD[mysite]:~$ cmk --snmpwalk switch23
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Utilisez également l'option -v pour obtenir des informations plus détaillées sur la progression :

OMD[mysite]:~$ cmk -v --snmpwalk switch23
switch23:
Walk on ".1.3.6.1.2.1"...3664 variables.
Walk on ".1.3.6.1.4.1"...5791 variables.
Wrote fetched data to /omd/sites/mysite/var/check_mk/snmpwalks/switch23.
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Le fichier sera placé dans le répertoire var/check_mk/snmpwalks, où il portera simplement le nom de l'ordinateur hôte. Il s'agit d'un fichier texte. Si vous êtes curieux, vous pouvez le consulter — par exemple, avec less ; quittez le programme à l'aide de la touche Q :

OMD[mysite]:~$ less var/check_mk/snmpwalks/switch23
.1.3.6.1.2.1.1.1.0 Yoyodyne Frobolator 23 port L2 Managed Switch
.1.3.6.1.2.1.1.2.0 .1.3.6.1.4.1.11863.1.1.3
.1.3.6.1.2.1.1.3.0 560840147
.1.3.6.1.2.1.1.4.0 Zoe Zhang 
.1.3.6.1.2.1.1.5.0 cmkswitch23
.1.3.6.1.2.1.1.6.0 Data Center 42
.1.3.6.1.2.1.1.7.0 3
.1.3.6.1.2.1.2.1.0 27
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

L'instruction cmk --snmpwalk dispose d'autres options utiles :

Option Effet

--extraoid <OID>

Lorsque Checkmk effectue une exploration sur un ordinateur hôte, il récupère généralement deux sous-arborescences de la zone de données SNMP. Celles-ci sont spécifiées dans l'arborescence SNMP à l'aide de ce que l'on appelle des OID (identificateurs d'objet). Il s'agit de MIB-2 et enterprises, c'est-à-dire, d'une part, une zone standard normalisée et identique pour tous les périphériques SNMP, et d'autre part, une zone spécifique au fabricant. Si le protocole SNMP est correctement implémenté, cela devrait amener le périphérique SNMP à envoyer toutes les données qu’il fournit. Si ce n’est pas le cas et que vous recherchez une plage spécifique, vous pouvez ajouter son OID à la traversée à l’aide de cette option, par exemple cmk --snmpwalk --extraoid .1.2.3.4 switch23. N’oubliez pas le « point » au début de l’OID.

--oid

Cette option est similaire à --extraoid, mais ne récupère que l'OID spécifié. Elle est utile à des fins de test. Notez toutefois que la balade sera incomplète.

-v

L'option « v » signifie « très détaillé » et affichera des informations intéressantes pendant le parcours.

-vv

L'option vv signifie « très détaillé » et affiche beaucoup plus d'informations.

6.4. Utilisation des parcours enregistrés pour des simulations

Si vous souhaitez utiliser ce parcours sur une autre instance Checkmk (ou sur la même) à des fins de simulation, enregistrez le fichier de parcours sous le nom de l'ordinateur hôte de l'instance dans le répertoire « var/check_mk/snmpwalks ». Assurez-vous que l'utilisateur de l'instance est le propriétaire du fichier et que les autorisations sont définies sur « 0600 » (seul le propriétaire est autorisé à lire et à écrire).

Créez maintenant une règle dans le jeu de règles « Simulating SNMP by using a stored SNMP walk » qui accède aux ordinateurs hôtes concernés.

Désormais, seul le fichier enregistré sera utilisé pour la supervision de l’ordinateur hôte. Il n’y a désormais plus d’accès réseau à l’ordinateur hôte, à l’exception du ping pour la vérification de l’ordinateur hôte et, éventuellement, de toute vérification active configurée. Vous pouvez simplement rediriger celles-ci vers le serveur Checkmk en attribuant l’adresse IP 127.0.0.1 aux ordinateurs hôtes.

7. Fichiers et répertoires

Chemin d'accès au fichier Description

var/check_mk/snmpwalks

C'est ici que les fichiers SNMP Walk sont générés ou attendus si vous souhaitez les utiliser pour simuler des données SNMP.


Last modified: Mon, 19 Jan 2026 12:48:35 GMT via commit a0e9c360f
Sur cette page