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

Services Web Java Discussion :

Est ce possible? l'exploitation de SNMP via un webservice dans un intranet


Sujet :

Services Web Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Points : 67
    Points
    67
    Par défaut Est ce possible? l'exploitation de SNMP via un webservice dans un intranet
    Bonjour,

    Je voulais poster une idée qui m'est venu en lisant un document qui parlait de l'administration réseau en utilisant SNMP et je me suis posé la question: serait il possible d'exploiter cela via un webservice dans un réseau d'entreprise.c'est une idée qui a besoin de votre iade pour savoir si elle est faisable ou pas et si la façon dont je pensais la faire est possible techniquement

    En effet, voilà a quoi je pensais, il s'agit de mettre en place un mecanisme au sein d'un reseau d'entreprise hétérogene ( plusieurs types d'OS) peremettant a chaque PC ou station au démarrage de communiquer toute sa configuration matérielle ( a définir biens ur avec un accord avec l'administrateur systeme) à un serveur dédié qui traitent ces informations et les stockent dans une base de données , et qui se charge par la suite de gérér le parc machine et les eventuels changements qui peuvent surgir chaque jour ( à définir utlérieuement aussi ) . Mon soucis est la phase de collecte d'information par chaque PC et son envoie au serveur ; j'ai pensé a exploiter SNMP et sa fameuse MIB et ce en injectant les données de chaque PC dans un format XML que l'on envoie au serveur avec SOAP , le serveur a l'ecoute dénivche chaque message le traite et récupere ces infos de nouveau et les stocke dans la base ou en fait ce qu'il veux aprés .

    C'est ca grossomodo mon idée , ca peut vous paraiytre peut etre bizarre , c'est pourquoi je l'expose ici , alors si ca vaut le coup comment voyez vous la bonne architecture pour impelmenter ce service , sinon dites moi ce que j'ai loupé

    et encore merci pour votre aide

  2. #2
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    C'est grossomodo mon projet ...

    Une interface php qui collecte les infos de chaque poste via snmp (+ des info ajoutées en recompilant net-snmp), stoque tout ça dans une base de donnée, l'affiche et en tire des informations (ex nombre de licence, occupation des postes..) Et à coté de ça, snmptrapd qui reçoit les traps générées par les machines et les stoques dans la base pour permettre de les afficher sur le frontal web.
    Le tout sur divers type de machine / os.

    Si tu t'es lancé dans la réalisation je suis interessé par le chemin que tu as emprunté.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Points : 67
    Points
    67
    Par défaut
    Salut,

    Ou en es tu avec ton projet ..j'espere que tu avances..sinon je te propose de bosser ensemble moi je debute normalement lundi

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Petit topo sur mon projet
    Comme tu le demandes (et que de toute façon je dois faire une présentation du projet dans une semaine) je vais faire un petit topo sur ce que j'avais à faire, le cheminement que j'ai effectué et rapidement une présentation du résultat à l'heure actuelle.

    PRESENTATION
    Tout d'abord le réseau, il est composé d'environ 550 machines utilisés quotidiennement par quelques 470 personnes, des profs, des élèves ingénieurs et des chercheurs. Le parc est principalement composé de deux sortes de machines : windows xp pro, fedora core 4. Il n'y avait pas, à ma connaissance, d'exploitation de snmp. Le but du projet était donc de faire une exploration des possibilités du protocole, de pouvoir interoger ponctuellement un machine sur le réseau afin d'en obtenir les informations la concernant et aussi de récupérer les évènements système en vu de l'installation d'un système de clonage qui provoquerait la pertes des dits évènements système habituellement accessible sur la machine. (Note : le système de clonage est une sorte de manager de système d'exploitation, permettant à un utilisateur de changer le système d'une machine. Ce n'est pas un dual boot, le système format tout et install l'image d'un autre système d'exploitation. Cela est mis en place pour qu'un enseignant puisse, au besoins, passer une salle windows en salle linux, sans qu'un membre du service technique n'ait a intervenir. Vous aurez noté que comme l'ancien système dégage, on perd les évènements qui y étaient enregistrés, ce qui peut être génant si on veut pouvoir consulter un "historique" de ces alertes.) L'ensemble de ces informations devaient être accessible à tout moment via un frontal web de plus elles devaient permettrent un traitement visant à rendre certaines informations comme le nombre de licence ou l'utilisation d'une salle.

    ETUDE
    J'ai d'abord passé pas mal de temps à chercher sur le web ce qu'était snmp, comment celà marchait et qu'est ce qu'on pouvait en tirer. Je passe le principe du protocol, si quelqu'un veut un éclaircicement je peux y revenir. La première phase à été de faire fonction un agent sur chaque type de machine et d'en soutirer des informations. Sur les 3-4 versions de snmp seul la V3 est sécurisé, de plus c'est celle qui est appelé à être utilisé même si ce n'est, pour le moment, pas toujours le cas. L'agent linux employé (Net-snmp de net-snmp.org) fonctionne correctement en V3 et retourne des informations pertinentes. L'agent windows quand a lui ne fonctionne pas en V3, quand au portage de l'agent linux sous windows, la host mib n'est pas implanté et on est donc privé d'une bonne partie des informations interessantes. La solution conciste a faire tourner l'agent microsoft en n'acceptant que les adresses de la boucle locale et à y ajouter l'agent net-snmp (sous windows toujours) en redirigeant les requetes concernant la host mib vers l'agent windows (et oui il sait faire tout ça ce petit malin). Ca parait simple comme ça mais a mettre en oeuvre ça l'est un peu moins quand on part de rien. Comme j'avais du recompiler net-snmp j'en ai profité pour ajouter une branche à la mib, c'était une des questions posées par mon tuteur "peut on ajouter de l'information dans la mib ?".
    Une fois la partie agent fonctionnelle j'ai fais un listing des informations commune aux différents types de machines, après présentation auprès de mon tuteur, on a sélectionné celles qui nous semblaient pertinentes. Sur son avis, la plus grande partie des informations réseaux ont été écarté.
    informations sur les interfaces réseau : adresse mac, erreur in/out
    informations sur les disques installés et leur utilisation : type, taille, bootable ou non
    informations sur les logiciels installés : type, date d'installation
    informations sur les processus en fonctionnement : nom, chemin, paramètres, type
    divers informations : contact, localisation, nom de la machine, système utilisé, ainsi que des informations ajoutées par le service technique.
    (On peut noter que des informations sur les tables de rootage, sur les protocoles ip tcp udp snmp et autres sont disponibles et pourraient, à l'avenir, être exploitées de la même manière) Afin de rendre la consultation et le traitement de ces informations possible à tout moment, il a été décidé de les stocker dans une base de données mysql.
    En ce qui concernes les évènements système la volonté était d'utiliser des traps snmp pour les capter, il existe un système qui les converti automatiquement sous windows mais rien d'équivalent sous linux (à ma connaissance, si je dis une bêtise reprenez moi ça me serait utile.). En cherchant ce système sous linux j'ai croisé à plusieurs reprise "syslog", c'est un mécanisme d'enregistrement des évènements système sous linux, ce qui était interessant de ce mécanisme est qu'il était capable de générer des paquetes à destination d'un hote. J'ai donc codé un démon en c dont le rôle est de receptionner ces messages et de les enregistrer dans la base de données. De plus j'ai trouvé un service (NTsyslog) sous windows qui permet de transformer un évènement système en paquet syslog et de l'envoyer à un hote, j'avais donc un moyen d'uniformiser la récupération des évènements système.
    L'utilisation des traps est donc laissé de coté, pour deux raisons, le fonctionnement en "ligne de commande" est assez obscure (aussi si quelqu'un pouvait m'éclaircir la dessus je suis preneur, les divers sujets que j'ai laissé la dessus sont restés sans réponse) et aussi parce que l'utilisation qu'on voulait en faire n'est visiblement pas possible et que syslog le remplace avantageusement.
    En ce qui concerne le frontal web, php intègre des fonctions "snmp" le problème est que la doc en snmp v3 est souvent tronqué et que certaines fonctions (snmptable) n'existent pas. Dans un premier temps, j'ai essayé de faire un snmptable like, mais le temps de récupération était très long, par exemple pour récupérer les informations concernant les quelques 750 packages installé sous une machines linux, celà prenait plus de 6 minutes. La solution à été d'executer la commande snmptable et de récupérer / traiter le flux de sortie le temps est réduit à quelques dixaines de secondes et le nombre de requetes divisé par 10 il me semble.

    RESULTATS
    Pour le moment, j'ai un système capable d'interoger une machine ponctuellement, on a stocké la salle dans le champs "location", le nom de la machine correspond au nom de la machine sur le réseau. On peut donc rechercher une machine par son nom ou par le nom de sa salle, une partie de l'interface affiche les alertes récement receuillies, les logiciels installés ainsi que le nombre d'installation, une partie machine permet de visualiser les informations propres à une machine.
    Derrière tourne donc un script php, composé d'un objet "machine", cet objet peut fonctionner sur les infos de la bd, ou sur des infos snmp si la machine en question est allumée (test avec ping et analyse du flux de sortie). Quand l'utilisateur décide de consulter une machine, l'objet correspondant est créé et ajouté à sa session, tant qu'il parcourt les pages de la machine, les informations sont ajoutées à l'objet, quand il ferme l'onglet correspondant elles sont enregistrées dans la bd. Sur chaque poste, tourne une configuration agent (net snmp sur linux, net snmp + agent microsoft sous windows) ainsi qu'une configuration syslog (/etc/syslogd.conf sous linux, ntsyslog sous windows), un démon syslog tourne sur la machine serveur. Pour que ce soit joli, j'ai fais une jolie feuille de style "porte coulissantes" accopagné d'un objet menu en php, qui permet d'ajouter/supprimer dynamiquement un onglet, on consulte donc toutes les machines que l'ont veut sans changer de page (et ça c'est beau .. enfin moi je trouve ! ).
    Je vous poste quelques screen pour visualiser la chose :









    (Note : pour la partie processus je vous laisse imaginer quand la machine est allumé, je n'en avais pas sous la main..enfin si mais pas la bonne !)

    Ce qu'il me reste à faire, finaliser le démon syslog, faire le même genre de démon pour les traps snmp (si je suis motivé), faire un système efficace d'enregistrement des informations dans la bd (détecter et traiter des cas comme le changement d'un interface réseau d'un post vers un autre, rennommage d'une machine etc), séparer éventuellement les logiciels windows des logiciels linux (linux est très bavard puisqu'il met une entrée dans la mib par package qu'il installe, chez moi j'en suis a 750 avec une installation de base), traiter les évènements système pour obtenir l'utilisation d'une salle ou d'un groupe de machine, faire un beau rapport, gagner au loto ...

    Si quelqu'un à une remarque, une idée d'amélioration ou quoi que ce soit je suis preneur, de même si vous voulez un coup de main

    PS : je vous met quand même une petite biblio on sait jamais si je change de mail que les générations futures puissent retracer mon parcours

    B-A BA SNMP
    Generalites et differences V1 V2 V3
    Bibliotheque de mibs
    modifier mibb
    inserer dans mib
    configuration net snmp
    convertion d'event en trap sous win
    Idem
    configuration agent net snmp linux
    how to snmp linux
    utiliser net snmp ET l'agent windows en même temps
    Changer le port de l'agent snmp windows
    php et snmp (v1 v2c v3)

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 22
    Points : 19
    Points
    19
    Par défaut demande d'aide pfe
    bonjour je suis intéressé par ce que vous avez présenté,je suis en train d'élaborer une application web de gestion de configuration d'un parc informatique,mon application en gros devrait être capable de scanner le réseaux,récupérer tt les informations concernant les os, les périphériques,les logiciels installés,les adresses ip,et qui me permet aussi de ré ajouter une composante sur le réseau,sincèrement j'ai sais pas par ou commencer,mon pfe paraît très vaste,en cherchant j'ai trouvé deux logiciels qui on qualifierait de consistant ce sont OCS inventory et GLPI,et aussi j'ai vu que le protocole snmp me permettrait a récupérer des données et même a modifier,pourriez vous m'aidez svp je vous en serez reconnaissant

Discussions similaires

  1. Est il possible de modifier la position d'une scroll dans iframe
    Par Mho37 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/11/2008, 11h05
  2. Est-il possible de retourner la source d'une page dans une variable ?
    Par sachav dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/12/2007, 18h02
  3. [SQL] Est-il possible d'afficher le résultat d'une requête dans un cadre
    Par dessinateurttuyen dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/07/2006, 17h52
  4. [C#] Est-il possible d'exploiter une base .mdb sans Access en local ?
    Par doudoustephane dans le forum Accès aux données
    Réponses: 2
    Dernier message: 17/07/2006, 14h50

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