Áú»¢¶Ä²©

This is the documentation page for an unsupported version of Áú»¢¶Ä²©.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

3 Traps SNMP

Aper?u

La r¨¦ception des traps SNMP est l'oppos¨¦ de l'interrogation des p¨¦riph¨¦riques compatibles SNMP.

Dans ce cas, les informations sont envoy¨¦es depuis un p¨¦riph¨¦rique compatible SNMP et sont "collect¨¦es" par Áú»¢¶Ä²©.

Habituellement, les traps sont envoy¨¦es lors de certaines modifications de condition et l'agent se connecte au serveur sur le port 162 (par opposition au port 161 du c?t¨¦ de l'agent utilis¨¦ pour les requ¨ºtes). L'utilisation des traps peut d¨¦tecter certains probl¨¨mes de courte dur¨¦e qui surviennent au cours de l'intervalle de requ¨ºte et peuvent ¨ºtre ignor¨¦s par les donn¨¦es de la requ¨ºte.

La r¨¦ception des traps SNMP dans Áú»¢¶Ä²© est con?ue pour fonctionner avec snmptrapd et l'un des m¨¦canismes int¨¦gr¨¦s pour transmettre les traps ¨¤ Áú»¢¶Ä²© - un script Perl ou SNMPTT.

Le flux de travail de la r¨¦ception d'un trap :

  1. snmptrapd re?oit un trap
  2. snmptrapd transfert le trap ¨¤ SNMPTT ou appel le r¨¦cepteur de trap Perl
  3. Le r¨¦cepteur de trap SNMPTT ou Perl analyse, formate et ¨¦crit le trap dans un fichier
  4. Le trappeur SNMP Áú»¢¶Ä²© lit et analyse le fichier de trap
  5. Pour chaque trap, Áú»¢¶Ä²© trouve tous les ¨¦l¨¦ments "trappeur SNMP" avec des interfaces h?tes correspondant ¨¤ l'adresse du trap re?ue. Notez que seuls les "IP" ou " DNS " s¨¦lectionn¨¦s dans l'interface h?te sont utilis¨¦s lors de la mise en correspondance
  6. Pour chaque ¨¦l¨¦ment trouv¨¦, le trap est compar¨¦ ¨¤ regexp dans "snmptrap[regexp]". Le trap est d¨¦fini comme la valeur de tous les ¨¦l¨¦ments correspondants. Si aucun ¨¦l¨¦ment correspondant n'est trouv¨¦ et qu'il existe un ¨¦l¨¦ment "snmptrap.fallback", le trap est d¨¦fini comme valeur de celui-ci
  7. Si le trap n'est pas d¨¦fini comme la valeur d'un ¨¦l¨¦ment, Áú»¢¶Ä²© enregistre par d¨¦faut le trap qui ne correspond pas. (Cela est configur¨¦ par "Enregistrer les traps SNMP non appari¨¦s" dans Administration ¡ú G¨¦n¨¦ral ¡ú Autre.)

1 Configuration des traps SNMP

La configuration des champs suivants dans l'interface web est sp¨¦cifique pour ce type d'¨¦l¨¦ment :

  • Votre h?te doit avoir une interface SNMP

Dans Configuration ¡ú H?tes, dans le champ Interface h?te, d¨¦finissez une interface SNMP avec l'adresse IP ou DNS correcte. L'adresse de chaque trap re?u est compar¨¦ aux adresses IP et DNS de toutes les interfaces SNMP pour trouver les h?tes correspondants.

  • Configuration de l'¨¦l¨¦ment

Dans le champs °ä±ô¨¦ utilisez l'une des cl¨¦s de trap SNMP suivantes :

°ä±ô¨¦
Description Valeur de retour Commentaires
snmptrap[regexp]
Re?oit tous les traps SNMP qui correspondent ¨¤ l'expression r¨¦guli¨¨re sp¨¦cifi¨¦e dans regexp. Si regexp n'est pas sp¨¦cifi¨¦, re?oit tous les traps Trap SNMP Cet ¨¦l¨¦ment peut ¨ºtre d¨¦fini uniquement pour les interfaces SNMP.
Cet ¨¦l¨¦ment est support¨¦ depuis Áú»¢¶Ä²© 2.0.0.
Remarque : ¨¤ partir de Áú»¢¶Ä²© 2.0.5, les macros utilisateur et les expressions r¨¦guli¨¨res globales sont prises en charge dans le param¨¨tre de cette cl¨¦ d'¨¦l¨¦ment.
snmptrap.fallback
Re?oit tous les traps SNMP qui n'ont ¨¦t¨¦ re?us par aucun ¨¦l¨¦ment snmptrap[] pour cette interface. Trap SNMP Cet ¨¦l¨¦ment peut ¨ºtre d¨¦fini uniquement pour les interfaces SNMP. \\Cet ¨¦l¨¦ment est support¨¦ depuis Áú»¢¶Ä²© 2.0.0.

