On continue dans notre périple du graphage de notre consommation électrique comme vu en première partie. Nous allons cette fois-ci nous intéresser à la partie serveur.
Installation & configuration d’InfluxDb
Sur le serveur à destination les données provenant du raspberry, récupérez la dernière version d’InfluxDb sur http://influxdb.com/download/
wget http://s3.amazonaws.com/influxdb/influxdb_latest_amd64.deb
dpkg -i influxdb_latest_amd64.deb
On édite la configuration d’InfluxDb (/opt/influxdb/shared/config.toml) pour activer le support du protocole collectd, voir l’article que j’ai déjà écrit à ce sujet. On redémarre pour prendre en compte le changement.
Vérifions que le port 25826/udp est bien ouvert.
sudo ss -lupn # liste des port udp en écoute avec le processus
State Recv-Q Send-Q Local Address:Port Peer Address:Port
...
UNCONN 0 0 :::25826 :::* users:(("influxdb",pid=7405,fd=22))Maintenant nous allons créer les utilisateurs et les bases nécessaires pour stocker les données. Connectez-vous avec un navigateur web sur l’interface web d’administration InfluxDb http://monserveur:8083 (root/root pour l’utilisateur et le mot de passe par défaut)

Interface d’administration InfluxDb
Créez tout d’abord une base nommée collectd et un utilisateur homonyme pour cette base; celle-ci stockera les métriques collectés.
Créons ensuite une base grafana et un autre utilisateur, cette base stockera les données grafana, comme les tableaux de bord et les graphes.
Tout est terminé pour ce qui est de la configuration d’InfluxDb.
Démarrage de collectd
Sur le raspberry il est temps de démarrer collectd
/etc/init.d/collectd start
Pour vérifier que tout fonctionne bien, faîtes ps -edf |grep collectd vous devriez voir quelque chose comme cela
root 7129 7127 0 Jan12 ? 00:21:58 collectd -C /etc/collectd/collectd.conf -f pi 7141 7129 0 Jan12 ? 00:09:19 python -u /home/pi/collectd_teleinfo.py
On voit bien que notre script python tourne.
Maintenant vérifions qu’InfluxDb récupère bien les métriques, pour cela rendez-vous sur l’interface web d’administration dans la base collectd.
select * from /.*/ limit 1
Installation & Configuration de grafana
Je pars du principe que l’on créé un vhost dédié pour l’hébergement de grafana.
Pour le vhost rien de compliqué, il suffit de déclarer un Document Root qui pointe sur un répertoire /srv/www/grafana (un exemple pour nginx est disponible). Pensez-bien à activer le vhost.
On se rend dans le répertoire /srv/www et on place la dernière version de grafana disponible au format tar.gz sur la page http://grafana.org/download/.
On extrait l’archive ce qui va vous donner un répertoire grafana-1.x.x.
Créez un lien symbolique nommé grafana
/srv/www$ ln -s grafana-1.x.x grafana
Cela rendra plus simple les futures mises à jour de versions.
Testez que votre site grafana répond bien, vous devriez avoir une interface noire, c’est bon signe :).
On passe maintenant à la configuration de grafana pour interroger les données dans InfluxDb.
Dans le répertoire du vhost, copiez le fichier config.sample.js en config.js, et éditons ce dernier pour déclarer nos deux sources de données crées précédemment, de sorte que vous ayez quelque chose comme cela:
...
datasources: {
influxdb: {
type: 'influxdb',
url: "http://votre_serveur_influxdb:8086/db/collectd",
username: 'collectd_user',
password: 'collectd_pass',
},
grafana: {
type: 'influxdb',
url: "http://votre_serveur_influxdb:8086/db/grafana",
username: 'grafana_user',
password: 'grafana_pass',
grafanaDB: true
},
},
...On déclare les deux datasources créé précédemment, les url doivent être accessible par le navigateur web que vous utiliserez, un nom public est plus simple de ce point de vue. Notez que le second datasource a un attribut grafanaDB: true pour définir qu’il va stocker vos préférences Grafana.
Pour la configuration des tableaux de bord Grafana, ca sera dans le post suivant (à venir).