Raspberry PI ~ 14 : Surveiller les performances du rpi depuis le web

Ce post est le quatorzième (mazette, déjà !) d’une liste de tutoriels sur le raspberry PI, cliquez ici pour accéder au sommaire ! 😀

C’est bien beau de traficoter tout un tas de truc avec notre raspberry PI ! Mais celui ci étant une frêle petite bébête, il peut être intéressant de le contrôler un peu question performances.

EDIT : Il semble que le projet ai été abandonné, les liens de téléchargements ne sont plus proposés.
Si vous souhaitez installer du monitoring, je vous conseille d’installer Yana-server qui le permet et qui sera très utilisé dans la suite des tutos.

 

Et ça tombe bien, il existe une interface web mimi comme tout justement faite pour ça !!

image

RaspControl vous permettra de monitorer de nombreuses infos sur l’état de santé de votre raspberry pi,n’importe quand et n’importe ou.

Ce petit logiciel en PHP est “standalone” c’est à dire qu’il peux tourner sans que vous ayez au préalable installé un serveur web.

Avec raspcontrol, vous pourrez consulter des informations mais aussi effectuer quelques actions comme redémarrer le système, redémarrer /stopper/démarrer apache, consulter vos fichiers de logs, mettre à jour les paquets, mettre à jour le firmware, relancer ssh etc..etc…

Installation

Tenté par raspcontrol ? Alors installons tout ça  !!

EDIT : Comme l’équipe de dev de ce programme s’amuse à changer son archi tout les 4 matins, il est possible que ce qui suit ne corresponde plus à la réalité, je vous conseille donc de vous reporter au tuto d’instal officiel pour plus de sûreté 🙂

N’oublions par avant tout de faire une mise à jour générale des paquets

sudo apt-get update
sudo apt-get upgrade

On installe ensuite le paquet php5-cli qui permet simplement de faire du php en ligne de commande

sudo apt-get install php5-cli

On se place dans un répertoire quelconque, on télécharge l’archive de raspcontrol et on la décompresse

cd /home/pi/
wget https://github.com/Bioshox/Raspcontrol/zipball/master
unzip master

Le dossier décompressé à un nom barbare, donc on le renomme “monitoring” (ou autre, comme vous voulez)

mv Bioshox-Raspcontrol-694435b/ monitoring

Théoriquement, on peux lancer le programme à ce stade, le problème c’es qu’il vas se lancer sur le port 80, qui est déjà utilisé par notre serveur web (apache, lighthttpd ou nginx…) donc on chance le port en éditant le fichier d’exécution du programme :

cd monitoring
nano start.sh

Remplacez

HOST=0.0.0.0
PORT=80

Par

HOST=0.0.0.0
PORT=8080

(ou un autre port en fonction de ce qui est déjà pris chez vous) et enregistrez (ctrl+x, Y puis entrée)

Vous pouvez ensuite lancer le programme avec la commande :

sh ./start.sh

(vous devez être situé dans le répertoire “monitoring”, si ce n’est pas le cas, il faut taper le chemin complet vers start.sh)

Vous pouvez alors accéder via un navigateur a votre panel de contrôle à l’adresse : http://votre.adresse.raspberry.pi:8080

(remplacez “votre adresse raspberry pi” par l’adresse réseau de votre rpi)

A la première connexion, raspcontrol vous demande de créer un compte, entrez donc un identifiant et un mot de passe

image

Cliquez sur “create account”, vous retombez alors sur un écran similaire qui vous demande de vous identifier, remettez les même identifiants puis “login”, ça y est, vous êtes sur le monitoring !!

image

L’installation/utilisation est terminée, cependant si vous ne voulez pas être embêté très prochaine, il vous faudra faire une petite manip !!

En effet vous remarquerez que si vous fermez votre terminal, le star.sh s’arrête et vous ne pouvez plus accéder à votre monitoring (zut !).

