IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

[snmp] format de traps snmp


Sujet :

Développement

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut [snmp] format de traps snmp
    Bonjour
    je viens de commencer un projet et j'ai des bornes wifi qui m'envoient des traps snmp pour plusieurs raisons. Donc j'ai installé snmp sur ma machine linux et je viens de configurer le fichier snmptrapd.conf en lui mettant comme traphandle mon programme php triangulation.php qui traite les traps puis extrait les information nécessaires.
    J'ai entendu dire que les traps reçus changent de format (hexadecimal, ascii,...) quelque fois donc je voudrais forcer le leur affichage en un seul format.
    J'ai entendu parler d'options du lanceur du service snmptrapd qui peuvent aider mais je ne sais pas ce que c'est car je suis débutant en réseau.
    quelqu'un pourrait m'aider svp
    Merci
      0  0

  2. #2
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut
    ok maintenant je vois ce que c'est le lanceur du service snmptrapd. c'est un fichier genre etc/rc.d/snmptarpd. par contre je ne le trouve pas je trouve que etc/init.d/snmpd
    pour mon projet je n'ai pas besoin de configurer snmpd car ma machine sert juste à recevoir des traps. mais il me faut configurer snmptrapd.conf ce que j'ai fait. mais pour quoi je n'ai pas de lanceur snmptrapd?
    merci
      0  0

  3. #3
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut
    Bon, en fait j'ai compris un peu mieux, j'ai ouvert le fichier etc/init.d/snmpd et je me suis rendu compte qu'il fallait configurer etc/default/snmpd ce qui va me permettre d'avoir mon fichier var/run/snmptrapd.pid après avoir lancer le service.
    mais je ne sais toujours pas comment forcer l'affichage des traps en un seul format don je retourne à mes moutons.
    si vous avez une idée n'hesitez pas
    MERCI
      0  0

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Par défaut
    Salut,

    Bon vu que t'as l'air d'en connaitre déjà pas mal, ça va m'epargner de trop détailler.

    Donc j'ai installé snmp sur ma machine linux et je viens de configurer le fichier snmptrapd.conf en lui mettant comme traphandle mon programme php triangulation.php qui traite les traps puis extrait les information nécessaires.
    J'espère que tu parle de net-snmp, et j'aimerais jeter un coup d'oeil au fichier triangulation.php si possible.

    ok maintenant je vois ce que c'est le lanceur du service snmptrapd. c'est un fichier genre etc/rc.d/snmptarpd. par contre je ne le trouve pas je trouve que etc/init.d/snmpd
    Tout dépend de ta distribution et vu que tu ne l'as pas précisé on ne peut pas te donner l'emplacement exact du fichier.

    je me suis rendu compte qu'il fallait configurer etc/default/snmpd ce qui va me permettre d'avoir mon fichier var/run/snmptrapd.pid après avoir lancer le service.
    Bon ok, va falloir que j'intervienne la.

    Mon explication tient pour la distribution fedora. Tester et vérifier sur des switchs.

    snmptrap est un daemon qui écoute les traps SNMP circulant sur le port UDP 162. Donc truc a la con qu'on oublie souvent : ouvrir le port 162.
    Il faut configurer le fichier “/etc/snmp/snmptrap.conf” pour exécuter des commandes “traphandle” qui vont permettre d'exécuter d'autres scripts (SHELL ou PERL ou PYTHON) selon le trap reçu.
    Voyons dans un premier temps comment configurer ce deamon, et nous verrons ensuite comment récupérer ces données et les traiter.

    Il y a deux fichiers à configurer, le premier (snmpd.conf) permet d'autoriser les traps à arriver sur ton poste, et donc de recevoir les traps; le second (snmptrapd.conf) permet de spécifier le format des traps et de les traiter.

    Premier fichier : /etc/snmp/snmpd.conf

    voila a quoi ressemble le mien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #SECTION Trap Destinations
    
    #trapcommunity: Defaut trap sink community to use
    #arguments: community string
    
    trapcommunity secret
    
    #trapsink: A SNMPv1 trap receiver
    #arguments: host [community][portnum]
    
    trapsink localhost
    trapsink network // définie plus haut dans ton fichier snmpd.conf
    
    // on peut aussi mettre des adresses ex trapsink 192.168.0.68
    
    #inform: A SNMPv2 inform (acknowedged trap receiver)
    #arguments: host [community][portnum]
    
    informsink localhost
    informsink network
    
    #authtrapenable: Should we send traps when authentification failures occur
    #arguments: 1|2 (1=yes, 2=no)
    
    authtrapenable 1
    il ne reste plus qu'à lancer l'agent snmpd :
    # /etc/rc.d/init.d/snmpd restart
    On pourra lancer dans une autre fenêtre un sniffer réseau comme tcpdump pour voir les échanges agent SNMP/manager SNMP :
    # tcpdump -vv -i lo

    Deuxième fichier: /etc/snmp/snmptrapd.conf

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    format2 %02.2l/%02.2m/%y %02.2h:%02.2j:%02.2k %W de %A\n
    disableAuthorization yes
    doNotRetainNotificationLogs yes
    traphandle default /var/www/html/recuptraps.pl
    et voila le fichier recuptraps.pl :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    #!/usr/bin/perl
    #A simple trap handler
    
    my $TRAP_FILE = "/tmp/traps_all";      
    
    my $host = <STDIN>;     # Read the Hostname - First line of input from STDIN
     chomp($host);
    my $ip = <STDIN>;       # Read the IP - Second line of input
     chomp($ip);
    
    while(<STDIN>) {
            chomp($_);
            push(@vars,$_);
    }
    
    open(TRAPFILE, ">> $TRAP_FILE");
    $date = `date`;
    chomp($date);
    print(TRAPFILE "New trap received: $date for $OID\n\nHOST: $host\nIP: $ip\n");
    foreach(@vars) {
    	if(@vars =~ /SNMPv2-SMI/){
    		print "c'est rien\n";
    	}
    	else {
            print(TRAPFILE "TRAP: $_\n");
    	}
    }
    print(TRAPFILE "\n----------\n");
    close(TRAPFILE);
    Ouais, c'est pas génial, mais ça ira. Tu peux le modifier. Surtout que j'ai du le trouvé sur le net.

    Ensuite on fait un test de compilation :
    /usr/sbin/snmptrapd -c /etc/snmp/snmptrapd.conf
    Si aucune erreur n'est renvoyée, le fichier de configuration est correct.


    Revenons à la configuration du fichier snmptrapd.conf, et expliquons l'utilité de chaque ligne:

    La première ligne format2 %02.2l/%02.2m/%y %02.2h:%02.2j:%02.2k %W de %A\n
    permet de spécifier le format des données reçues.
    J'ai entendu dire que les traps reçus changent de format (hexadecimal, ascii,...) quelque fois donc je voudrais forcer le leur affichage en un seul format.
    C'est la dessus qu'il faut jouer pour modifier le format.

    L'option disableAuthorization a été introduite pour des raisons de sécurité et est devenue obligatoire avec la version 5.3 du paquet net-snmp. Cette option n'est pas reconnue par les versions antérieures.

    Mettre « doNotRetainNotificationLogs yes » permet d'annuler le support de NOTIFICATION-LOG-MIB. Normalement, le programme snmptrapd conserve les traps reçues, lesquelles peuvent être récupérées par la suite.

    Voila, j'espère que tu y verras plus clair maintenant.
      0  0

  5. #5
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut
    merci beucoup pour ton aide alors
    J'espère que tu parle de net-snmp, et j'aimerais jeter un coup d'oeil au fichier triangulation.php si possible.
    oui je parle de snmp, mais en ce qui concerne le fichier triangulation.php je viens de le créer et j'ai mis dedans juste la partie finale de mon projet. C'est à dire la partie du code qui me calcule les coordonnées qu'il me faut...
    Donc il me manque toute la partie qui analyse les traps et qui prends les informations necessaires.
    Tout dépend de ta distribution et vu que tu ne l'as pas précisé on ne peut pas te donner l'emplacement exact du fichier.
    En fait j'ai ubuntu, j'ai cherché et je trouve que le fichier etc/init.d/snmpd dont le début ressemble à

    #! /bin/sh -e
    ### BEGIN INIT INFO
    # Provides: snmpd snmptrapd
    # Required-Start: $network $local_fs
    # Required-Stop: $network $local_fs
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 6
    # Short-Description: SNMP agents
    # Description: NET SNMP (Simple Network Management Protocol) Agents
    ### END INIT INFO


    Donc je crois qu'il est valable poue snmp et snmptrapd, non?
    aussi, pour le fichier recuptraps.pl il sert juste à récupérer les traps. je dois le changer non? car mon fichier triangulation.php doit récuperer les traps que m'envoient les bornes wifi hp, puis il en extrait les rssi pour pouvoir faire la partie triangulation... mais pour l'instant il est presque vide .

    Ensuite on fait un test de compilation :
    /usr/sbin/snmptrapd -c /etc/snmp/snmptrapd.conf
    Si aucune erreur n'est renvoyée, le fichier de configuration est correct.
    j'ai essayé ce qui est au dessus et il n' ya pas eu d'erreurs.
    voilà comment j'ai configuré mon etc/snmp/snmptrapd.conf :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    traphandle default /chemin/triangulation.php >> /chemin/trace.log
    disableAuthorization yes
    pour ce qui de snmpd.conf je n'ai pas eu à le changer.

    La première ligne format2 %02.2l/%02.2m/%y %02.2h:%02.2j:%02.2k %W de %A\n
    permet de spécifier le format des données reçues.
    je vais essayer celle ci maintenat.

    Merci encore. j'éspère que ce que j'ai mis est assez claire.
    si tu as un suggestion n'hesites pas
      0  0

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Par défaut
    Re,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    j'éspère que ce que j'ai mis est assez claire.
    Heu... alors oui et non, j'y viens.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    J'ai cherché et je trouve que le fichier etc/init.d/snmpd.
    ça c'est l'exécutable, faut pas y toucher!
    Ce que je voulais c'est voir la partie du fichier snmpd.conf qui concerne les traps, c'est ce fichier et snmpdtrapd.conf qu'il faut configurer. C'est tout.

    Et j'aimerais voir le fichier etc/snmp/snmptrapd.conf entier. As-tu spécifier le format en début.

    n'ai pas peur d'utiliser man snmptrapd pour t'aider.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    si tu as une suggestion n'hesites pas
    Ok, donc tout d'abord, tu peux dans un premier temps tester en local, en envoyant des traps bidon pour voir comment ton programme réagit, et n'hésite pas à t'aider de ethereal pour vérifier ce qui se passe sur le réseau.


    Ouvre sur deux terminaux différents, pour tester :

    Premier terminal :

    (1)[root@XXX]# snmptrapd -f -Le

    (3)2006-05-29 11:33:14 0.0.0.0(via UDP: [192.168.XX.XX]:32920) TRAP, SNMP v1, community secret HOST-RESOURCES-MIB::hrProcessorLoad.8 Warm Start Trap (0) Uptime: 0:00:00.01

    Deuxième terminal :

    (2) [root@XXX]# snmptrap -v1 -c secret 192.168.XX.XX .1.3.6.1.2.1.25.3.3.1.2.8 0 1 i 1

    Explications :

    (1) On lance le programme snmptrapd pour récupérer des traps
    (2) dans un autre terminal, on lance la commande permettent de générer une trap
    (3) On récupère bien la trap


    Voila pour le tester;

    Sinon j'ai une question.
    On est d'accord sur le fait que triangulation.php sera lancé à chaque fois qu'une trap sera reçu. J'espère donc que ton script n'est pas trop lourd.

    Personnellement, j'avais travaillé différemment, le script recuptraps.pl n'a pour role que de rendre sous un fichier text les traps reçues.
    Un autre sript lancé régulièrement avec cron me permetter de traiter ce fichier et d'envoyer dans une base les données pertinante.
    Ainsi, la lecture des données se faisait avec php et la base de données pour pouvoir jouer sur cette base.
    (bon ok c'est pas très clair, mais au final j'étais content)
    Découper le travail permet de mieux voir ou se situe le problème.

    j'aimerais savoir aussi si tu arrives à recevoir les traps ou si le soucis provient du fait de pouvoir traiter les données. On sait pas trop ou tu en es.

    voila, informe nous de ton avancé.
    Bon courage.
      0  0

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Citation Envoyé par zakalova
    Bon, en fait j'ai compris un peu mieux, j'ai ouvert le fichier etc/init.d/snmpd et je me suis rendu compte qu'il fallait configurer etc/default/snmpd ce qui va me permettre d'avoir mon fichier var/run/snmptrapd.pid après avoir lancer le service.
    mais je ne sais toujours pas comment forcer l'affichage des traps en un seul format don je retourne à mes moutons.
    si vous avez une idée n'hesitez pas
    MERCI

    j'ai fais une recherche sur tt le repertoire /etc/init... mais j'ai trouvé aucun fichier snmpd!!
    meme ds les autres repertoires!!!
    tu veux bien me dire prkoi?
    merci
      0  0

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 188
    Par défaut
    Re,
    Citation Envoyé par hindus
    j'ai fais une recherche sur tt le repertoire /etc/init... mais j'ai trouvé aucun fichier snmpd!!
    meme ds les autres repertoires!!!
    tu veux bien me dire prkoi?
    Sur une mandriva, c'est peu-être pas au même endroit.
    Sinon tu connais la fonction "find"?
    Si tu as bien installé "net-snmp" le fichier existe forcement.
    Et je n'y connais pas grand chose en Mandriva, mais soit sur qu'il existe de nombreuses méthodes, commandes, pour trouver ce que tu cherches.

    Mais sache que la manière de configurer snmp varie sensiblement d'une distribution à l'autre. Ce qui a était fait avec zakalova ne pourra surement pas s'appliquer à l'identique avec ta distribution...
      0  0

  9. #9
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut
    ok, bien que l'on sorte un peu du domaine du développement réseau (pour aller vers de la programmation), je peux t'indiquer de plus t'orienter vers un "remodelage" de ton fichier triangulation.php pour n'afficher que les données nécessaires. Cherche du coté des regex.

    Et puis zut, parce que tu me sembles être un bon gars qui aime bien travailler :
    http://cyberzoide.developpez.com/php4/regex/

    Merci j'apprécie beaucoup ton aide
    je me plonge dessus
      0  0

  10. #10
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Citation Envoyé par zakalova
    ok maintenant je vois ce que c'est le lanceur du service snmptrapd. c'est un fichier genre etc/rc.d/snmptarpd. par contre je ne le trouve pas je trouve que etc/init.d/snmpd
    pour mon projet je n'ai pas besoin de configurer snmpd car ma machine sert juste à recevoir des traps. mais il me faut configurer snmptrapd.conf ce que j'ai fait. mais pour quoi je n'ai pas de lanceur snmptrapd?
    merci

    oui justement, jusqu'à maintenant je fais qu'envoyer les traps , mais ce que je veux moi, c'est de comment recevoir les traps pour certains evenements??
    merci, j'en ai vraiment besoin
      0  0

  11. #11
    Membre confirmé
    Profil pro
    Ingénieur Développement
    Inscrit en
    Juin 2006
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Développement

    Informations forums :
    Inscription : Juin 2006
    Messages : 140
    Par défaut
    Ouais c'est super tout fonctionne, mon maitre de stage me prend pour einstein, l'entreprise gagne des millions grace à moi, je suis de suite embauché, c'est la fête, je vais te présenter ma soeur, vive les serpentins et les petits anges dans le ciel,..."
    bon voilà les traps que je voulais sont bien là et au même format
    merci pour l'aide fara morgana
      0  0

Discussion fermée
Cette discussion est résolue.

Discussions similaires

  1. [snmp] Générer des traps
    Par nicoho dans le forum Développement
    Réponses: 7
    Dernier message: 16/06/2011, 14h34
  2. [snmp] afficher le contenu d'une trap snmp dans un fichier
    Par liverbird dans le forum Développement
    Réponses: 4
    Dernier message: 20/07/2007, 13h49
  3. trap snmp quelles paramètres
    Par ange1708 dans le forum Développement
    Réponses: 2
    Dernier message: 23/03/2007, 16h45
  4. trap snmp
    Par rocco4 dans le forum Développement
    Réponses: 3
    Dernier message: 13/09/2004, 21h07
  5. [SNMP] différences entre traps et notifications?
    Par fadoua dans le forum Développement
    Réponses: 2
    Dernier message: 06/07/2004, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo