Comment Monitorer son Raspberry (Raspcontrol) ?


Nous allons installer Raspcontrol pour monitorer par une interface web notre Raspberry :




Pré-requis : Avoir un serveur web fonctionnel (LAMP) / (Nginx)


Connectez-vous en local sur votre raspberry ou par ssh avec l'utilisateur pi. Vous pouvez aussi prendre n'importe quel utilisateur avec les droits sudo.

Installation de PHP5-cli:

sudo apt-get install php5-cli

Vérification de l'installation de php :

php -v

Téléchargement de Raspcontrol :

wget https://github.com/harmon25/Raspcontrol/zipball/master

Décompression de l'archive :

unzip master

Changement du nom du dossier pour un nom plus simple:

mv harmon25-raspcontrol-00b5384/ Raspcontrol

Pensez à changer la valeur 00b5384 en fonction de la version téléchargé.

Nous allons maintenant déplacer le dossier Raspcontrol dans le répertoire /var/www :

sudo mv Raspcontrol /var/www/

Création du login et du mot de passe pour accèder à Raspcontrol:

sudo mkdir /etc/raspcontrol
sudo touch /etc/raspcontrol/database.aptmnt
sudo nano /etc/raspcontrol/database.aptmnt

Copiez Collez le contenu suivant et sauvegardez :

{
"user":"admin",
"password":"admin"
}

Veuillez changer le login et le mot de passe.

On ajoute maintenant l'utilisateur www-data au groupe video

sudo usermod -a -G video www-data

Configurez Nginx pour supporter Raspcontrol


sudo nano /etc/nginx/sites-enabled/default

Ajoutez après :

location / {
    root   /var/www;
    index  index.php index.html index.htm;

ces 2 lignes

    rewrite ^/Raspcontrol/details$ /Raspcontrol/index.php?page=details last;
    rewrite ^/Raspcontrol/logout$ /Raspcontrol/login.php?logout last;

On relance Nginx :

sudo service nginx reload

Vous pouvez maintenant vous connecter à Raspcontrol : http://votreip/Raspcontrol

Attention au R Majuscule


Configurez Apache2 pour supporter Raspcontrol


On active l'extention rewrite d'apache :

sudo a2enmod rewrite

On édite le fichier par défault d'apache :

sudo nano /etc/apache2/sites-enabled/000-default

Pour la version SSL :

sudo nano /etc/apache2/sites-enabled/default-ssl

Cherchez la section :

<Directory /var/www/>
[...]
</Directory>

Et modifiez comme suit :

Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all

On relance apache2 :

sudo service apache2 reload

Vous pouvez maintenant vous connecter à Raspcontrol : http://votreip/Raspcontrol

Attention au R Majuscule

Comments

Matthieu
2012/11/27 10:32 reply

Mais question bête, faire tourner un ptit serveur web pour afficher ce genre d'info, ça bouffe combien de ressource en plus ?

Sharka
2012/11/27 12:18 reply

Salut,

Après une addition toute simple on arrive à : 10,27Mo de ram

Screen : 1268Ko

Sh : 516Ko

Php : 8480Ko

Voilà je penses que ça surcharge pas de trop le Raspberry

a+

Matthieu
2012/11/28 09:49 reply

Bon, alors je vais tester ça !

….

Humm, quand j'essai d'installer php5, on me dit que c'est déjà présent, et quand je fais php -v, j'ai une erreur command not found.

Sharka
2012/11/28 12:29 reply

Salut essaye d'installer en plus :

sudo apt-get install php5-cli

et si php -v ne fonctionne toujours pas install :

sudo apt-get install php5*
Chris
2012/11/30 11:49 reply

Salut, Excellente présentation ! Pour ceux qui souhaitent un monitoring plus poussé (interface, historique, etc.) pour une charge machine plus ou moins équivalente, il y a monitorix qui marche plutot par mal, c'est ce que j'ai installé. Par contre c'est beaucoup moins facile à installer que ce que Sharka a très bien expliqué car il faut un serveur web et un wrapper CGI mais c'est diablement efficace ;-)

Chris http://pihomeserver.wordpress.com/

Sharka
2012/11/30 12:02 reply

Salut Chris,

