Supervision avec déroutements SNMP
Opération avec des traps SNMP
Introduction
Les périphériques réseau qui prennent en charge le protocole SNMP, tels que les commutateurs, les routeurs, les serveurs, les imprimantes ou les points d'accès, peuvent envoyer des alarmes (ou des traps SNMP) lorsque certains événements se produisent, tels qu'un crash d'interface, un CPU ou une charge réseau trop élevée, un changement d'état de l'UPS ou une partition disque devenue pleine. Chaque appareil possède sa propre “collection” d'événements possibles, qui se reflète dans une collection, appelée MIB, dans ce cas, différente de la MIB utilisée pour interroger l'appareil.
Les traps ne sont envoyés que lorsque quelque chose se produit, de manière asynchrone (et non répétitive dans le temps) par l'appareil à un récepteur SNMP traps. Pandora FMS dispose d'une console de réception des traps qui permet de visualiser les traps envoyés par les objets surveillés et d'ajouter des alertes à ces traps. Les traps SNMP sont reçus par le démon du système d'exploitation que le serveur SNMP Pandora FMS démarre lorsque le serveur Pandora FMS démarre. Ce démon stocke les traps dans un journal situé par défaut dans:
/var/log/pandora/pandora_snmptrap.log
Les traps sont généralement reçus en format “brut”, c'est-à-dire avec des OID numériques, sauf si un MIB installé dans le système d'exploitation est capable de les résoudre. La console SNMP de Pandora FMS permet de créer des règles pour renommer les OID numériques en OID alphanumériques ou en simples chaînes de caractères descriptif (ex. : L'interface a planté) afin de rendre plus intuitive l'utilisation de TRAPS. Pandora FMS permet également de charger les MIB Traps de n'importe quel fabricant pour définir automatiquement ces règles.
Afin de travailler avec des traps SNMP, modifiez tout d’abord le paramètre suivant dans /etc/pandora/pandora_server.conf pour activer la Console SNMP:
snmpconsole 1
Si vous voulez que les traps soient traduits (soit les liens variables, soit la chaîne Enterprise SNMP), vous devez activer les paramètres suivants:
translate_variable_bindings 1 translate_enterprise_strings 1
Il faut aussi configurer l’archive /etc/snmp/snmptrapd.conf avec les paramètres nécessaires. Par exemple :
authCommunity log public disableAuthorization yes
Avec cette configuration, les traps seront créés pour la communauté public et ne nécessiteront pas d’autorisation.
SNMPv3
Les traps SNMPv3 sont rejetés à moins que l'utilisateur qui les envoie ne soit ajouté à /etc/snmp/snmptrapd.conf en utilisant la directive createUser. Par exemple :
disableAuthorization yes createUser -e 0x0102030405 SNMPv3user SHA mypassword AES
Il faut préciser l’engineID avec l’option -e. Sinon, seuls INFORMs SNMPv3 seront reçus.
Accès á la console de reception des traps
Operation → Monitoring → SNMP → SNMP Console. L'icône de la loupe peut être utilisée pour afficher toutes les informations du trap, de la même façon que pour les événements. Ici nous pouvons voir les informations détaillées d'un déroutement SNMP.
Pour chaque trap, les colonnes suivantes apparaissent :
- Status : Carré vert si le trap est validé, rouge dans le cas contraire.
- SNMP Agent : Agent qui a envoyé le trap.
- OID : OID du trap envoyé. Un trap ne peut envoyer qu’une seule donnée dans ce champs.
- Value : Champ de valeur du trap envoyé. Un trap ne peut envoyer qu'une seule donnée dans ce champ.
Couleur
- Bleu : Les traps de type entretien.
- Violet : Les traps de type information.
- Vert : Les traps de type
normal. - Jaune : Les traps de type
warning. - Rouge : Les traps de type
critical.
L'option Toggle Filter apparaît en haut de la console de trap. Si vous cliquez sur cette option, les champs pour filtrer les déroutements apparaissent ou disparaissent.
Valider les traps
Afin de gérer efficacement les trappes, il est possible de valider les déroutements afin que l'administrateur puisse distinguer les déroutements qui ont été consultés de ceux qui ne le sont pas encore. Pour valider une trappe, cliquez sur le cercle à gauche ou en le marquant et en cliquant sur le bouton Validate.
Effacer des traps
Il est possible d'effacer les traps une fois traités, soit individuellement, soit par sélection multiple en cliquant sur Delete.
Pour éviter que les traps ne s'accumulent, il existe une option de configuration qui supprime automatiquement les SNMP traps.
Alertes des déroutements SNMP
Introduction
Pandora FMS dispose également d'un système d'alerte pour les déroutements SNMP qu'il reçoit. Ils sont principalement basées sur des règles de filtrage, recherchant les coïncidences dans tous les champs possibles selon les règles que vous configurez pour déclencher l'alerte.
Ajouter une alerte
Menu Management → Alerts → SNMP alerts → Create alert.
Les alertes de traps SNMP possèdent plusieurs champs qui seront utilisés pour rechercher des correspondances dans les traps SNMP reçus dans la Console. Les champs souhaités peuvent être utilisés de manière facultative pour créer des règles plus générales ou plus spécifiques selon les besoins. Elle se compose de trois onglets de configuration :
1. Basic, paramètres importants :
- Custom Value/OID : Recherche dans les champs Value du trap SNMP, ainsi que dans les champs Custom OID et Custom Value, c'est-à-dire dans le reste des champs du TRAP. La recherche par expression régulière fonctionne ici. Par exemple, si vous avez un trap SNMP qui envoie la chaîne
Testing TRAP 225, il est possible de rechercher n'importe quel trap avec la sous-chaîneTesting TRAPau moyen de l'expression régulièreTesting.*TRAP.* - Enterprise String : OID principal du trap SNMP. La présence de la chaîne sera recherchée, celle-ci pouvant même être un fragment de l'OID ; par exemple
1.21.34.2.3dans un OID plus long. Il peut être utilisé de la même manière dans le champ, et effectuera la recherche comme s'il s'agissait de :*1.21.34.2.3*(il est inutile d'utiliser des astérisques comme caractères génériques).
Pour les correspondances exactes, la chaîne doit se terminer par le caractère$. - SNMP Agent (IP) : Adresse IP de l'Agent qui envoie le trap SNMP. Permet également d'utiliser une expression régulière ou une sous-chaîne.
- Trap type : Filtre par type de trap. La plupart des traps générés sont généralement de type Other ; si vous ne spécifiez rien, il recherchera n'importe quel type de trap.
- Trap subtype : Pour filtrer les alertes par sous-type de SNMP traps, cela fonctionne indépendamment de Trap type.
- Single value : Filtre par la valeur du trap. Ceci fait uniquement référence à la valeur simple de l'OID principal, non à n'importe quel OID secondaire.
2. Variable bindings, paramètres importants :
- Variable bindings/Data : Ce sont des expressions régulières qui tentent de correspondre aux variables
1à20. S'il y a une correspondance, l'alerte est déclenchée.
La valeur de la variable est enregistrée dans les macros _snmp_fx_ et _safesnmp_fx_ correspondante :
_snmp_f1_, _snmp_f2_, … (_safesnmp_f1_, _safesnmp_f2_, … )
La différence entre ces deux macros réside dans le fait que _safesnmp_fx_ échappe les caractères susceptibles de poser problème avec le shell.
Bien qu'une seule expression régulière puisse être spécifiée pour vingt variables, les macros _snmp_fx_ et _safesnmp_fx_ sont disponibles pour toutes (_snmp_f11_, _snmp_f12_, … , _snmp_f20_).
3. Action, paramètres importants :
- Alert Action : Liste à partir de laquelle l'action que l'alerte va exécuter est déterminée. Si un événement est choisi, l'événement normal de génération d'alerte ne sera pas généré.
- Priority : Liste où la priorité de l'alarme est définie.
Les priorités des alertes sont différentes et n'ont rien à voir avec la priorité des traps SNMP, ni avec celle des événements de Pandora FMS.
Macros de fields sur les alertes
Les macros suivantes peuvent être utilisées dans n'importe quel champ « field » des alertes :
_data_: Trap entier._agent_: Nom de l’agent._address_: Adresse IP._timestamp_: Date trap._snmp_oid_: OID du trap._snmp_value_: Valeur de l’OID du trap.
Travailler dans des environnements avec beaucoup de traps
Protection face à une avalanche de traps
Il y a quelques paramètres sur le serveur qui sont utilisés pour protéger le système contre l'arrivée d'une avalanche de traps provenant de la même source. Pour ce faire, les paramètres de configuration suivants sont utilisés dans le fichier pandora_server.conf :
snmp_storm_protection: Nombre maximal de traps traités dans l'intervalle de protection.snmp_storm_timeout: Intervalle en secondes de la protection contre les orages des traps. Pendant cet intervalle, seuls X traps provenant de la même source (même IP) peuvent être traités.snmp_storm_silence_period: S'il est supérieur à 0 chaque fois que la storm protection est déclenchée pour une source particulière, l'heure actuelle plus le temps de coupure sont ajoutés. Tant que ce délai n'est pas écoulé, aucun nouveau piège ne sera enregistré pour la source en question.
La protection contre les tempêtes de traps, combinée au filtrage des traps (voir ci-dessous), permet si vous recevez des centaines de milliers de traps par jour, de travailler avec seulement quelques milliers, afin d'éliminer ceux qui sont redondants ou ceux qui ne sont pas utiles.
Filtrage de traps dans le serveur
Certains systèmes reçoivent un nombre élevé de traps, dont un faible pourcentage est utile pour la supervision. Depuis Monitoring → SNMP → SNMP Filters vous pouvez définir plusieurs filtres. Cliquez sur le bouton Create, ajoutez une description et autant de filtres que nécessaire à l'aide du bouton +.
Personnaliser Traps SNMP
Renommage et personnalisation des traps
Veuillez noter que tous les pièges précédents ne changeront pas d'apparence, mais que cette modification s'appliquera aux nouveaux pièges entrant dans le système à partir de ce moment.
Nous appelons « éditer un trap » le processus où il est possible de « personnaliser » l'apparence d'un trap dans la console. Pour éditer un trap, allez dans Operation → Monitoring → SNMP → SNMP trap editor.
Custom OID est une expression régulière compatible avec Perl qui sera comparée avec la partie de la chaîne de trappes qui contient les variables de liaison. Il n'est généralement pas nécessaire de traduire un piège.
« Custom OID » n'est pas destiné à contenir toute la chaîne de variables bindings, qui peut être plus longue que la longueur maximale qu'elle supporte, mais une expression régulière qui correspond à une ou plusieurs variables.
Télécharger les MIB du fabricant
Cette option est utilisée pour télécharger des MIB et étendre la base de données de traduction interne de Pandora FMS, de sorte que lorsqu'un piège SNMP arrive, il est automatiquement traduit par sa description. Allez vers Operation → Monitoring → SNMP → MIB uploader.
Envoi de traps SNMP à un agent
Menu Management → Settings → System settings → Enterprise options → Forward SNMP traps to an agent (if it exists).
Si vous modifiez cette option, redémarrez le serveur Pandora FMS pour commencer à fonctionner.
Cette option (générale pour le serveur) transmet le déroutement SNMP à un module d'agent spécial appelé SNMPTrap sous la forme d'une chaîne de texte, si et seulement si l'adresse IP source du déroutement SNMP est définie comme une adresse IP d'agent. Dans ce cas, le déroutement SNMP arrive sous la forme d'une chaîne de texte à l'agent de ce module, qui est un module défini uniquement lorsque le premier déroutement SNMP arrive.
Associer un trap au reste des alertes Pandora FMS
Des alertes textuelles peuvent être spécifiées sur ce module, et ces alertes sont tout à fait standard, comme celles de n'importe quel autre module. Pour ce faire, l'option Yes and change status doit être cochée afin que le module puisse changer d'état.
Cela vous permet de personnaliser la supervision SNMP de sorte que certaines traps, provenant de certaines sources, puissent être traités comme un autre module, et donc intégrés dans le reste de la supervision, y compris la corrélation des alertes.
Une autre solution consiste à monter une alerte sur le trap qui active un module d'agent. Par exemple, le trap c’est d’écrire dans un fichier de logs, et vous avez un agent qui lit ce fichier et est déclenché quand il y a un 1 d’écrit. De cette façon, le module sera déclenché lorsque le déroutement désiré sera reçu et la corrélation pourra être établie en fonction du déroutement reçu.
Gestionnaire TRAPS externe
La console SNMP est limitée à la réception de traps, car elle ne traite TRAP que comme une entité individuelle, mais un trap peut contenir beaucoup d'informations.
Parfois, il arrive que la seule supervision que vous puissiez faire soit basée sur des traps SNMP.
Pour ce faire, vous pouvez choisir de « post-traiter » les informations collectées dans un trap par un script externe, qui agit comme un plugin.
Pour ce faire, une commande d'alerte doit être créée pour exécuter ce script afin de post-traiter le piège SNMP reçu.
L'application de cette technologie est infinie, mais que si chaque script est particularisé puisqu'il peut avoir une structure très dynamique. Dans de nombreux systèmes, l'information qui est reçue n'est pas seulement du texte, mais aussi numérique, avec laquelle il peut alimenter des modules d'information numérique et donc représenter des graphiques etc. Cependant, nous devons tenir compte du fait que les données générées en XML doivent toujours être asynchrones.
SNMP trap forwarding
Avec Pandora FMS, il est possible d'activer le transfert des traps SNMP vers un hôte externe en activant le token snmp_forward_trap dans le fichier de configuration Pandora FMS. Les tokens suivants fonctionnent ensemble:
snmp_forward_trap snmp_forward_ip snmp_forward_version snmp_forward_secName snmp_forward_engineid snmp_forward_authProtocol snmp_forward_authPassword snmp_forward_privProtocol snmp_forward_privPassword snmp_forward_secLevel
Gestion indépendante du démon snmptrapd
Il est possible que pour une raison quelconque vous préfériez gérer le démon snmptrapd indépendamment de Pandora FMS (pour l'arrêter ou l'élever indépendamment du Démon principal de Pandora FMS). Pour ce faire, vous devez tenir compte de plusieurs facteurs :
1.Vous devez également activer le paramètre snmpconsole dans le serveur Pandora FMS.
2. Les logs configurés dans le serveur Pandora FMS doivent être les mêmes que ceux générés dans l'appel indépendant à snmptrapd.
3. L'appel à snmptrapd doit avoir un format spécifique l'appel au démon système standard n'est pas valide. L'appel doit être ainsi (le paramètre -A est particulièrement important !) :
/usr/sbin/snmptrapd -A -t -On -n -a -Lf /var/log/pandora/pandora_snmptrap.log -p /var/run/pandora_snmptrapd.pid --format1=SNMPv1[**]%4y-%02.2m-%l[**]%02.2h:%02.2j:%02.2k[**]%a[**]%N[**]%w[**]%W[**]%q[**]%v\n --format2=SNMPv2[**]%4y-%02.2m-%l[**]%02.2h:%02.2j:%02.2k[**]%b[**]%v\n
4. Vous devez configurer le jeton dans le fichier de configuration du serveur :
snmp_trapd manual
5. Lorsque vous définissez cette fonction. Vous devez effectuer l'opération suivante :
- Changez la configuration dans
/etc/pandora/pandora_server.conf - Arrêter le serveur Pandora FMS.
- Vérifiez que le processus snmptrapd n'est plus exécuté (et si c'est le cas, attendez qu'il meure ou le tue).
- Lancez snmptrapd manuellement (dans le format indiqué ci-dessus).
- Démarrez le serveur Pandora FMS.
Gestion du fichier journal des traps
Le processus snmptrapd peut être arrêté et démarré sans arrêter et démarrer le processus du serveur Pandora FMS, tant que les fichiers pandora_snmptrap.log.index et pandora_snmptrap.log ne sont pas modifiés. Si ces fichiers sont modifiés, il est nécessaire de redémarrer le serveur Pandora FMS. Si vous devez effectuer une rotation externe des traps log, vous devez redémarrer le serveur Pandora FMS après avoir supprimé les fichiers mentionnés précédemment.
Buffering des traps SNMP
Il est plus efficace pour la console SNMP de traiter les traps directement à partir du fichier journal snmptrapd. Cette configuration n'est recommandée que si la fiabilité ou la connectivité directe est un problème.
Si les traps SNMP sont envoyés à un gestionnaire externe par le biais d'une connexion peu fiable, une partie des informations sera perdue. Pandora FMS vous permet, au contraire, de transmettre les traps d'un snmptrapd local à votre serveur Pandora FMS d'une manière fiable.
Pré requis :
- Un snmptrapd local qui a des traps.
- Un agent local de Pandora FMS.
- Une installation Pandora FMS.
snmp_extlog peut être n'importe quel fichier dans lequel le serveur Pandora FMS peut écrire, mais il doit être différent de snmp_logfile (également défini dans /etc/pandora/pandora_agent.conf).
Générateur de Traps
Menu Operation → Monitoring → SNMP → SNMP trap generator.
Avec cet outil, vous pouvez générer des traps personnalisés que vous pourrez voir plus tard dans la console SNMP.
Choisissez un SNMP type parmi les options suivantes:
- Cold Start: Il indique que l'agent a été lancé ou redémarré.
- Warm Start: Il indique que la configuration de l’agent a été modifiée.
- Link down: Il indique que l'interface de communication est hors service (inactive).
- Link up: Il indique qu’une interface de communication a été activée.
- Authentication failure: Il indique que l'agent a reçu une demande d'un SGEN non autorisé (contrôlé par la collectivité).
- EGP neighbor loss: Il indique que sur les systèmes où les routeurs qui utilisent le protocole EGP, un hôte proche est hors service.
- Enterprise: Dans cette catégorie vous trouverez tous les nouveaux traps. Y compris les traps des fournisseurs.