Aller au contenu
jojo

Monitorer Sa Hc2/hcl Depuis Un Synology

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne connais qu'un seul dieu sur ce forum enfin qui porte le nom de dieu. lol

 

C'est pas bien jojo de délaisser ça box comme cela elle va finir par bugger...

Partager ce message


Lien à poster
Partager sur d’autres sites

en effet, je la laisse un soir, et elle se venge immédiatement. Pas gentile  :20:  :20:  :20:

Partager ce message


Lien à poster
Partager sur d’autres sites

MDR c'est pour cela que l'on dit UNE box et non UN box

 

Jojo il y a un topic sur synology qui pourrait nous interessé car il parle de l'api moi je suis juste arrivé a me connecté avec mes identifiant via l'api mais j'arrive pas plus loin

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Et comment tu fais pour que le câble réseau se débranche... ?

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Le push ne fonctionne plus sur xpenoboot depuis dsm 5 mais les mail fonctionne très bien

Envoyé de mon SM-G900F en utilisant Tapatalk

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci Lazer,

Tout fonctionne nickel, sauf l'envoi de mail.

Je continue de chercher (car cela fonctionnait avec le script (qui était incomplet) que j'avais posté)

Partager ce message


Lien à poster
Partager sur d’autres sites

bon, j'ai trouvé mon erreur.

Partager ce message


Lien à poster
Partager sur d’autres sites

Cool tu feras un tutoriel complet ?

J'ai un doute sur le ping... Que se passe-t-il si la box ping la moitié du temps pendant la minute ? J'ai pas testé, j'étais àdistance.

Je pense qu'il va envoyer le mail quand-même.

Partager ce message


Lien à poster
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)

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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 ...

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans le else, il manque les antislash devant les double quote lors de l'appel àphp

Partager ce message


Lien à poster
Partager sur d’autres sites

oh la honte ! merci Lazer, et sorry de t'avoir dérangé pour des bêtises comme ça

Partager ce message


Lien à poster
Partager sur d’autres sites

Et non jojo tu apprends moi j'y comprends rien a ton truc

Je comprends juste ce que tu veux faire

Envoyé de mon SM-G900F en utilisant Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

dès que tout sera prêt, je fais un super auto au nom de Lazer.

Maintenant j'essaye de comprendre pourquoi il me dit qu'il ne sait pas pinger, alors que ma HC2 est uo ???

Partager ce message


Lien à poster
Partager sur d’autres sites

;-)

j'ai trouvé. Il faut être root pour que le ping fonctionne, admin ne suffit pas (bien que suffisant pour les notifications et mails)

Partager ce message


Lien à poster
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

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

hum làcomme ça, je ne sais pas.... je n'ai jamais scripté sur le Syno.

Et tous mes scripts tournent sur des VM Linux standard.

Partager ce message


Lien à poster
Partager sur d’autres sites

ok, merci @ Lazer.

 

A part @Lazer, y a-t-il d'autres membres qui pourrait m'aider ?

Sinon, je publie tel quel

Partager ce message


Lien à poster
Partager sur d’autres sites

×