Merci pour Monitorix je vais l'essayer et pourquoi pas mettre en ligne un autre tutoriel avec Monitorix !!

a+

mccharlet
2012/11/30 20:41 reply

Bonjour,

Afin de ne pas utiliser des ressources inutilement, on peut supprimer du démarrage le lancement du serveur Apache qui n'est pas utile pour Raspcontrol.

update-rc.d apache2 remove

De plus pour le démarrage, on peut mettre le script dans /etc/rc.local. C'est plus propre

Cordialement

Chris
2012/11/30 21:29 reply

@mccharlet: Je n'avais pas compris qu'il fallait Apache. J'avais l'impression que le monitoring avait un serveur web intégré. Apache peut être utilisé mais pas obligatoire (d'après la doc du site) Chris http://pihomeserver.wordpress.com/

Sharka
2012/11/30 22:08 reply

Effectivement il n'y a pas besoin d'apache pour faire tourner raspcontrol, il y'a bien un mini serveur web intégré.

Cordialement,

mccharlet
2012/12/03 20:38 reply

Pas besoin de Apache, mais il s'installe quand on installe php5 (dépendance)

Cordialement

Sharka
2012/12/05 00:40 reply

Salut,

Effectivement apache2 s'install bien avec php5.

Je viens de faire le test sans aucun serveur web en installent juste php5-cli et ça fonctionne à merveille.

Du coups tuto modifié pour installer uniquement php5-cli qui n'install que quelques dépendances :

sudo apt-get install php5-cli 
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés : 
  libonig2 libqdbm14 php5-common
Paquets suggérés :
  php-pear
Les NOUVEAUX paquets suivants seront installés :
  libonig2 libqdbm14 php5-cli php5-common
0 mis à jour, 4 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 3 262 ko dans les archives.
Après cette opération, 8 735 ko d'espace disque supplémentaires seront utilisés.

Cordialement,

Jonathan
2012/12/16 12:05 reply

Bonjour,

La fonction Screen ne marche pas chez moi, auriez vous une idée ?

Jonathan
2012/12/16 12:09 reply

Désolé problème résolu, c'est ça quand on ne lit pas tout Faute avouée faute à moitié pardonnée non ?

David
2012/12/27 18:35 reply

Merci pour le carnet de notes, pas mal d'infos utiles et ça permets de retrouver facilement les opérations à réaliser ;)

Paul
2013/01/03 14:39 reply

Bonjour,

Je trouve la manip de lancer un script dans un screen assez sale.

Pquoi ne pas tout simplement exécuter le script ./start.sh tout simplement?

Sharka
2013/01/03 14:45 reply

Salut Paul,

Tout simplement car le script se lance sans avoir la possibilité de faire autre chose à coté il prend le terminal en entier et si tu fait : ctrl+x ça quitte le process d'ou l'intérêt de le mettre dans un screen pour le garder en permanence :)

a+

Chris
2013/01/03 15:04 reply

La commande screen (il y a aussi dtach) permet de dissocier le processus de la session de l'utilisateur. Si tu lances ton processus normalement, tu n'as plus la main et tu dois attendre la fin de l'exécution. Si tu lances avec le '&' derrière tu récupères la main mais si tu quittes ta session, le processus est arrêté. Avec screen, ça laisse le processus s'exécuter même si on se déloggue.

Nickko
2013/01/31 23:33 reply

Merci Chris, je me demandais justement l'intérêt de screen par rapport au & en fin de ligne que j'utilise beaucoup.

Nickko
2013/01/31 23:35 reply

Petite question supplémentaire, si on lance Raspcontrol depuis Cron, quel risque y a-t-il à utiliser & plutôt que screen ?

La session qui à lancé raspcontrol ne devrait pas pouvoir s'arrêter toute seule.

nicolabricot
2013/02/13 17:34 reply

Bonjour,

Si vous avez un serveur web d'installé sur le RBi, vous pouvez déplacer le dossier “app” vers un répertoire configuré avec votre serveur web et ainsi y accéder depuis une page web.

Cela permet d'utiliser le serveur web existant pour faire tourner l'appli, et il suffit de vérifier que le serveur web tourne pour y accéder, sans devoir configurer une tâche cron :)

