Faire son propre monitoring du Syno (Partie 2)

On a vu comment collecter les données de la charge CPU dans une table, voyons aujourd’hui comment les utiliser pour faire un joli graphique bien plus explicite qu’une suite de chiffres.

Pour cela, il existe une bibliothèque PHP permettant de générer des graphiques : Jpgraph.
– Récupérer la version 3.5.0b1
– Extraire le répertoire src de l’archive
– Créer un répertoire supervision dans l’arborescence apache qui contiendra le projet php
– Copier le répertoire src précédemment extrait dans le nouveau répertoire
– Renommer le répertoire src en jpgraph

Continue reading

Mutualiser les 2 connexions internet Numericable

Il y a bientôt un an, je suis passé de Free à Numéricable. Je dois bien avouer que les premiers mois n’ont pas été les meilleurs que j’ai passé chez un opérateur : déconnexions, chutes de débit en soirée, problèmes DNS…. De plus, les 100mbits promis ne sont toujours pas arrivés dans mon quartier (je suis quand même à 30 mbits, ce qui n’est pas négligeable). Et pour couronner le tout, le matériel fourni a quelques années de retard sur ses concurrents.
En effet, non seulement le routeur ne gère pas le gigabit Ethernet et le Wifi 802.11n (en 2011, c’est assez incroyable), mais le pire est qu’il n’est pas capable de faire transiter certains protocoles entre le Wifi et l’Ethernet (AFP et UPnP pour ne citer que ceux-là), ce qui est un bug hallucinant.

Continue reading

Faire son propre monitoring du Syno

Le but de cet article est de se créer une petite page web qui affiche l’historique de l’activité CPU, de l’activité de la mémoire ainsi que de l’occupation de l’espace disque….

Il existe des outils bien plus sophistiqués et plus complets pour faire du monitoring, et ce qui suit n’est qu’un exercice, mêlant shell (crontab, snmp,…) et php/mysql, et a principalement pour but de s’amuser un peu avec son syno 🙂
Pour résumer rapidement, on va procéder en 5 étapes:
– installation/paramétrage des outils nécessaires sur le syno
– création de la base de données qui contiendra les informations du système
– création des scripts de récupération des informations du système et insertion dans la base de données
– automatisation de la récupération des informations
– création du script php d’affichage des graphes (ce que nous verrons dans un prochain article)

10 jours avec OS X Lion

Ca fait déjà un petit peu plus de 10 jours que j’ai installé Lion sur mes Mac, et je dois dire que j’en suis plutôt satisfait. J’étais un peu impatient, même si je dois l’avouer, il n’y avait aucune des nouveautés dont j’avais absolument besoin ou que je trouvais incroyable, mais bon, depuis 12 ans que je suis sur Mac, j’ai toujours eu les version de MacOS X dès leur sortie (même la tristement célèbre « beta public » disponible lors de l’Apple Expo de 2000).

J’étais en vacances avec mon Macbook Pro lors de la sortie, c’est donc lui qui a subi en premier l’installation de Lion. La première grosse nouveauté, justement, c’est l’installation: il n’y a plus de support physique (quoiqu’il semblerait qu’une clé USB sera disponible d’ici peu) et tout se passe à partir de l’AppStore. Après avoir été délesté de 24€ (ce qui est peu, je l’avoue, d’autant que Snow Leopard ne coutait pas beaucoup plus), le téléchargement se lance. Ca a été un peu long, car j’étais à la campagne et que le débit atteignait difficilement les 5 mbits/s.

Continue reading

Utiliser l’authentification du Syno en PHP

Si on veut créer un site web dont l’accès est restreint à certains utilisateurs et que ceux-ci sont déjà créés sur le syno, il est tout à fait possible de ne pas faire une double gestion de ces derniers et de faire appel à l’authentification du syno.

Pour cela, il y a l’url « magique »: http://adresse_du_syno:port_du_dsm/webman/login.cgi?username=mon_utilisateur&passwd=mon_mot_de_passe
Le port du dsm est par défaut 5000.

Le message retourné par l’url magique est au format json.
Il peut indiquer:

  • Si c’est OK: { « result » : « success », « success » : true }
  • Si le couple login/mot de passe est incorrect: { « reason » : « error_cantlogin », « result » : « error », « success » : false }
  • Si l’adresse IP est bloquée: { « reason » : « error_noprivilege », « result » : « error », « success » : false }

Petit exemple en php (j’utilise localhost car mon site web est hébergé sur le syno et le http, mais ça fonctionne aussi en https si celui-ci est activé).

function login($user,$pass,$cookie,$port){
$urlSyno=’http://localhost:’.$port.’/webman/login.cgi?username=’.$user.’&passwd=’.$pass;

$reponseLogin = file_get_contents($urlSyno);

if (json_decode($reponseLogin)->{‘success’}){
$_SESSION[‘user’] = $user;
if($cookie == ‘on’){
$expire = 365*24*3600;
setcookie(‘user’,$user,time()+$expire);
}
}
else echo ‘<div style= »text-align:center;color:red; »>Mauvais login/password</div>’;

}