/MonitoringAPEFB

projet CERI

Primary LanguageHTML

MonitoringAPEFB

projet CERI - Monitoring

par Pierre-Emmanuel Angoulvant et Franck Boué

step 0

récupérer le projet par le dépot de l'université ou sur github git clone MonitoringAPEFB

si nécessaire pour donner les droits d'executions au script :

chmod +x ./programs.xx

partie collecteur :

step 1 - install for dépendence

cd ./MonitoringAPEFB/client_collecteur
./setup.sh

le setup.sh contient toutes les librairies et paquets

step 2 - cron / automatisation

cd ./MonitoringAPEFB/client_collecteur/collecteur
./cron.sh

le cron.sh permet de executer :

  • (toutes les 5min) Le script client.sh (qui inclue 3 collecteurs différents bash,mixe,python) et Un le script merge.py permet de rassembler tous les données en un seul json et enregistre dans un fichier collecteur_final.json

  • (chaque redemarrage) Le communication_client.py Pour envoyer les infos du collecteur au serveur principal communication_client.py -> ouvre une connection https en SSL avec un certificat qui n'est pas authentifié par un tier + par un user/mot de passe la route de cette connection est : <ip_collecteur>:5000/api/monitoring qui est envoyé en JSON en GET Dépendance : flask

step 3 - Génération des clés pour le https

cd ./MonitoringAPEFB/client_collecteur/communication
./generate_key.sh

partie serveur principal :

step 1 - install for dépendence

cd ./MonitoringAPEFB/serveur
./setup.sh

le setup.sh contient toutes les librairies et paquets

step 2 - cron / automatisation

cd ./MonitoringAPEFB/serveur/stockage_collection
./cron.sh

le cron.sh permet de executer :

  • (toutes les 5min) Le script communication_serveur.sh permet de récupérer les infos de chaque fichier du collecteur ()utilisation de curl et jq). Aprés avoir récupéré les dernières infos d'un collecteur, le script exécute module_alerte_date.py se trouvant dans le dossier affichage permet de nous alerter en cas de situation de crise:

    • pas de signe de vie (+30min)
    • disque dur capacité utilisé en %
    • ram disponible en %
    • utilisation cpu en %
  • (tout les jours) Le script parseur.py parseur web permet de récupérer les dernières infos du site cert.ssi.gouv Il est prévu pour récupérer l'alerte la plus récente ainsi que les autres de la liste qui n'ont pas été ajouté dans le json parseur.json. Dépendance : bsp4 beautifulsoup (pour parser le html)

  • (tout les jours) Le script clean_backup_day5.sh permet de supprimer les archives qui ont plus de 5 jours.

step 3 - ajouter un client collecteur

cd ./serveur/communication

Add line in your file collecteur_hosts.conf:

collecteur_hosts[n]="xxx.xxx.x.x"

step 4 - sauvegarde & restauration

cd ./serveur/stockage_collection
  • script sauvegarde.sh : permet de sauvegarder à l'instant T la base de donées + le parseur dans une archive
  • script restoration.sh : permet de restorer la base de données + le parseur

step 5 - affichage graphique

cd ./serveur/affichage
./interaction.sh

executer interaction.sh : permet affichage en console de graphique. on demande de charger un serveur parmi la liste proposé pour pouvoir afficher par la suite des graphiques d'un graph sur l'historique des infos demandés + une phrase sur la dernière info reçu. dépendance : gnuplot (pour les graph en console)

step 6 - modification pour l'envoie des mails

cd ./serveur/affichage

Change de destinateur et d'émetteur modified line 32,33 in your file module_alerte_date.py:

fromaddr = "franck.boue@alumni.univ-avignon.fr"
toaddr = "franck.boue@alumni.univ-avignon.fr"

for config send mail modified line 60 in your file module_alerte_date.py:

server.login(fromaddr, "XXXXXXXXXX")

si vous voulez changer de serveur de mail : modified line 56 in your file module_alerte_date.py:

server = smtplib.SMTP_SSL('smtpz.univ-avignon.fr', 465)

bonus :

  • Bdd sans serveur : json
  • Les deux scripts pour le collecteur peuvent etre installés sur des serveurs sans avoir à toucher la partie du code : pour cela un fichier collecteur_hosts.conf est placé sur le sereur principal --> chaque ligne du tableau correspond aux ip des collecteurs. Pour en ajouter un ip faut ajouter une ligne du tableau.
  • Template mail permettant de gérer les différents cas de la situation de crise de collecteur (module_alerte_date.py)
  • Envoie de mail depuis le serveur de université
  • HTTPS