Salut,
j'aurai besoin d'aide concernant cet exo car j'ai du mal à comprendre comment il faut que je m'y prenne.
Si quelqu'un pouvait m'indiquer des pistes pour le démarrer ce serait sympa car je n'y arrive pas.
Merci par avance
Le but est de surveiller un certain nombre de services (en local ou en réseau) et de provoquer des actions en cas de d´efaillance d'un service.
Votre logiciel devra prendre en compte un fichier de configuration pour lequel vous utiliserez la syntaxe qui vous semblera la plus judicieuse ; une syntaxe vous est proposée, mais vous êtes libre de l'améliorer ou d'en changer complètement.
Le fichier de configuration devra permettre de configurer des paramétres généraux :Frequency(60) Surveillance toutes les 60 secondes
Mail.config('mailetud','admin@foo.com')Serveur et destinataire pour les courriels sortants
Database.config('dbi:Pg:host=sqletud;dbname=maBaseAMoi','user','pass')
Internet.ftpconfig('serveur','user','pass')
La configuration de votre moteur devra permettre de surveiller :
• le système Linux sur lequel il est exécuté :
System.disk('hda3',95) ou System.disk('/home',90) occupation disque
System.process('apache') vérification de l'existence d'un processus
System.cpuload(10) charge du processeur (faisable facilement ?)
• des services réseau :
Internet.ping('192.168.0.10') machine en vie ?
Internet.tcp('192.168.0.10','25') port toujours ouvert ?
Internet.url('http://foo/bar') existence d'une URL (idem en ftp)
Internet.url('http://foo/bar','/path/to/file') contenu d'une page web
• la base de données :
Database.alive() base en fonctionnement ?
Database.request('select * from c where a>100')
teste la non existence de résultat ; erreur si des lignes sont renvoyées
Voici les actions que le logiciel pourrait déclencher :
• Action.mail('sujet','texte') envoi d'un courriel
• Action.ftp('/full/path/to/local/file','/pub/directory') envoi d'un fichier
• Action.database('update c set a=10 where a>100') commande SQL
Les combinaisons entre les tests et les actions se font ainsi : test => action. Par exemple :
Internet.ping('192.168.0.10') => Action.mail('HS','Machine 192.168.0.10 HS')
System.disk('/home',99) => Action.ftp('/home/user/plein.html','/var/www/')
Votre logiciel devra fonctionner en tâche de fond et déclencher les tests demandés à la fréquence demandée. Il effectura les actions demandées le cas échéant. Il écrira un journal de son activité (log)
sous la forme d'un fichier texte indiquant les tests faits et les actions entreprises.

