Aller au contenu

Script Php Pour Surveiller Un Serveur Externe

Featured Replies

Posté(e)

Bonjour,

J'ai un serveur dans un datacenter. Pour monitorer la dispo et les performances de ce serveur, j'utilise des services de www.internetvista.be qui "ping" mon serveur toute les 3 minutes (sur différents ports) et envoie une alerte email et sms si le le service ne répond plus. Mais ce service est payant.

Je pense remplacer ce service par un script qui tourne sur le synology. Une idée de source en php ? perl ou Bash shell ?

Merci

Thomas

Posté(e)

il doit etre possible de faire un script bash qui ping toutes les x minutes ton serveur et envoie un mail pour te prévenir en cas de soucis mais perso je n'ai pas les compétences. Fredlime qui s'y connait pas mal en script pourra peut etre te renseigner

Posté(e)

Bonsoir,

Oui c'est se que fait mon script 'secteur' ou 'arip', a la différence qui coupe le SYNO dans le cas ou le 'ping' ne repond pas.

S'il faut qu'il envoie un mail, il faut aussi ton SYNO accepte 'IPKG'.

C'est quoi ton modèle ?

Il faut seulement faire un ping et envoyer un mail pour dire que sa ne répond pas ?

Sur une seul adresse IP ou plusieurs ?

C'est pour quand ?

Tu payes chère ? Heu non ? je pose la question des fois ! :vava:

A+ :hi:

Fred.

Posté(e)
  • Auteur

Bonsoir,

Oui c'est se que fait mon script 'secteur' ou 'arip', a la différence qui coupe le SYNO dans le cas ou le 'ping' ne repond pas.

S'il faut qu'il envoie un mail, il faut aussi ton SYNO accepte 'IPKG'.

C'est quoi ton modèle ?

Il faut seulement faire un ping et envoyer un mail pour dire que sa ne répond pas ?

Sur une seul adresse IP ou plusieurs ?

C'est pour quand ?

Tu payes chère ? Heu non ? je pose la question des fois ! :vava:

A+ :hi:

Fred.

L'idée est en fait de monitorer un serveur externe avec ses services par les moyens suivants:

-ping du synology vers mon serveur avec mesure du RTT

-ping en provenance d'un autre serveur sur le net vers mon serveur. A cet effet, il existe sur internet plusieurs website qui proposent gratuitement ce service (multiple traceroute gateway: exemple http://www.belnet.be/traceroute.php). Cela permet un monitoring de l'accessibilité de la machine à partir de plusieurs endroits répartis dans le monde

-Si le RTT tombe en dessous d'un seuil configurable pendant X itérations des ping, une alarme est générée (mail envoyé, SMS...)

Comme le serveur peut très bien continuer à répondre au ping mais peut être en panne sur la couche TCP ou service, il est utile que le synology (car je ne connais pas de gateway qui permettrait de faire la même chose ailleurs de l'internet) fasse aussi des requêtes pour tester le bon fonctionnement des services suivants (avec mesure du temps de réaction):

-Web:port 80 (un simple Wget sur une page déterminée avec un test de présence d'un mot clé)

-DNS: faire un nslookup sur le serveur, évaluer le résultat et le RTT

-POP3: faire un telnet jusqu'au "Helo"

-SMTP: idem

-FTP: idem...

Un rapport serait généré au format RRDTools + graphe

Cela serait top évidemment....

Thomas

Posté(e)

Bonjour,

Bon, mise a part pour le ping et wget, le reste c'est du petit chinois pour moi ! :unknw:

Je sais récupérer et interpréter le résultat d'une fonction, comme un 'ping' avec le temps de réponse.

Puis mettre cela en forme et l'envoyer par mail ou sur un graphe rrdtool. Bref, pas de problème normalement.

Mais pour le reste, il faut que tu me dises exactement qu'elle commande je dois effectuer et monitorer.

Ensuite, il faut savoir si ton SYNO est compatible IPKG, c'est quoi ton modèle.

Cela ne sert a rien si tu ne peux pas installer esmtp, rrdtool.

A+ :hi:

Fred.

Posté(e)
  • Auteur

Bonjour,

Bon, mise a part pour le ping et wget, le reste c'est du petit chinois pour moi ! :unknw:

Je sais récupérer et interpréter le résultat d'une fonction, comme un 'ping' avec le temps de réponse.

Puis mettre cela en forme et l'envoyer par mail ou sur un graphe rrdtool. Bref, pas de problème normalement.

Mais pour le reste, il faut que tu me dises exactement qu'elle commande je dois effectuer et monitorer.

Ensuite, il faut savoir si ton SYNO est compatible IPKG, c'est quoi ton modèle.

Cela ne sert a rien si tu ne peux pas installer esmtp, rrdtool.

A+ :hi:

Fred.

Allons-y ;-)

Mon syno est le DS206. Concernant les packages, tout est ok, RRDTools, ESMTP installés

Concernant les commandes maintenant. Procédons par ordre

  • Test service DNS: avec la commande nslookup
    la commande à faire est: "nslookup <HOST> <SERVEUR_DNS>"
    <HOST>, configurable en paramètre est le nom de la machine pour qui on demandera l'adresse IP au serveur DNS <SERVEUR_DNS>
    Ex: <HOST>=www.droit.be <SERVEUR_DNS>=serveur.maxetzoe.com interrogera le serveur dns serveur.maxetzoe.com pour demander quelle est l'adresse IP de www.droit.be
    nslookup www.droit.be serveur.maxetzoe.com
    Server: serveur.maxetzoe.com
    Address: 217.112.181.130

    Name: www.droit.be
    Address: 217.112.181.130

    Il faut donc comparer la réponse en rouge avec le paramètre <HOST_IP>. Si identique, le service DNS distant est OK. Sinon, pas OK
    L'idéal étant de mesurer le temps nécessaire pour exécuter cette commande et obtenir la réponse. Je ne connais pas cette commande.Date n'est précis qu'à la seconde. Il y a donc 3 paramètres pour le test de ce service.
  • Test service POP3
    Il faut installer le package netcat: ipkg install netcat
    ensuite les commandes
    nc <SERVEUR_POP3> 110 + Ctrl-c renverrons "+OK POP3" signifiant que le serveur POP3 répond. (c'est ce que mon serveur pop3 répond bien sur)
  • Test sService FTP: tu peux utiliser WGET comme pour le test HTTP + mesurer temps de réponse
  • Test service HTTP: utiliser WGET sur une URL en paramètre, et tester la présence d'une chaine de caractère dans le fichier html. Mesurer le temps de réponse


  • Voilà, n'hésite pas à m'écrire en MP si nécessaire

  • Thomas

  • 5 mois après...
Posté(e)

Bonjour,

il se trouve que j'ai exactement la même idée que vous, en effet je souhaite surveillé mon serveur DNS à l'aide d'un programme en php qui m'alerterai d'un éventuel disfonctionnement.

Ayant du mal à réaliser ce programme pourriez-vous s'il vous plaît me faire parvenir une copie de votre code php ainsi que les applications nécéssaire à télécharger, je vous me renderez grandement service.

merci d'avance.

Posté(e)

Bonsoir,

Hou là, je l'avais oublié celui là.

En fait, le script n'a jamais été finalisé, pour x raisons, mais aussi a cause de 'moniteur' qui m'a bien occupé ces trois dernier mois. :unknw:

J'ai encore 2-3 choses a finir, fais un rappel dans .... 2~3 semaines !

A+ :hi:

Fred.

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.