Merci pour les astuces, et bonne continuation !

Fidoboulettes
2013/02/28 16:48 reply

Bonjour à tous, merci pour ce tuto… j'ai par contre un souci… lors de la création de l'utilisateur, ça mouline sans cesse et rien ne se passe… chez moi j'ai configuré le raspcontrol sur le port 8081… car j'ai xbian comme système d'exploitation et lui même utilise ce port comme serveur web…. est ce que cela pourrait provenir de ça? merci à vous

Flasheur
2013/03/01 21:02 reply

Bonsoir Fidoboulettes,

En effet ça peut provenir de ça puisque lorsque tu accèdes à ton port 8081 ton raspberry saura pas s'il faut rediriger vers le xbian ou bien le raspcontrol. Applique la règle des 1 port = 1 application. Tu peux appliquer plusieurs ports à une application, mais la réciproque est fausse. Pas plusieurs applications pour un port.

Fidoboulettes
2013/03/02 06:41 reply

Ok, c'est bien ce que je pensais… j'avais donc bien désactivé le serveur web de xbmc (au cas ou), changé le port d'écoute (ai pris le 8081) mais rien a faire…. j'ai donc retenté le tuto d'install mais là autre soucis, je tombe directement sur la page de login avec des paramètres de connexion erroné…. j'aimerai bien repartir de 0 et du coup je me demandais comment désinstaller tout le bouzin et rrecommencer? merci à toi

Flasheur
2013/03/04 21:22 reply

Si tu veux vraiment recommencer depuis le début je ne peux que te conseiller de reformater ta carte SD et de remettre l'OS dessus.

Fidoboulettes
2013/03/05 05:53 reply

@Flasheur: Hé bien effectivement, je suis repartit d'une installe toute proprette, juste Raspbian et raspcontrol et là ça fonctionne bien…. je vais qd même retenter avec mon xbian déjà installé pour voir (chui joueur… :-) )sinon, je repartirai à la base… mais ça ça m'embête qd même… merci à toi qd même…..

Fidoboulettes
2013/03/05 19:10 reply

Re, effectivement, fonctionne bien sous xbian aussi… penser juste à faire un apt-get update avant de lance l'install de php5-cli… sinon ça ne fonctionne pas…. bon ben je vais réinstaller apache et owncloud pour voir combien ça bouffe… paske dès fois, XBMC rame pas mal qd même avec mon “petit” rpi-256. merci à toi.

Fidoboulettes
2013/03/07 06:19 reply

@nicolabricot: Bonjour, cette fonctionnalité m’intéresse. J'ai mon serveur web qui est installé dans /var/www/. Si je comprend bien, je déplace le dossier “app” dans ce répertoire, je suppose que je dois donner les droits à www-data et après?

merci à toi

Fidoboulettes
2013/03/07 17:28 reply

@Fidoboulettes: A moi même… et à tous… donc en fait c'est tout le dossier qu'il faut déplacer…. un chown -R www-data:www-data sur celui ci…. un /etc/init.d/nginx reload (pour ma part) et ensuite http://IP_du_RPI/Raspcontrol/ et ça roule….

Fyker
2013/03/25 08:32 reply

Merci pour le tuto, mais j'ai une question : comment changer le mot de passe pour le login du panneau de contrôle ? Merci.

Sharka
2013/03/25 11:13 reply

Salut,

Pour changer le mot de passe je t'invite à éditer le fichier suivant :

sudo nano /etc/raspcontrol/database.aptmnt

a+

pasb71
2013/03/27 18:42 reply

Bonsoir,

Je suis nouveau. Ces tutos sont vraiment super et tous fonctionnent à merveille.

Par contre depuis que j'ai suivi le tuto pour installer le serveur cloud il met impossible de me connecter sur Raspcontrol. Je met mon nom d'utilisateur et mot de passe mais impossible de se connecter. Il n'y a pas de message d'erreur. Merci encore

Sharka
2013/03/27 23:35 reply

Salut pasb71,

As tu changé le port par défaut de raspcontrol comme dans le tutoriel ? je penses qu'il y a conflits sur les ports.

tapes :

sudo netstat -tap

