Monitoring d'un serveur sous Windows avec PHP
Résolu
K-ny
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
wida Messages postés 150 Date d'inscription Statut Membre Dernière intervention -
wida Messages postés 150 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'essaie depuis quelques jours déjà de superviser un serveur pour avoir quelques informations de mon serveur tournant sous Microsoft Windows avec PHP.
Pour cela j'utilise les journaux et alertes de performancesde windows.
Un fichier ".csv" est créé toute les heures (voici un des fichier créé --> http://yoboss13.free.fr/serveurtest_011717.csv )
J'ai développé ensuite une page web en php afin de découper les informations contenus dans le fichier journal, de les stocker dans une base de donnée MySQL
et enfin de les exploiter en les affichant dans un tableau (indiquant par exemple : % d'utilisation du processeur, de la RAM, etc...)
Malheureusement mon script PHP ne fonctionne pas, j'ai beau chercher je ne trouve pas pourquoi :(. Pouvez m'aider, svp ?
Voici le contenu de ma table (test) :
Voici le code source :
Et voici l'erreur que j'obtiens :
J'ai bien vérifié le fichier existe. Au faite j'utilise EasyPHP 1.8.0.1.
Merci d'avance pour l'aide que vous pourrez m'apporter :).
j'essaie depuis quelques jours déjà de superviser un serveur pour avoir quelques informations de mon serveur tournant sous Microsoft Windows avec PHP.
Pour cela j'utilise les journaux et alertes de performancesde windows.
Un fichier ".csv" est créé toute les heures (voici un des fichier créé --> http://yoboss13.free.fr/serveurtest_011717.csv )
J'ai développé ensuite une page web en php afin de découper les informations contenus dans le fichier journal, de les stocker dans une base de donnée MySQL
et enfin de les exploiter en les affichant dans un tableau (indiquant par exemple : % d'utilisation du processeur, de la RAM, etc...)
Malheureusement mon script PHP ne fonctionne pas, j'ai beau chercher je ne trouve pas pourquoi :(. Pouvez m'aider, svp ?
Voici le contenu de ma table (test) :
CREATE TABLE `test` ( `date` varchar(256) NOT NULL, `output` int(11) NOT NULL, `ram` int(11) NOT NULL, `cpu` float NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Voici le code source :
<?PHP /* FICHIER D'IMPORATION Moniteur de performances (journaux CSV) <<----->> MySQL */ for ($a = 0; $a < 24; $a++) { // Si l'heure est inférieure à 10, on rajoute un 0 if ($a < 10) $heure = '0'.$a; else $heure = $a; /* On construit ici le nom de notre journal avec la date d'hier. Eh oui, car avec la date d'aujourd'hui, un nouveau journal est créé, donc ça ne marche plus. */ $hier = date('d') - 1; // Par contre, si nous sommes le 1er février, difficile de faire le 0 février. :) Donc on prend le mois précédent. if ($hier < 1) { // On prend le timestamp d'hier à 23h59 $timestamp_hier = mktime(date('m'), date('d'), date('Y'), 0, 0, 0) - 1; $mois = date('m',$timestamp_hier); $hier = date('d',$timestamp_hier); } else $mois = date('m'); // On construit le chemin du journal $chemin_du_fichier = 'C:\PerfLogs\serveurtest_'.$mois.$hier.$heure.'.csv'; // Si le fichier existe bien if (file_exists($chemin_du_fichier)) { // Connexion au serveur MySQL $db = mysql_connect('localhost', 'root', ''); // Séléction de base de données mysql_select_db('test',$db); // Requête d'enregistrement mysql_query("LOAD DATA INFILE '$chemin_du_fichier' INTO TABLE `test` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '/' LINES TERMINATED BY '\r\n';") or die (mysql_error()); // On supprime les lignes où CPU ne vaut rien (bugs ^^) mysql_query("DELETE FROM test WHERE cpu = 0"); // Gros bisous MySQL ! mysql_close(); } else { // On affiche une erreur echo "Un journal n'a pas été trouvé, heure ".$heure." --> ".$chemin_du_fichier."<br />"; } } echo '<table><tr style="font-weight: bold"><td>Date/Heure</td><td>Débit upload</td><td>RAM libre</td><td>%CPU</td></tr>'; $retoursql = mysql_query('SELECT STR_TO_DATE(test.date, "%m%d%Y %H:%i:%s") AS date, output, ram, cpu FROM test') or die (mysql_error()); while ($array = mysql_fetch_array($retoursql)) { // On formate l'upload, ne pas oublier de diviser par 1024 et non par 1000 ! $output = number_format($array[1] / 1024, 0, ',', ' '); // On arrondit aussi l'indicateur CPU $cpu = round($array[3], 1); // JAUGE CPU // On définit les couleurs if ($cpu < 25) $couleur = "rgb(0,255,0)"; elseif ($cpu < 50) $couleur = "yellow"; elseif ($cpu < 75) $couleur = "orange"; else $couleur = "red"; // JAUGE CPU echo '<tr> <td>'.$array[0].'</td> <td style="text-align: right">'.$output.' Ko/s</td> <td style="text-align: right">'.$array[2].' Mo</td> <td style="width: 50%"><div style="height: 15px; width: '.$cpu.'%; background-color: '.$couleur.'">'.$cpu.'%</div></td> </tr>'; } echo '</table>'; ?>
Et voici l'erreur que j'obtiens :
File 'C:PerfLogsserveurtest_011700.csv' not found (Errcode: 2)
J'ai bien vérifié le fichier existe. Au faite j'utilise EasyPHP 1.8.0.1.
Merci d'avance pour l'aide que vous pourrez m'apporter :).
A voir également:
- Monitoring d'un serveur sous Windows avec PHP
- Clé windows 8 - Guide
- Montage video windows - Guide
- Changer serveur dns - Guide
- Windows ne démarre pas - Guide
- Windows movie maker - Télécharger - Montage & Édition
5 réponses
bon je suis pas expert en php, mais pour le fichier journal je te conseil d'utiliser un fichier .log, c'est fait pour!!
Bonjour,
Merci, je testerai ça aussi un peu plus tard. Je suis débordé de boulot en se moment, examen oblige...
Encore merci pour votre aide....
Bonne soirée.
Merci, je testerai ça aussi un peu plus tard. Je suis débordé de boulot en se moment, examen oblige...
Encore merci pour votre aide....
Bonne soirée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question