Pour résoudre ce problème, il existe plusieurs manières de faire (non vous n’allez pas laisser votre console ouverte 24/24h 7/7j bande de gougnafiers ^^) la plus simple reste encore d’utiliser Screen.

Screen est un petit utilitaire qui permet d’ouvrir une console en “tâche de fond”, ainsi vous pouvez y lancer des programmes sans avoir a garder votre terminal ouvert.

Installons d’abord Screen

sudo apt-get install screen

Puis lançons notre monitoring à travers Screen

screen -dmS Raspcontrol sh ./start.sh

Vous verrez alors que vous pouvez fermer votre console sans interrompre le programme ! Sympa non ? Sourire

Mais un dernier problème se pose !! ( hé hé hé ) Que se passera t’il quand votre raspberry PI vas redémarrer ? Plus de screen en tâche de fond, donc plus de monitoring, obligé de relancer la commande ci dessus (fuck !!)

On vas donc créer une petite tâche planifiée qui vas se lancer automatiquement au reboot du rapsberry et qui vas exécuter notre commande screen.

On ouvre notre gestionnaire de tâche planifiée

crontab -e

On y ajoute la ligne suivante à la fin du fichier

@reboot cd /home/pi/monitoring && screen -dmS monitoring sh ./start.sh

On sauvegarde (ctrl+X, Y, puis entrée) et c’est bon !!

Notez bien que le combo screen + cron au démarrage est très puissant et vous permet de lancer tout un tas de programmes automatiquement et en tâche de fond au démarrage de votre raspberry pi (par exemple la commande startx pour afficher un bureau visuel ou autres…)

Si vous voulez accéder a votre interface de monitoring depuis autre part que votre réseau, pensez a débloquer le port 8080 de votre box Sourire.

Notez bien que cette application est codée avec les pieds, mais qu’elle à le mérite d’exister, de fonctionner relativement bien et qu’elle pose les bases de la récupération d’infos importantes pour monitorer le rasp 🙂

Bien à vous,

Idle