Et donne nous le résultat. Normalement tu devrais voir une ligne avec le port 80 et l'autre avec le port 8080 si tu as pris le port 8080 pour raspcontrol. A+

pasb71
2013/03/28 14:02 reply

Bonjour,

Maintenant ça fonctionne de nouveau. Ce que j'ai fais est de désinstaller raspcontrol est installé à nouveau.

Mais voici quand meme le résultat

Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 *:http-alt *:* LISTEN 1975/php tcp 0 0 *:http *:* LISTEN 1893/apache2 tcp 0 0 *:x11-1 *:* LISTEN 2593/Xtightvnc tcp 0 0 *:ssh *:* LISTEN 2294/sshd tcp 0 0 *:1723 *:* LISTEN 2231/pptpd tcp 0 0 localhost:mysql *:* LISTEN 2580/mysqld tcp 0 0 *:5901 *:* LISTEN 2593/Xtightvnc tcp 0 0 unknownb827eb9d9b62:ssh PORTABLEHPW8.home:50085 ESTABLISHED 2910/sshd: pi [priv

merci

fonkyrasp
2013/04/30 01:13 reply

Salut,

Je n'ai pas le fichier start.sh dans /Raspcontrol

Bizarre non ?

fonkyrasp
2013/04/30 01:23 reply

d'ailleurs j'ai déjà installé Apache2 (mais je n'ai que la page web d'origine je n'ai encore rien touché). Cela peut-il posé problème ?

nicolabricot
2013/04/30 01:32 reply

Salut fonkyrasp,

Le dépôt a récemment mis été mis à jour, et l'application “server” (donc le fichier start.sh) proposé n'a pas encore été remise…

Normalement, si tu as installé Apache (“service apache2 start” pour lancer le server si tu ne l'as jamais fait), tu devrais avoir une page avec juste un “It's work”. Si tu ne l'as pas, c'est que le serveur n'est pas lancé, ou l'installation s'est mal déroulée…

Sharka
2013/04/30 09:50 reply

@fonkyrasp :

Nouvelle procédure :

une fois téléchargé ET renomé on le déplace dans le dossier www :

sudo mv Raspcontrol /var/www/

Création du fichier d'authentification :

sudo mkdir /etc/raspcontrol
sudo touch /etc/raspcontrol/database.aptmnt
sudo nano /etc/raspcontrol/database.aptmnt

Y mettre à l'intérieur :

{
"user":"admin",
"password":"admin"
}
sudo usermod -a -G video www-data

Vous pouvez bien sur changer le login & le mot de passe :)

Vous pouvez maintenant vous connecter sur l'interface avec l'adresse : http://ipraspberry/Raspcontrol

a+

Fidoboulettes
2013/04/30 11:30 reply

sympa, merci pour la mise a jour du tuto… par contre j'ai un souci, lorsque je clique sur les liens pour avoir les dérails, j'ai ma page web qui affiche une erreur 404 Not found… une idée dur pk du comment? Je precise que je suis en https avec un rewrite rule pour tout rebalancer sur la partie sécurisée… ça pourrais provenir de là non?

Sharka
2013/04/30 11:37 reply

Non c'est normal il manque cette partie du logiciel il n'est pas présent dans l'archive… peut être dans de prochaines mise à jours

a+

fonkyrasp
2013/04/30 11:52 reply

@Sharka: Super, maintenant ça marche mais j'ai bien sur le même problème que Fidoboulettes, Raspcontrol est donc presque inutile. Mais merci Sharka ! @nicolabricot: D'accord. Mais si si apache se lance j'ai bien le “It's work”. En attendant la partis “Détails” de Raspcontrol maintenant…

Fidoboulettes
2013/04/30 12:11 reply

Ah, ok… ben zut alors…. merci

Walslayer
2013/04/30 15:00 reply

Salut à tous, merci pour la mise à jour du tuto. J'avais le même problème que vous avant de voir dans la partie “issues” (sur github) où ce trouve les fichiers sources. Donc si vous n'arrivez pas à voir les détails ni à vous déconnecter, c'est parce que vous avez probablement pas activé la réécriture d'URL. Je vous invite à consulter la page suivante : https://github.com/Bioshox/Raspcontrol/issues/115 pour plus d'informations. Si cela peut être inclus dans le tuto ce serait top :)

Sharka
2013/04/30 15:48 reply

Pour nginx:

sudo nano /etc/nginx/sites-enabled/default 

Ajouter après :

location / {
                root   /var/www;
                index  index.php index.html index.htm;
rewrite ^/Raspcontrol/details$ /Raspcontrol/index.php?page=details last;
                rewrite ^/Raspcontrol/logout$ /Raspcontrol/login.php?page=logout last;
sudo service nginx reload

La page détails fonctionnera

Pour Apache2:

sudo a2enmod rewrite

Si ça ne suffit pas veuillez faire en plus :

sudo nano /etc/apache2/sites-enabled/000-default

Cherchez :

<Directory /var/www/>
            [...]
    </Directory>

Et ajoutez y les options suivante si elle n'y sont pas :

Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
sudo service apache2 reload

Et normalement c'est ok.

Je n'ai pas pu testé n'aillant pas de serveur apache juste nginx.

A confirmer

a+

fonkyrasp
2013/04/30 16:41 reply

@Sharka: Je confirme ça marche pour Apache, impec ! Merci.

Sharka
2013/04/30 16:46 reply

super je vais réécrire le tuto au propre maintenant :)

merci pour vos retours :)

Fidoboulettes
2013/04/30 17:01 reply

ça marche aussi pour moi sauf que j'ai du éditer le fichier default-ssl et non 000-default

nicolabricot
2013/04/30 17:32 reply

@#416 @#417

La page “details” a bien été implémentée. Néanmoins, comme vous l'aurez remarqué, si la réécriture d'URL n'est pas active, le serveur web ne trouve pas la page, et affiche une erreur 404…

Un aperçu de la page détails : http://pihomeserver.wordpress.com/2013/04/28/nouvelle-version-de-raspcontrol/

Sharka
2013/04/30 17:35 reply

tuto mis à jours ^^

Bencici
2013/05/01 20:03 reply

Impossible de trouver “location / {

  root   /var/www;
  index  index.php index.html index.htm;" dans /etc/nginx/sites-enabled/default pour moi :S
Bencici
2013/05/01 21:19 reply

@Bencici: J'ai rien dis ^^ par contre j'ai le droit à un joli “404 Not Found” lorsque je vais sur http://192.168.0.17/raspcontrol/ :S

Sharka
2013/05/01 23:15 reply

attention c'est Raspcontrol avec un R Majuscule ^^

http://192.168.0.17/Raspcontrol/

Bencici
2013/05/02 10:00 reply

@Sharka: <3 merci je pensais pas que la majuscule bloquerai tout ^^

Sharka
2013/05/02 10:12 reply

@Bencici: oui linux est sensible à la casse :)

Bencici
2013/05/02 10:19 reply

Voilà ça marche http://bit.ly/161MCQO le CPU chauffe un peu mais sa doit être la faute à l'overclock (réglé sur medium) par contre petit problème côté storage. Je viens aussi d'apercevoir le hostname en haut, le problème de NDD viens surement d'ici.

Sharka
2013/05/02 10:25 reply

chez moi ça fonctionne bien mais pas le même firmware.

ça vient peut être de la… http://i.snag.gy/6S7Mf.jpg

babidyxp
2013/05/02 12:16 reply

Une petite correction,

Dans cette partie : On ajoute maintenant le group www-data au groupe video

sudo usermod -a -G video www-data

Je pense qu'il faudrait plutôt dire on ajoute le user www-data au groupe video

Sharka
2013/05/02 12:27 reply

merci corrigé :)

