Le package NetworkTools permet de monitorer des ressources réseau et offre différents outils pour faire des Pings, tests d’ouverture de port TCP, tests de site Web (HTTP), scanner de port, Wake-On-Lan ou encore résolution DNS.

Le code source de ce package est en ligne sur : https://github.com/myconstellation/constellation-packages/tree/master/NetworkTools

Installation

Depuis le “Online Package Repository” de votre Console Constellation, déployez le package NetworkTools :

image

Une fois le package télécharger votre repository local, sélectionnez la sentinelle sur laquelle déployer le package.

Pour finir, sur la page de Settings, vous pouvez définir les ressources à monitorer :

image

Si vous n’avez rien à monitorer vous pouvez supprimer (bouton “Remove”) le setting ou encore effacer le JSON. La configuration du monitoring réseau est expliquée ci-dessous.

Bien entendu vos  pouvez également déployer ce package manuellement dans la configuration de votre Constellation. Par exemple sans aucun monitoring :

Configurer le monitoring

Ce package expose différentes fonctions (MessageCallbacks) dans votre Constellation pour tester des ressources réseau (Site Web HTTP, port TCP, Ping, résolution DNS, scanner de port, etc..). Il peut aussi monitorer à intervalle régulier des ressources réseau et publier le résultat dans les StateObjects Constellation.

Pour cela le paramètre  “Monitoring” est un tableau JSON qui contient la liste des ressources à monitoring.

Il y a trois type de monitoring :

  • Ping : effectue un ping (IMCP Echo) vers une adresse IP ou DNS
  • Tcp : effectue un test d’ouverture de socket que un port TCP
  • Http : effectue un appel HTTP et optionnellement une vérification de la réponse

Chaque ressource à monitorer est identifiée par un nom qui sera utilisé comme nom de StateObject pour la publication du résultat.

De plus chaque ressource peut spécifier son intervalle de temps entre deux test (par défaut fixé à 60 secondes).

Par exemple pour pinger une machine toutes les minutes :

Pour pinger la même machine mais toutes les 10 secondes :

Pour monitorer un service TCP sur le port 80 toutes les 10 secondes :

Pour monitorer un site Web HTTP :

La même chopse mais en vérifiant le réponse HTTP avec une expression régulière :

Détails du package

Les Settings

Nom Type Détail Description
Monitoring Object JSON Optionnel La liste des ressources réseau à monitoring (Ping, port TCP ou site web)

Les StateObjects

Vous retrouverez autant de StateObjects que vous avez de ressources monitorées.

Par exemple

Nom Type Description
<< resource monitorée >> NetworkTools.MonitoringResult Le StateObject représente le dernier état connu de la ressource (état et temps de réponse)

image

Les MessageCallbacks

Le package expose 6 MessageCallbacks :

Nom Réponse (saga) Description
CheckHttp Int64 Test une URL HTTP et retourne le temps de réponse en seconde (ou –1 si pas de réponse).
CheckPort Int64 Test un port TCP et retourne le temps de réponse en seconde (ou –1 si pas de réponse).
DnsLookup String[] Résolution DNS d’une adresse et retourne la liste des adresses IP
Ping Int64 Ping une adresse IP ou DNS et retourne le temps de réponse en seconde (ou –1 si pas de réponse).
ScanPort Dictionary<int, bool> Scanne les ports TCP d’une IP ou DNS et retourne un dictionnaire des ports TCP testés associés à leurs états (ouvert ou fermé)
WakeUp Boolean Envoi un paquet “Wake On Lan” à une adresse MAC

image

Quelques exemples

  • Envoyer une notification si une ressource réseau ne répond plus
  • Surveiller ses ressources réseau (serveurs, services ou sites web) avec une bande de LED WS2801 et un Arduino/ESP
NetworkTools : surveillez et testez vos ressources réseau
Editer la page sur GitHub
Étiqueté avec :                            

Rejoignez la discussion sur le forum Constellation