81 réactions au sujet de « Raspberry PI ~ 14 : Surveiller les performances du rpi depuis le web »

  1. coconox Réponse

    Je termine à l’instant un de tes tutoriels sur le RPi et en voilà un autre qui apparaît !! Je ne sait plus où donner de la tête ! Un léger coup d’oeil suffit pour voir que c’est encore du pur génie 🙂

    Toi qui disais :” Ca fait plaisir de voir qu’il y en a encore qui suivent, j’ai peur de perdre des gens avec mes marmonnages ”

    Un peu mon n’veu qu’on te suit !! On est tous avide de tes connaissances 🙂 J’en profite pour te féliciter pour tout ton boulot et ta disponibilité ! Encore bravo !!! 😉

    • aldef Réponse

      crontab n’est pas fait pour démarrer des programmes au boot du pi
      il faut mettre un script dans /etc/init.d et un lien symbolique qui l’appelle dans /etc/rc2.d

  2. korrigan44 Réponse

    Super pratique !! merci beaucoup Idleman !!

    J’attend avec grande impatience ton prochain tuto !

    Korrigan44

  3. Christophe Réponse

    Bonjour,

    pi@raspberrypi ~ $ cat /etc/raspcontrol/database.aptmnt
    {
    “user”: “pi”,
    “password”: “raspberry”

    Dommage de ne pas avoir crypté le mot de passe …

    Christophe

    • Boudou Réponse

      Bonjour,
      Je déterre les vieux message 🙂
      On peux recuperer un mot de passe chiffré avec echo -n 'le_mot_de_passe' | md5sum le coller dans /etc/raspcontrol/database.aptmnt à la place du vieu mot de passe.
      Ensuite nano /chemin/jusque/monitoring/login.php
      et on change la ligne
      if ($_POST['username'] == $username && $_POST['password'] == $password)
      en
      if ($_POST['username'] == $username && md5($_POST['password']) == $password)
      En espérant avoir été utile à certain !

      Axel

  4. Damien Réponse

    Bonjour,

    Comment peut-on récupérer ces informations dans une autre interface web?
    Je m’explique, j’ai une interface web avec de jolis graphiques, je souhaiterai donc uniquement récupérer ces valeurs. Sais-tu comment peut-on faire cela?

    Cordialement.
    Damien

  5. H3 Réponse

    Très sympa en effet !

    Par contre, une remarque : Le mot “gougnafiers” a été interdit il me semble, par la loi contre les mots des années 1820.

    Son utilisation est passible de 99 ans d’emprisonnement et de 15 coups de fouets. 😀

    • Idleman Auteur ArticleRéponse

      Uhm, oui c’est normal, mon code hightlighter merde à fond :p sauf que j’ai plus le courage de l’annoncer dans mes tutos ^^

    • Idleman Auteur ArticleRéponse

      Oui, ça affiche moins d’infos et c’est un peu moins pro raspconfig a mon avis ^^, mais bon ça a le mérite d’exister 🙂

    • Anael Favre Réponse

      C’est surtout beaucoup plus rapide !!!

      Dommage que les informations sur les débits de carte réseau marchent pas sur moi : cablé RJ45 pourtant … Mais les tunnels VPN doivent le faire bugger 🙁

  6. Benoit V Réponse

    Pour démarrer un process en background pourquoi ne pas utiliser & ?
    Et démarrer un service à diffèrent runlevel y’a chkconfig qui est fait pour ça plutôt ?
    Ou même encore plus basique le fichier /etc/rc.local

    Cron c’est pas fait pour ca lol !

    • Idleman Auteur ArticleRéponse

      Cron étant fait pour planifier des tâches, planifier une tache d’exécution de programme au démarrage ne me semble pas être une hérésie.

      Comme je l’ai spécifié dans l’article, il existe une multitude de façon de faire la même chose, j’ai choisis celle qui me parait la plus simple, après tu es libre d’utiliser ce qu’il te plait 🙂

      • galendel Réponse

        Sa me choque un peu ^^, un service se lance dans /etc/init.d/, c’est pas plus compliqué que ca et sa permet par exemple de restart ou stop le service. Ce que je doute que tu puisse faire avec cron enfin je connais pas trés bien.
        De plus tu sais pas trop quand cron est lancé au démarrage et si il est lancé avant le réseaux(peu probable) ou d’autre service essentiel au tiens, tu peux donc potentiellement te retrouver avec des crash sur tes services.
        (et en general il y a 1 ou 2 facon de faire mais bon ^^)
        De plus il suffit d’installer un lighttpd ou un apache pour d’autre service et donc on pas besoin de trainer un server web de plus sur sa config.
        Merci pour le tuto (dommage qu’il y est pas de courbe).

        • Idleman Auteur ArticleRéponse

          Au risque de me répéter : je n’oblige personne à passer par screen, faites comme vous le souhaitez, moi je fais comme ça, et ça marche parfaitement, on peux stopper ou recommencer le screen quand on veux, et ça n’interfère à aucun moment avec un autre service puisque c’est lancé a la fin du reboot, pour ce qui est du serveur je suis d’accord qu’un standalone n’est pas le must, mais le script a été développé comme ça donc il faut voir avec leurs auteurs 🙂

          • Idleman Auteur Article

            En standalone il marche avec n’importe quoi puisqu’il n’a pas besoin de serveur autre que celui qu’il inclus pour fonctionner…

  7. screeminelle Réponse

    Super tes tutos raspberry pie j’adore c’est vraiment cool, tu nous épargne des heures de recherche grâce a tes trouvailles. Une idée de tuto “commander des moteurs avec le raspB.” ça pourrais être pas mal. Merci encore !!!!!

    • Idleman Auteur ArticleRéponse

      C’est prévu (gestion d’un servo moteur avec le raspberry pi) mais j’ai pas encore trouvé d’application domotique àa ça (ça touche plus la robotique, et je n’ai pas envie de me lancer la dedans pour le moment ^^) m’enfin je vais bien trouver quelque chose :p