Jeremy
2013/05/04 08:44 reply

Bonjour,

J'ai suivi le tuto à la lettre jusqu'à la partie Apache (que je n'ai pas faite) et je ne peux pas accéder à l'application… J'ai en revanche bien installer nginx.

Y a-t-il une action particulière à faire ? Merci !

Sharka
2013/05/04 08:47 reply

Peut tu m'en dire un peux plus ?

message d'erreur ?

url que tu tape dans le naviguateur pour accéder au Raspcontrol ?

contenu de ton fichier /etc/nginx/sites-enabled/default ?

Merci

Jeremy
2013/05/04 18:24 reply

Je tape tout simplement http://192.168.1.5/Raspcontrol sur un autre ordi sur le réseau et la page est indisponible, comme si elle n'existait pas (Google Chrome n'est pas parvenu à accéder à la page).

J'ai modifié la catégorie “location /” du fichier default comme ceci :

      location / {
              # First attempt to serve request as file, then
              # as directory, then fall back to displaying a 404.
              try_files $uri $uri/ /index.html;
              root /var/www;
              index index.php index.html index.htm;
              rewrite ^/Raspcontrol/details$ /Raspcontrol/index.php?page=details l$
              rewrite ^/Raspcontrol/logout$ /Raspcontrol/login.php?page=logout las$
              # Uncomment to enable naxsi on this location
              # include /etc/nginx/naxsi.rules
      }
Jeremy
2013/05/04 18:49 reply

Après avoir fait un ”/etc/init.d/nginx restart”, j'obtiens ceci en allant sur l'url :

500 Internal Server Error

Sharka
2013/05/04 22:37 reply

@Jeremy :

te voila le contenu de mon fichier nginx : http://pastebin.com/6EDez3Cp

essaye avec ça.

a+

nicolabricot
2013/05/05 01:35 reply

l y a une erreur sur cette directive : rewrite ^/raspcontrol/logout$ /raspcontrol/login.php?page=logout last;

Il faut la remplacer par : rewrite ^/raspcontrol/logout$ /raspcontrol/login.php?logout last;

Sinon la déconnexion ne fonctionne pas…

Sharka
2013/05/05 09:40 reply

merci c'est corrigé :)

Jeremy
2013/05/05 20:28 reply

Merci.

Je ne comprends toujours pas. J'ai copié/collé le contenu de ton fichier et quand je fais un “sudo service nginx reload”, j'ai une erreur :

“Restarting nginx: nginx: [emerg] unexpected ”}” in /etc/nginx/sites-enabled/default:13 nginx: configuration file /etc/nginx/nginx.conf test failed”.

