Monitoring d'un serveur sous Windows avec PHP

Résolu/Fermé
K-ny Messages postés 5 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 7 juin 2009 - 19 janv. 2009 à 23:04
wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 - 8 juin 2009 à 16:47
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) :
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:

5 réponses

wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 17
18 mai 2009 à 16:22
bon je suis pas expert en php, mais pour le fichier journal je te conseil d'utiliser un fichier .log, c'est fait pour!!
0
K-ny Messages postés 5 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 7 juin 2009
18 mai 2009 à 16:40
Merci, je vais regarder ça.
0
2napot Messages postés 29 Date d'inscription lundi 2 février 2009 Statut Membre Dernière intervention 18 mai 2009
18 mai 2009 à 16:57
Essaye celui la

$chemin_du_fichier = "C:\\PerfLogs\\serveurtest_'.$mois.$hier.$heure.".csv";
0
K-ny Messages postés 5 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 7 juin 2009
18 mai 2009 à 17:52
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
K-ny Messages postés 5 Date d'inscription lundi 19 janvier 2009 Statut Membre Dernière intervention 7 juin 2009
7 juin 2009 à 13:38
Bonjour,

j'ai trouvé un logiciel qui me permet de faire à peut près tout se que je veux.

Server Alive, il permet de voir différente information d'un serveur, ordinateur..... grâce à son adresse IP
puis de faire remonter le tout sur une page web facilement...

Merci à tous :)
0
wida Messages postés 150 Date d'inscription lundi 5 novembre 2007 Statut Membre Dernière intervention 28 novembre 2011 17
8 juin 2009 à 16:47
n'oublie pas "résolu"!!
0