Surveillance de l'équipement réseau via SNMPv3 dans Zabbix

Cet article décrit les fonctionnalités de surveillance des équipements réseau à l'aide du protocole SNMPv3. Nous parlerons de SNMPv3, je partagerai mon expérience dans la création de modèles à part entière dans Zabbix et montrerons ce que vous pouvez réaliser lors de l'organisation d'alertes distribuées sur un grand réseau. SNMP est le principal protocole de surveillance des équipements réseau, et Zabbix est excellent pour surveiller un grand nombre d'objets et résumer des volumes importants de métriques entrantes.

Quelques mots sur SNMPv3


Commençons par la nomination de SNMPv3 et les fonctionnalités de son utilisation. Les tâches SNMP consistent à surveiller les périphériques réseau et la gestion élémentaire en leur envoyant des commandes simples (par exemple, activer et désactiver les interfaces réseau ou redémarrer le périphérique).

La principale différence entre le protocole SNMPv3 et ses versions précédentes réside dans les fonctionnalités de sécurité classiques [1-3], à savoir:

  • Authentification, qui détermine que la demande est reçue d'une source de confiance;
  • Cryptage, pour empêcher la divulgation des données transmises lorsqu'elles sont interceptées par des tiers;
  • L'intégrité, c'est-à-dire une garantie que le paquet n'a pas été altéré pendant la transmission.

SNMPv3 implique l'utilisation d'un modèle de sécurité dans lequel une stratégie d'authentification est définie pour un utilisateur donné et le groupe auquel il appartient (dans les versions précédentes de SNMP, dans la demande du serveur à l'objet de surveillance, seule la «communauté» était comparée, une chaîne de texte avec un «mot de passe» transmis sous forme claire (texte brut)).

SNMPv3 introduit le concept de niveaux de sécurité - des niveaux de sécurité acceptables qui déterminent la configuration de l'équipement et le comportement de l'agent SNMP de l'objet de surveillance. La combinaison du modèle de sécurité et du niveau de sécurité détermine le mécanisme de sécurité utilisé lors du traitement du paquet SNMP [4].

Le tableau décrit les combinaisons de modèles et de niveaux de sécurité SNMPv3 (j'ai décidé de laisser les trois premières colonnes comme dans l'original):



En conséquence, nous utiliserons SNMPv3 en mode d'authentification à l'aide du chiffrement.

Configurer SNMPv3


La surveillance de l'équipement réseau implique la même configuration du protocole SNMPv3 à la fois sur le serveur de surveillance et sur l'objet surveillé.