Je ne sais pas si ça a un rapport mais j'ai installé transmission sur mon Raspberry avec l'interface graphique, à laquelle j'accède à cette adresse : 192.168.1.5:9091

Sharka
2013/05/05 23:48 reply

@Jeremy: ton erreur indique qu'il y a un doublon d'accolade } dans ton fichier.

Indente bien le fichier et regarde d'où ça peut provenir. ( ligne 13 très certainement)

a+

nicolabricot
2013/05/06 00:17 reply

Bonsoir,

Juste une petite précision concernant la partie sur la configuration d'Apache. Il est préférable d'éditer le fichier contenu dans le dossier “sites-available” plutôt que dans le dossier “sites-enable” ;)

http://serverfault.com/questions/83508/purpose-of-debian-sites-available-and-sites-enabled-dirs

Bencici
2013/05/06 20:01 reply

Depuis une MAJ du firmware (#434 maintenant) j'ai un “502 Bad Gateway” sur http://bencici.me/Raspcontrol et dans les logs : “2013/05/06 19:54:36 [error] 2206#0: *15 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.0.254, server: localhost, request: “GET /Raspcontrol/ HTTP/1.1”, upstream: “fastcgi:127.0.0.1:9000”, host: “bencici.me” ” Une idée ?

Bencici
2013/05/06 20:05 reply

Résolu en redémarrant nginx

Fidoboulettes
2013/05/10 17:17 reply

Bonjour, Pour info….il y a un petit nouveau dans le “monitoring”… très facile à installer… http://www.raspberrypi.org/phpBB3/viewtopic.php?f=65&t=43235&p=346706#p346706

Bencici
2013/05/18 10:47 reply

J'ai de nouveau un “502 Bad Gateway” en allant sur http://bencici.me/Raspcontrol/ :$

Sharka
2013/05/18 15:25 reply

As tu essayé de reload nginx ?

<code bash> sudo service nginx reload </code bash>

Bencici
2013/05/19 09:46 reply

@Sharka: Oui mais toujours rien :$

J'ai même tenté de tout réinstaller avec les instructions de nicolabricot sur le wiki…