Pierre Porcheret




Voir la liste des articles



15 12 2014


Mise en place d une supervision simplifiée en PHP (Partie 2- les fonctions)

Pour différencier les statuts en bases, un code à été choisit :

0 – pas de test

1-machine KO

2-machine OK

Pour sonder les différents services, de simples fonctions en PHP suffisent :

Test du ping

function test_ping($input,$nom) //ici, $input est l'adresse IP de la machine et $nom son nom

{

    $serverPing=new ServerPing(); // voir le script ServerPing.php pour fonctionnement

    $serverPing->send("$input", 1);

        if ($serverPing->isAlive()) {

                $sql = 'UPDATE supervision SET r_ping = "2" WHERE nom = "'.$nom.'"';

                                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

        } else {

                $sql = 'UPDATE supervision SET r_ping = "1" WHERE nom = "'.$nom.'"';

                                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

        }

}

Test de l'URL

function test_url($url,$nom)//ici $url est l'url de la page (peut être une image, une page externe ou une page donnée)
{
        $headers = @get_headers($url);
        if(strpos($headers[0],'404') === false)
        {
                $sql = 'UPDATE supervision SET r_url = 2 WHERE nom = "'.$nom.'"';
                                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
        } else {
                $sql = 'UPDATE supervision SET r_url = 1 WHERE nom = "'.$nom.'"';
                                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
        }
}

Test du ssh

function test_ssh($ssh,$nom)//ici $ssh est l'ip de la machine et $nom son nom
{
        $SSH = @fsockopen($ssh, 22, $errno, $errstr, 1);
        if ($SSH)
                {
                $sql = 'UPDATE supervision SET r_ssh = "2" WHERE nom = "'.$nom.'"';
                                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
                }else {
                $sql = 'UPDATE supervision SET r_ssh = "1" WHERE ip = "'.$nom.'"';
                                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
                $construct_url="http://<serveur_sms>/sendsms.php?numero=<num_admin>&texte=+".$nom."+est+KO";
                file_get_contents($construct_url);//execute l'adresse url pour le sms
                }
 }

 

Attention ce script test juste si le port est en écoute, pour un test plus approfondit une connexion avec login/password est possible


categorie :