Commençons par configurer un périphérique réseau Cisco, sa configuration minimale nécessaire est la suivante (pour la configuration, nous utilisons CLI, j'ai simplifié les noms et les mots de passe pour éviter toute confusion):

snmp-server group snmpv3group v3 priv read snmpv3name 
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included

La première ligne du groupe snmp-server - définit le groupe d'utilisateurs SNMPv3 (snmpv3group), le mode de lecture (lecture) et le droit d'accès du groupe snmpv3group pour afficher certaines branches de l'arborescence MIB de l'objet de surveillance (snmpv3name dans la configuration ci-dessous détermine quelles branches de l'arborescence MIB le groupe snmpv3group pourra y accéder).

La deuxième ligne est utilisateur snmp-server - définit l'utilisateur snmpv3user, son appartenance au groupe snmpv3group, ainsi que l'utilisation de l'authentification md5 (le mot de passe pour md5 est md5v3v3v3) et du cryptage des (le mot de passe pour des est des56v3v3v3). Bien sûr, au lieu de des, il vaut mieux utiliser aes, ici je le donne juste comme exemple. De plus, lors de la définition d'un utilisateur, vous pouvez ajouter une liste d'accès (ACL) qui régule les adresses IP des serveurs de surveillance qui ont le droit de surveiller cet appareil - c'est également la meilleure pratique, mais je ne compliquerai pas notre exemple.

La troisième ligne de la vue snmp-server définit le nom de code qui définit les branches de l'arborescence MIB snmpv3name afin que le groupe d'utilisateurs snmpv3group puisse les demander. ISO, au lieu de définir strictement une seule branche, permet à un groupe d'utilisateurs snmpv3group d'accéder à tous les objets de l'arborescence MIB de l'objet de surveillance.

Une configuration similaire de l'équipement Huawei (également dans la CLI) est la suivante:

snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5 
            md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
            des56v3v3v3

Après avoir configuré les périphériques réseau, vous devez vérifier l'accès à partir du serveur de surveillance via le protocole SNMPv3, j'utiliserai snmpwalk:

snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252



Snmpget est un outil plus visuel pour demander des objets OID spécifiques à l'aide de fichiers MIB:



Passons maintenant à la configuration d'un élément de données typique pour SNMPv3, dans le cadre du modèle Zabbix. Pour plus de simplicité et d'indépendance par rapport à la MIB, j'utilise des OID numériques:



j'utilise des macros personnalisées dans les champs clés, car elles seront les mêmes pour tous les éléments de données du modèle. Vous pouvez les définir dans le cadre du modèle si tous les périphériques réseau de votre réseau ont les mêmes paramètres SNMPv3, ou au sein de l'hôte si les paramètres SNMPv3 pour différents objets de surveillance sont différents:



veuillez noter que le système de surveillance n'a qu'un nom d'utilisateur et des mots de passe pour l'authentification et le cryptage . Le groupe d'utilisateurs et la zone des objets MIB auxquels l'accès est autorisé sont définis sur l'objet de surveillance.
Passons maintenant au remplissage du modèle.

Modèle d'enquête Zabbix


Une règle simple lors de la création de modèles d'enquête est de les rendre aussi détaillés que possible:



je porte une grande attention à l'inventaire afin qu'il soit plus pratique de travailler avec un grand réseau. À ce sujet un peu plus tard, mais pour l'instant - déclenche:



Pour faciliter la visualisation des déclencheurs, leurs noms contiennent des macros système {HOST.CONN}, de sorte que non seulement les noms des périphériques, mais également les adresses IP sont affichés sur le tableau de bord dans la section d'alerte, bien que ce soit plus une question de commodité que nécessaire. Pour déterminer l'indisponibilité de l'appareil, en plus de la demande d'écho habituelle, j'utilise la vérification d'indisponibilité de l'hôte SNMP lorsque l'objet est accessible via ICMP mais ne répond pas aux demandes SNMP - cette situation est possible, par exemple, lors de la duplication d'adresses IP sur différents appareils, en raison de pare-feu mal configurés ou de paramètres SNMP incorrects sur les objets de surveillance. Si vous utilisez le contrôle d'accès de l'hôte uniquement via ICMP, au moment d'enquêter sur les incidents sur le réseau, les données de surveillance peuvent ne pas apparaître, leur réception doit donc être contrôlée.

Passons à la découverte des interfaces réseau - pour les équipements réseau, c'est la fonction de surveillance la plus importante. Puisqu'il peut y avoir des centaines d'interfaces sur un périphérique réseau, il est nécessaire de filtrer les interfaces inutiles afin de ne pas encombrer la visualisation et encombrer la base de données.

J'utilise la fonction de détection standard pour SNMP, avec un grand nombre de paramètres détectables, pour un filtrage plus flexible:

discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]



Avec cette détection, vous pouvez filtrer les interfaces réseau par leurs types, la description des descriptions d'utilisateurs et les statuts administratifs des ports. Les filtres et les expressions régulières pour filtrer dans mon cas se présentent comme suit:





Lors de la détection, les interfaces suivantes seront exclues:

  • désactivé manuellement (adminstatus <> 1), grâce à IFADMINSTATUS;
  • ne pas avoir de description textuelle, grâce à IFALIAS;
  • avoir * dans la description du texte, grâce à IFALIAS;
  • être officiel ou technique grâce à IFDESCR (dans mon cas, dans les expressions régulières IFALIAS et IFDESCR sont vérifiées par un alias expression régulière).

Le modèle de collecte de données SNMPv3 est presque prêt. Nous ne nous attarderons pas sur les prototypes d'éléments de données pour les interfaces réseau, nous allons passer aux résultats.

Suivi des résultats


Pour commencer - un inventaire d'un petit réseau:



si vous préparez des modèles pour chaque série de périphériques réseau - vous pouvez obtenir une disposition pratique pour analyser les données récapitulatives sur le dernier logiciel, les numéros de série et la notification de l'arrivée de la femme de ménage sur le serveur (en raison de la petite disponibilité). Un extrait de ma liste de modèles est ci-dessous:



Et maintenant - le tableau de bord principal, avec des déclencheurs répartis par niveau de gravité:



Grâce à une approche intégrée des modèles pour chaque modèle d'appareils dans le réseau, il est possible de réaliser que dans le cadre d'un système de surveillance un outil sera organisé pour prédire les pannes et les accidents (s'il y a des capteurs et des mesures appropriés). Zabbix est bien adapté pour surveiller les infrastructures de réseau, de serveur et de service, et la tâche de maintenance de l'équipement réseau démontre clairement ses capacités.

Liste des sources utilisées:
1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 325-329.
2. RFC 3410. tools.ietf.org/html/rfc3410
3. RFC 3415. tools.ietf.org/html/rfc3415
4. SNMP Configuration Guide, Cisco IOS XE Release 3SE. Chapter: SNMP Version 3. www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp-snmpv3.html

All Articles