Bonjour,
Je suis entrain de monté une petite app nodeJS qui va me permetre d'exécuter un ping sur une machine depuis une instance google cloud et de m'informé si le serveur / site est hors-ligne
J'ai remplis un tableau avec mes différent serveurs
var servers =
{
"server1": {
"ip": "127.0.0.1",
"realName": "unsite.fr"
},
"server2": {
"ip": "127.0.0.2",
"realName": "unsousdomaine.unsite.fr"
},
"server3": {
"ip": "127.0.0.3",
"realName": "uautresousdomaine.unautresite.fr"
}
}
Jusque ici aucun soucis j'ai testé de récupéré mon tableau pour test ok tout est ok
for (var server in servers) {
console.log("srv ip:" + servers[server]["ip"]);
console.log("srv name:" + servers[server]["realName"]);
}
root@imchip:/home/app/node-monitoring# node monitoring.js
srv ip:127.0.0.1
srv name:unsite.fr
srv ip:127.0.0.2
srv name:unsousdomaine.unsite.fr
srv ip:127.0.0.3
srv name:uautresousdomaine.unautresite.fr
Maintenant j'utilise une librarie npm qui se nome "net-ping"
Pour récup mes donnée j'ai utiliser deux var
Une var IP et une var Name
Hors ceux ci me retourne toujours le dernier serveur hors que il ne devrais pas
root@imchip:/home/app/node-monitoring# node monitoring.js
uautresousdomaine.unautresite.fr is UP
uautresousdomaine.unautresite.fr is UP
uautresousdomaine.unautresite.fr is UP
Code complet:
var ping = require ("net-ping");
var servers =
{
"server1": {
"ip": "127.0.0.1",
"realName": "unsite.fr"
},
"server2": {
"ip": "127.0.0.2",
"realName": "unsousdomaine.unsite.fr"
},
"server3": {
"ip": "127.0.0.3",
"realName": "uautresousdomaine.unautresite.fr"
}
}
for (var server in servers) {
var session = ping.createSession ();
var ip = servers[server]["ip"];
var name = servers[server]["realName"];
// Check
session.pingHost (ip, function (error, target) {
if (error)
if (error instanceof ping.RequestTimedOutError) {
console.log (name + " is DOWN");
} else {
console.log (name + " ERROR" + error.toString ());
} else {
console.log (name + " is UP");
}
});
}
Désolé pour les faute et merci d'avance
Ainsi que une bonne année a vous tous :)