La correspondance d'expressions r¨¦guli¨¨res sur plusieurs lignes n'est pas prise en charge pour le moment.

D¨¦finissez le Type d'information ¨¤ 'Journal' pour les horodatages ¨¤ analyser. Notez que d'autres formats tels que 'Numerique' sont ¨¦galement acceptables, mais peuvent n¨¦cessiter un gestionnaire de traps personnalis¨¦.

Pour que la supervision des traps SNMP fonctionne, elle doit d'abord ¨ºtre correctement configur¨¦e.

2 Setting up SNMP trap monitoring

3 Configuration de la supervision des traps SNMP

Configuration du serveur/proxy Áú»¢¶Ä²©

Pour lire les traps, le serveur ou le proxy Áú»¢¶Ä²© doit ¨ºtre configur¨¦ pour d¨¦marrer le trappeur SNMP et pointer vers le fichier de traps en cours d'¨¦criture par SNMPTT ou un r¨¦cepteur de traps perl. Pour ce faire, ¨¦ditez le fichier de configuration (zabbix_server.conf ou zabbix_proxy.conf) :

  1. StartSNMPTrapper=1
  2. SNMPTrapperFile=[TRAP FILE]

Si le param¨¨tre systemd est utilis¨¦, il est peu probable que ce fichier fonctionne dans /tmp.

Configuration de SNMPTT

Au d¨¦but, snmptrapd devrait ¨ºtre configur¨¦ pour utiliser SNMPTT.

Pour de meilleures performances, SNMPTT doit ¨ºtre configur¨¦ en tant que d¨¦mon en utilisant snmptthandler-embedded pour lui transmettre les traps. Voir les instructions pour configurer SNMPTT sur sa page d'accueil :

Lorsque SNMPTT est configur¨¦ pour recevoir les traps, configurez SNMPTT pour consigner les traps :

  1. consignez les traps dans le fichier de trap qui sera lu par Áú»¢¶Ä²© :
    log_enable = 1
    fichier_journal = [TRAP FILE]
  2. d¨¦finissez le format date-heure :
    date_time_format = %H:%M:%S %Y/%m/%d = [DATE TIME FORMAT]

Maintenant formatez les traps pour que Áú»¢¶Ä²© les reconnaisse (¨¦ditez snmptt.conf) :

  1. Chaque instruction FORMAT devrait commencer par "ZBXTRAP [adresse]", o¨´ [adresse] sera compar¨¦e aux adresses IP et DNS des interfaces SNMP sur Áú»¢¶Ä²©. Par exemple : \\EVENT coldStart .1.3.6.1.6.3.1.1.5.1 "Status Events" Normal
    FORMAT ZBXTRAP $aA Device reinitialized (coldStart)
  2. En savoir plus sur le format de trap SNMP ci-dessous.

N'utilisez pas de traps inconnus - Áú»¢¶Ä²© ne pourra pas les reconna?tre. Les traps inconnus peuvent ¨ºtre g¨¦r¨¦s en d¨¦finissant un ¨¦v¨¦nement g¨¦n¨¦ral dans snmptt.conf :
EVENT general .* "General event" Normal

Configuration du r¨¦cepteur de traps Perl

Pr¨¦requis : Perl, Net-SNMP compil¨¦ avec --enable-embedded-perl (fait par d¨¦faut depuis Net-SNMP 5.4)

Le r¨¦cepteur de traps Perl (recherchez misc/snmptrap/zabbix_trap_receiver.pl) peut ¨ºtre utilis¨¦ pour transf¨¦rer les traps au serveur Áú»¢¶Ä²© directement depuis snmptrapd. Pour le configurer :

  • ajoutez le script perl au fichier de configuration snmptrapd (snmptrapd.conf), par exemple :
    perl do "[CHEMIN COMPLET DU SCRIPT RECEPTEUR PERL]" ;
  • configurez le r¨¦cepteur, par exemple :
    $SNMPTrapperFile = '[TRAP FILE]' ;
    $DateTimeFormat = '[DATE TIME FORMAT]' ;

Si le nom du script n'est pas entre quote, snmptrapd refusera de d¨¦marrer avec des messages similaires ¨¤ ceux-ci :

Regexp modifiers "/l" and "/a" are mutually exclusive at (eval 2) line 1, at end of line
       Regexp modifier "/l" may not appear twice at (eval 2) line 1, at end of line
Format de trap SNMP

Tous les r¨¦cepteurs de traps perl personnalis¨¦s et la configuration de SNMPTT doivent formater le trap de la mani¨¨re suivante : [timestamp] [trap, partie 1] ZBXTRAP [adresse] [trap, partie 2], o¨´

  • [timestamp] - horodatage utilis¨¦ pour les ¨¦l¨¦ments de journal
  • ZBXTRAP - en-t¨ºte qui indique qu'un nouveau trap commence dans cette ligne
  • [adresse] - adresse IP utilis¨¦e pour trouver l'h?te de ce trap

