[Architecture] Service de scan HTTP

Service de scan HTTP [Architecture] - Divers - Programmation

Marsh Posté le 03-02-2019 à 23:49:57    

Bonjour à tous,
 
Je me demandais quelle serait les solutions pour réaliser un service permettant de scanner un site web toutes les X minutes.
 
Explication du service:  
   Un client peut enregistrer un à n nom de domaine et associer à chaque nom de domaine un intervalle de temps entre chaque "scan".
Cet intervalle serait 1 min, 5 min, 1 jour, 1 semaine, 1 mois.
Le client pourrait en plus de ce scan régulier, lancer d'autres analyses périodiquement.  
 
Un scan est d'une durée d'environ 1sec, et les analyses périodique prennent entre 10 et 50sec
 
Je me demande donc comment "garantir" la périodicité des scan dans une architecture multi serveur ?
 
Une première idée serait de séparer les deux architectures. Une pour les scan régulier, et une autre pour les analyses périodiques.
Une seconde idée serait de mettre un système de queue, où on séparerait les domaines à scanner toutes les minutes, ceux à scanner toutes les 5 minutes, etc... Mais dans ce cas comment être sur de la périodicité ?  
Ou alors un système de batch serait plus intéressant ?
 
Bref, je suis preneur de piste/idée de comment structurer ce service.
 
Merci d'avance,
dd
 
 

Reply

Marsh Posté le 03-02-2019 à 23:49:57   

Reply

Marsh Posté le 04-02-2019 à 17:56:18    

Juste comme ça : le site web qui va se faire scanner, il a donné son accord à celui qui a développé les scripts de scan périodique ? Je pose cette question dans le cas où le proprio du site scanné est différent de l'auteur des scripts faisant le scan. En effet, dans ce dernier cas, c'est interdit de faire ça sans accord :o
 
Sur un plan intellectuel, regarde du côté des algos d'ordonnancement. Tu regardes les jobs à faire et tu les planifies en fonction de leur date/heure de début (calculée en fonction de la périodicité) et de leur processing time. Pour faciliter le calcul, tu considères qu'un job périodique, c'est x jobs identiques décalés.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 06-02-2019 à 11:39:58    

Oui tu as raison, sauf si je travail à la BnF  :o  
Plus sérieusement, le coup de scanner un site web n'est qu'un exemple d'usage. L'architecture que je cherche devrait fonctionne pour un scan dns, un scan réseau, voir même un service de ping  :o  
 
Tu me proposes donc de faire un sorte de plan d’exécution avec un algo d’ordonnancement avant de lancer l’exécution. Plan d’exécution qui serait remit à jour à chaque ajout (ou par batch d'ajout). Et l'avantage, c'est qu'il permettrait d'estimer si il faut un "second" batch car le premier ne permet pas de trouver de solution viable. c'est d'autant plus simple que les "scan" prennent un temps a peut près similaire.
J'aime bien l'idée.  
 
Merci :)


Message édité par dede_sav le 06-02-2019 à 11:40:13
Reply

Marsh Posté le 06-02-2019 à 14:04:30    

Tu prends peut-être aussi le problème par le mauvais bout. Si c'est pour du DNS, il vaut mieux utiliser les principes de synchronisation existants pour ce type de protocole : https://fr.wikipedia.org/wiki/Domai [...] tionnelles
 
Pour le ping, de plus en plus de serveurs désactivent leur réponse à ce type d'interrogation pour des questions de sécurité.
 
Si ton service est plutôt orienté supervision, tu devrais utiliser le protocole SNMP, très adapté au polling ;)
Après, oui, ton pb est ce qu'on appelle un problème d'ordonnancement à n tâches et m machines avec m initialisé à 1 et si pas de solution trouvée, m passe à 2 puis 3... jusqu'à trouver une solution.Regarde l'algo RM, ça devrait convenir : https://fr.wikipedia.org/wiki/Rate-monotonic_scheduling


Message édité par rufo le 06-02-2019 à 14:17:23

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed