Aller au contenu

Monitorer Sa Hc2/hcl Depuis Un Synology


jojo

Messages recommandés

Aujourd'hui j'ai eu la mauvaise surprise de ne pas pouvoir me connecter à  mon HC2 car le câble réseau était débranché.

La bonne nouvelle, c'est que la HC2 a continué son travail z-wave impeccable, mais plus de notifications, ...

 

En regardant les logs (erreurs google calendar, pas d'historiques de températures etc via l'appli de Lazer), j'ai vu que cela durait depuis hier soir 18h25.

 (ndlr : ce n'est pas bien jojo, d'avoir délaissé ta box une soirée complète ...)

 

Alors, je me disais, de la même manière que la box peut faire des ping sur notre Synology (http://www.domotique-fibaro.fr/index.php/topic/5682-synology-monitoring/), ne pourrait-on pas demander à  notre Synology de monitorer notre box, et si x ping infructueux, envoyer un mail ?

 

Perso je suis incapable de faire un truc comme ça, mais je sais que cela doit être super simple.

Alors si quelqu'un

  • pouvait écrire un petit script
  • ET expliquer comment le mettre en oeuvre sur un Syno (autrement que simplement dire : tu fais un crontab. Oui je connais le terme et la fonctionnalité, mais suis incapable de le mettre en oeuvre)

je l'appelle Dieu.

MERCI

 

  • Upvote 1
Lien vers le commentaire
Partager sur d’autres sites

ping -c 6 -i 10 192.168.x.y
if [ $? -ne 0 ]
then
	echo "Attention, la box ne pingue plus depuis 1 minute" | mail -s "Ping error"
fi

Fait à  l'arrache, pas testé.

Pour l'intégration au Syno, faut créer un script Shell, puis tu peux créer une tâche planifiée pour exécuter ce script à  intervale régulier (1 fois toutes les minutes). Y'a plein de tutos pour ça sur le net.

 

EDIT : j'ai un doute, pas certain que la commande "mail" fonctionne sous DSM, à  tester....

Modifié par Lazer
Lien vers le commentaire
Partager sur d’autres sites

@Lazer,

Merci beaucoup, je testerai cela demain. Maintenant j'ai les neurones qui s'entre-choquent.

Je me disais bien qu'en disant que j'appellerais la personne Dieu, je ne prenais pas beaucoup de risque, étant donné que tu es déjà  le Dieu du forum ...

 

@nico,

j'ai chipoté la derrière. La probabilité que cette erreur se reproduise est minime. Mais pourquoi pas faire du monitoring de mon outil de monitoring et contrôle.

Lien vers le commentaire
Partager sur d’autres sites

@Lazer,

Un tout grand merci.

J'ai trouvé sur le net comment envoyer le mail.

Je posterai ici même la solution finale.

 

Dernier petit détail pour faire joli, je voudrais mettre l'ip à  pinguer dans une variable (histoire qu'elle se trouvent dans le mail), mais je n'arrive pas à  faire le test du ping.

 

J'ai essayé ceci :

ip=192.168.2.96;
ping -c 6 -i 10 $ip
if [ $? -ne 0 ]
then
	/usr/bin/php -r "mail('$to', '$subject', '$body', '');";
	/usr/syno/bin/synodsmnotify "@administrators" "System Event" "${outcome}";
fi

mais ça ne fonctionne pas. Où est l'erreur ?

Lien vers le commentaire
Partager sur d’autres sites

y'a plusieurs erreurs :D

 

Bon déjà  la commande ping n'est pas standard, je viens de vérifier les bons arguments.

Ensuite on ne met jamais de ";" de fin de ligne en Shell

La gestion des guillemets est un peu délicate.

Les accolades autour des nom de variables c'est plus propre (mais pas forcément joli)

 

Essaye ça, avec les variables définies comme suit :

IP=192.168.2.96
/bin/ping -c 60 -w 60 ${IP}
if [ $? -ne 0 ]
then
	TO="mail@domain.com"
	SUBJECT="Ping error"
	BODY="La box HC2 ${IP} ne ping pas depuis 1 minute"
	OUTCOME=${BODY}
	HEADERS="From: ${TO}"
	/usr/bin/php -r "mail(\"${TO}\", \"${SUBJECT}\", \"${BODY}\", \"${HEADERS}\");"
	/usr/syno/bin/synodsmnotify "@administrators" "System Event" "${OUTCOME}"
fi
Modifié par Lazer
Lien vers le commentaire
Partager sur d’autres sites

avec plaisir que je ferai un tutorial complet Dieu.

 

Ceci dit pour le ping peux-tu m'expliquer la signification des paramètres, histoire que je teste.

/bin/ping -c 60 -w 60 ${IP}

Car dans l'interface Syno, c'est HYPER simple de mettre ce script. Il propose même la fréquence d'exécution du script (toutes les 1, 5 min ou 1,2, ... heures)

Lien vers le commentaire
Partager sur d’autres sites


DiskStation> ping --help

BusyBox v1.16.1 (2015-05-11 02:57:09 CST) multi-call binary.

Usage: ping [OPTIONS] HOST

Send ICMP ECHO_REQUEST packets to network hostsOptions:

        -4, -6          Force IP or IPv6 name resolution

        -c CNT          Send only CNT pings

        -s SIZE         Send SIZE data bytes in packets (default:56)

        -I IFACE/IP     Use interface or IP address as source

        -W SEC          Seconds to wait for the first response (default:10)

                        (after all -c CNT packets are sent)

        -w SEC          Seconds until ping exits (default:infinite)

                        (can exit earlier with -c CNT)

        -q              Quiet, only displays output at start

                        and when finished

Lien vers le commentaire
Partager sur d’autres sites

du coup je proposerais

/bin/ping -c 1 ${IP}

ou (c'est le même ?)

/bin/ping ${IP}

et avec une fréquence toutes les minutes du script, comme ça ce serait cohérent avec le ping que la HC2 fait.

 

Donc je reçois une alerte si le ping n'a pas fonctionné.  Si j'ai juste un mail, soit, mais s'il se reproduit toutes les minutes, alors action ...

Lien vers le commentaire
Partager sur d’autres sites

J'ai un comportement TRES TRES TRES bizarre sur mes 2 NAS :

Hier tout fonctionnait IMPPECABLE. Aujourd'hui, le script ne s'exécute qu'une seule fois. Et puis il faut faire un reboot du synology pour qu'il se relance.

De  plus, même quand (via l'interface Synology) on veut l'exécuter, il n'y a rien qui se passe.

Voici le script :

/usr/syno/bin/synodsmnotify "@administrators" "System Event" "Démarrage script Ping HC2"
IP=192.168.2.xxx
/bin/ping -c 1 -w 1 ${IP}
if [ $? -ne 0 ]
then
	TO="xxx@gmail.com"
	SUBJECT="HC2 Ping error"
	BODY="La box HC2 (${IP}) ne ping plus (test toutes les minutes)"
	OUTCOME=${BODY}
	HEADERS="From: ${TO}"
	/usr/bin/php -r "mail(\"${TO}\", \"${SUBJECT}\", \"${BODY}\", \"${HEADERS}\");"
	/usr/syno/bin/synodsmnotify "@administrators" "System Event" "${OUTCOME}"
else
	TO="xxx@gmail.com"
	SUBJECT="HC2 Ping ok"
	BODY="La box HC2 ${IP} ping ok"
	OUTCOME=${BODY}
	HEADERS="From: ${TO}"
	/usr/bin/php -r "mail('${TO}', '${SUBJECT}', '${BODY}', '${HEADERS}');"
	/usr/syno/bin/synodsmnotify "@administrators" "System Event" "${OUTCOME}"
fi

une idée ?

Lien vers le commentaire
Partager sur d’autres sites

J'essaie de paufinner cela au max avant de faire un tuto.

voici ce que j'ai :

IP=192.168.xxx.xxx
TO="xxx@gmail.com"
HOST=$(/bin/hostname)
/bin/ping -c 1 -w 10 ${IP}
if [ $? -ne 0 ]
then
	SUBJECT="HC2 Ping error"
	BODY="La box HC2 (${IP}) ne ping plus (test toutes les minutes).\n\nSynology DiskStation\n\nFrom ${HOST}"
	HEADERS="From: ${TO}"
	NOTIF="${SUBJECT} - ${IP}"
	/usr/bin/php -r "mail(\"${TO}\", \"${SUBJECT}\", \"${BODY}\", \"${HEADERS}\");"
	/usr/syno/bin/synodsmnotify "@administrators" "System Event" "${NOTIF}"
fi

J'ai trouvé ici le code pour l'envois des mails et la récupération des valeurs de config du Syno

http://forum.synology.com/enu/viewtopic.php?f=32&t=79334

Je peux récupérer le hosname, mais j'aimerais bien récupérer l'e-mail qui est configuré comme récepteur, et ce qu'il propose ne fonctionne pas.

post-1320-0-33905800-1441887066_thumb.jpg

Et si je pouvais aussi récupérer le nom de la tâche en cours, ce serait sympa

post-1320-0-58042600-1441887191_thumb.jpg

 

Après, je pense que c'est bon pour le tuto

 

 

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...