Notez que "ZBXTRAP" et "[adresse]" seront supprim¨¦s du message pendant le traitement. Si le trap est format¨¦ autrement, Áú»¢¶Ä²© peut analyser les traps de fa?on inattendue.

Exemple de trap :
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal ¡°Status Events¡± localhost - ZBXTRAP 192.168.1.1 Link down on interface 2. Admin state: 1. Operational state: 2
Cela entra?nera le trap suivant pour l'interface SNMP avec IP = 192.168.1.1 :
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - Link down on interface 2. Admin state: 1.

4 Pr¨¦-requis syst¨¨me

Prise en charge des fichiers volumineux

Áú»¢¶Ä²© "prend en charge les fichiers volumineux" pour les fichiers de trapper SNMP. La taille limite maximum que Áú»¢¶Ä²© peut lire est 2^63 (8 EiB). Notez que le syst¨¨me de fichier peut imposer une limite inf¨¦rieure sur la taille du fichier.

Rotation des logs

Áú»¢¶Ä²© ne fournit aucun syst¨¨me de rotation des logs - cela devrait ¨ºtre g¨¦r¨¦ par l'utilisateur. La rotation des logs doit d'abord renommer l'ancien fichier et seulement le supprimer plus tard afin qu'aucun trap ne soit perdu :

  1. Áú»¢¶Ä²© ouvre le fichier de traps au dernier emplacement connu et passe ¨¤ l'¨¦tape 3
  2. Áú»¢¶Ä²© v¨¦rifie si le fichier actuellement ouvert a ¨¦t¨¦ pivot¨¦ en comparant le num¨¦ro d'inode au num¨¦ro d'inode du fichier de traps d¨¦fini. S'il n'y a pas de fichier ouvert, Áú»¢¶Ä²© r¨¦initialise le dernier emplacement et passe ¨¤ l'¨¦tape 1.
  3. Áú»¢¶Ä²© lit les donn¨¦es du fichier actuellement ouvert et d¨¦finit le nouvel emplacement.
  4. Les nouvelles donn¨¦es sont analys¨¦es. S'il s'agissait du fichier pivot¨¦, le fichier est ferm¨¦ et retourne ¨¤ l'¨¦tape 2.
  5. S'il n'y avait pas de nouvelles donn¨¦es, Áú»¢¶Ä²© attend 1 seconde et retourne ¨¤ l'¨¦tape 2.
Syst¨¨me de fichiers

En raison de l'impl¨¦mentation du fichier de trap, Áú»¢¶Ä²© a besoin du syst¨¨me de fichiers pour prendre en charge les inodes afin de diff¨¦rencier les diff¨¦rents fichiers (les informations sont acquises par un appel stat()).

5 Exemple d'impl¨¦mentation

Cet exemple utilise snmptrapd + SNMPTT pour transmettre les traps au serveur Áú»¢¶Ä²© :

  1. zabbix_server.conf - configurez Áú»¢¶Ä²© pour d¨¦marrer le trappeur SNMP et d¨¦finir le fichier de traps :
    StartSNMPTrapper=1
    SNMPTrapperFile=/tmp/my_zabbix_traps.tmp
  2. snmptrapd.conf - ajoutez SNMPTT en tant que gestionnaire de traps :
    traphandle default snmptt
  3. snmptt.ini - configurez le fichier de sortie et le format de l'heure :
    log_file = /tmp/my_zabbix_traps.tmp
    date_time_format = %H:%M:%S %Y/%m/%d
  4. snmptt.conf - d¨¦finissez un format de trap par d¨¦faut :
    EVENT general .* "General event" Normal
    FORMAT ZBXTRAP $aA $ar
  5. Cr¨¦er un ¨¦l¨¦ment SNMP de test :
    IP de l'interface SNMP de l'h?te : 127.0.0.1
    °ä±ô¨¦ :snmptrap["General"]
    Format de l'heure du journal : hh:mm:ss yyyy/MM/dd

Cela a pour r¨¦sultat:

  1. Commande utilis¨¦e pour envoyer un trap :
    snmptrap -v 1 -c public 127.0.0.1 '.1.3.6.1.6.3.1.1.5.3' '0.0.0.0' 6 33 '55' .1.3.6.1.6.3.1.1.5.3 s "teststring000"
  2. Le trap re?u :
    15:48:18 2011/07/26 .1.3.6.1.6.3.1.1.5.3.0.33 Normal "General event" localhost - ZBXTRAP 127.0.0.1 127.0.0.1
  3. Valeur pour l'¨¦l¨¦ment TEST :
    15:48:18 2011/07/26 .1.3.6.1.6.3.1.1.5.3.0.33 Normal "General event" localhost - 127.0.0.1

Cet exemple simple utilise SNMPTT comme traphandle. Pour de meilleures performances sur les syst¨¨mes de production, utilisez le Perl int¨¦gr¨¦ pour transmettre les traps de snmptrapd ¨¤ SNMPTT ou directement ¨¤ Áú»¢¶Ä²©.

6 Voir aussi