App monitoring de serveur

App monitoring de serveur - PHP - Programmation

Marsh Posté le 22-03-2017 à 10:36:29    

Bonjour,  
 
J'essaye de pinger un serveur (windows server r2) depuis un autre serveur Debian mais ça ne marche pas.
 
Pourtant le serveur debian arrive à pinger le serveur windows.
 
Et un ping "google.fr" ou "localhost" marche avec mon script.
 
Et mon timer pour vérifier le temps d'éxécution du ping affiche toujours 0
 

Code :
  1. //Connaître l'état des serveur
  2.               $ipServ = "192.168.200.33";
  3.               $ipServWeb = "localhost";
  4.               $compteur = 0;
  5.               $compteurWeb = 0;
  6.               function wowstatus($ip,&$compteur)
  7.               {
  8.                   error_reporting(0);
  9.                   $timestart=microtime(true);
  10.                   $sock = fsockopen($ipServ, 80, $errno, $errstr, 30);
  11.                   if (!$sock) {
  12.                       echo "<b style=\"color:red\">Hors Ligne</b>";
  13.                       //Fichier compteur
  14.                       $monfichier = fopen('compteur.txt', 'r+');
  15.                       $pages_vues = fgets($monfichier);
  16.                       $pages_vues += 1;
  17.                       fseek($monfichier, 0);
  18.                       fputs($monfichier, $pages_vues);
  19.                       fclose($monfichier);
  20.                   } else {
  21.                       echo "<b style=\"color:green\">En Ligne</b>";
  22.                       //Afficher le temps d'éxecution
  23.                       $page_load_time = number_format($time, 3);
  24.                       echo "<br /><br />Temps pour se connecter au serveur " . $page_load_time . " sec";
  25.                   }
  26.               }
  27.               function gmodstatus($ipServWeb,&$compteurWeb)
  28.               {
  29.                     error_reporting(0);
  30.                     $timestart=microtime(true);
  31.                     $sock = fsockopen($ipServWeb, 80, $errno, $errstr, 30);
  32.                     if (!$sock) {
  33.                         echo("<b style=\"color:red;\">Hors Ligne</b>" );
  34.                         //Fichier compteur
  35.                         $monfichier = fopen('compteurWeb.txt', 'r+');
  36.                         $pages_vues = fgets($monfichier);
  37.                         $pages_vues += 1;
  38.                         fseek($monfichier, 0);
  39.                         fputs($monfichier, $pages_vues);
  40.                         fclose($monfichier);
  41.                     }
  42.                     if ($sock) {
  43.                         echo("<b style=\"color:green;\">En Ligne</b><br />" );
  44.                         //Afficher le temps d'éxecution
  45.                         $page_load_time = number_format($time, 3);
  46.                         echo "<br>Temps pour se connecter au serveur " . $page_load_time . " sec";
  47.                         fclose($sock);
  48.                     }
  49.                }
  50.               $monfichier = fopen('compteur.txt', 'r+');
  51.               $monfichierWeb = fopen('compteurWeb.txt', 'r+');
  52.               $ligne = fgets($monfichier);
  53.               $ligneWeb = fgets($monfichierWeb);
  54.               echo 'Heure du dernier test : ',date('d/m/Y H:i:s'),'<br /><hr/><br />';
  55.               echo 'Status serveur : ',wowstatus($ipServ,$compteur), '<br  />';
  56.               echo 'Nombre de fois ou le serveur a été hors ligne : ' ,$ligne,  '<hr/><br />';
  57.               echo 'Status serveur WEB&nbsp; : ',gmodstatus($ipServWeb, $portgmod,$compteurWeb),'<br />';
  58.               echo 'Nombre de fois ou le serveur WEB a été hors ligne : ' ,$compteurWeb, '<hr/>';
  59.               fclose($monfichier);
  60.               $timeend=microtime(true);
  61.               $time=$timeend-$timestart;


 
http://img4.hostingpics.net/pics/448298serv.png


Message édité par tuxxys le 22-03-2017 à 14:44:15
Reply

Marsh Posté le 22-03-2017 à 10:36:29   

Reply

Marsh Posté le 22-03-2017 à 16:29:58    

Pourquoi tu passes par les sockets et non par shell_exec() auquel tu passerais la même ligne de commande que celle que tu passes via la console ?
 
Edit : pour ton pb de temps à 0, c'est un peu normal : $timestart est déclaré comme variable locale à tes 2 fonctions  :sarcastic:


Message édité par rufo le 22-03-2017 à 16:31:07

---------------
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 23-03-2017 à 09:11:22    

parfait ça marche !
Pour le timer je vois pas ou mettre le timestart :/


Message édité par tuxxys le 23-03-2017 à 10:36:49
Reply

Marsh Posté le 23-03-2017 à 10:15:02    

PHP est cross OS. Lis un peu la doc, tu verras que tu te trompes. Après, je ne dis pas que la ligne de commande à exécuter par l'OS sera identique. Tout ce que tu auras à faire, c'est détecter l'OS (ou le configurer dans une variable de conf) et en fonction de l'OS faire exécuter par shell_exec() la bonne ligne de commande.
 
Au passage, tu verras que le terme "shell" est beaucoup plus utilisé dans le monde Linux que Windows. Y'a qu'à voir le nb de shell différents qui existent sur cet OS (bash, ksh...). Sur Windows, on parle plus de cmd, console, DOS voire maintenant, plus moderne, Powershell pour rattraper le retard que Windows avait sur Linux.


---------------
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