Aller au contenu

Monitorer Sa Hc2/hcl Depuis Un Synology


Messages recommandés

Posté(e)

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
Posté(e)

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...

Posté(e)

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

Posté(e) (modifié)
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
Posté(e)

@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.

Posté(e)

@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 ?

Posté(e) (modifié)

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
Posté(e)

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é)

Posté(e)

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.

Posté(e)

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)

Posté(e)


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

Posté(e)

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 ...

Posté(e)

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 ?

Posté(e)

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 ???

Posté(e)

;-)

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

Posté(e)

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

 

 

Posté(e)

ok, merci @ Lazer.

 

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

Sinon, je publie tel quel

×
×
  • Créer...