Skip to content

Démon Ping

Jérôme Bousquié edited this page Dec 5, 2018 · 17 revisions

Cette fonctionnalité permet à Winlog de démarrer un démon qui va pinguer en boucle toutes les machines connues et remonter les résultats en base de données.

Installation

Il est nécessaire au préalable d'installer l'utilitaire fping sur le serveur Winlog.
Debian / Ubuntu

sudo apt install fping

Red Hat / Centos

sudo yum install fping

Avant d'aller plus loin, il nécessaire de s'assurer que le serveur Winlog peut pinguer les machines qu'il surveille.

fping adresse_ip_d_une_machine_du_parc

Si aucune réponse n'est obtenue, il faut s'assurer par exemple :

  • que le protocole ICMP est bien autorisé sur le réseau du serveur Winlog vers les machines du parc,
  • que l'antivirus ou le pare-feu de la machine interrogée ne bloque pas le ping,

sans quoi le démon ping fonctionnera quand même mais ne remontera aucune donnée à Winlog.

Droits

Il convient ensuite d'ajuster les droits sur certains fichiers dans le répertoire admin/ping/ :

  • les fichiers winlog_ping.conf, liste_ip.txt, liste_ping.txt et ping_error.log doivent être accessibles en lecture/écriture à l'utilisateur apache/php (www-data sur les systèmes Ubuntu par exemple).
  • les fichiers winlog_ping.sh, winlog_start_ping.sh et winlog_stop_ping.sh doivent être exécutables par cet utilisateur.

Configuration

Enfin, il suffit d'éditer le fichier winlog_admin_conf.php pour paramétrer le ping.
Il est probable qu'il n'y ait rien à faire si les réglages par défaut conviennent (voir en bas de page, l'intégralité du fichier).
Les valeurs à vérifier ou à modifier sont essentiellement celles-ci :
Pour activer/désactiver le mode ping :

// Le démon de ping doit-il être activé. Mettre à false pour désactiver.
$mode_ping = true;

Le timeout est le temps maximal d'attente d'une réponse d'une machine au ping :

// timeout si pas de réponse au ping en milliseconde
$ping_timeout = 100;

La localisation du binaire php sur le système est impérative :

// chemin vers php : où se trouve le moteur php sur le système
$php_path = "/usr/bin/php5";

Au bout de quel délai la couleur des machines n'ayant pas encore répondu à au moins un ping change-t-elle dans la console d'administration de Winlog :

// seuil de temps en secondes avant changement de couleur du statut "pinguée" d'une machine 
$seuil_couleur_ping = 120;

Utilisation

Démarrage du démon

À chaque clic sur le menu Ajout/mise à jour de machines ou de salles de la section Gestion du menu principal de la console d'administration, l'ensemble des adresses IP déjà collectées par Winlog sont transmises au démon ping et celui-ci est relancé.

À partir de ce moment, les machines des plans de salles qui ont répondu au ping depuis un délai inférieur à $seuil_couleur_ping prennent une couleur verte si aucune connexion Windows n'est en cours.
ping

Par ailleurs, dans la liste générale des connexions Windows en cours, si une machine devait n'avoir plus répondu au ping depuis un moment alors que Winlog continue de voir une connexion active, le nom de la machine est alors grisé.
pingGris

Enfin, chaque fois que le pointeur de la souris passe sur un nom de machine, un pop-up indique à la seconde, minute, heure ou jour près , le temps écouté depuis la dernière réponse au ping.
pingPop

Arrêt du démon

À partir du menu général, en cliquant sur le lien Arrêt ping de la section Gestion, le démon est explicitement arrêté s'il tournait.

Note : si le démon est en cours d'exécution, le fait de changer $mode_ping de true à false dans le fichier de configuration winlog_admin_conf.php ne l'arrête pas. Il faut le stopper explicitement par le lien Arrêt ping.

Section complète du ping dans le fichier de configuration winlog_admin_conf.php :

// Ping : s'appuie sur la commande système fping
// NOTE : tous les chemins doivent être absolus ! l'utilisateur apache www-data ne connait pas forcément l'environnement.

// Le démon de ping doit-il être activé. Mettre à false pour désactiver.
$mode_ping = true;
// fichier de configuration bash du démon de ping
$winlog_ping_conf = "/var/www/html/admin/ping/winlog_ping.conf";
// fichier de la liste d'adresses IP à pinger (fichierIN), doit être accessible en lecture/écriture
$fichier_liste_ip = "/var/www/html/admin/ping/liste_ip.txt"; 
// ficher de la liste des adresses ayant répondu au ping (fichierOUT), doit être accessible en lecture/écriture
$fichier_liste_ping = "/var/www/html/admin/ping/liste_ping.txt";
// timeout si pas de réponse au ping en milliseconde
$ping_timeout = 100;
// fichier bash de lancement du démon, doit être éxecutable (ne pas modifier)
$winlog_start_ping = "/var/www/html/admin/ping/winlog_start_ping.sh";
// fichier bash d'arrêt du démon, doit être éxecutable (ne pas modifier)
$winlog_stop_ping = "/var/www/html/admin/ping/winlog_stop_ping.sh";
// fichier bash du démon pinger,  doit être éxecutable (ne pas modifier)
$winlog_ping = "/var/www/html/admin/ping/winlog_ping.sh";
// fichier de log
$winlog_ping_error = "/var/www/html/admin/ping/ping_error.log";
// mode debug : mettre à true pour voir les erreurs dans ŵinlog_ping_error.log
$winlog_ping_debug = false;
// chemin vers php : où se trouve le moteur php sur le système
$php_path = "/usr/bin/php5";
// chemin vers le script winlog de collecte des résultats du ping
$winlog_get_ping = "/var/www/html/admin/get_ping.php";
// seuil de temps en secondes avant changement de couleur du statut "pinguée" d'une machine 
$seuil_couleur_ping = 120;