Installer Grafana sur macOS et Raspbian pour Raspberry Pi. Exemple de dashboard pour objet connecté MySensors avec Node-RED et InfluxDB [Màj]

Grafana est un logiciel Open Source qui permet de réaliser des dashboards et des graphiques de données qui dépendent du temps. Grafana fonctionne sur PC Windows (64-bits), macOS et Raspbian pour Raspberry Pi. Grafana supporte 6 bases de données (CloudWatch, Elasticsearch, Graphite, InfluxDB, OpenTSDB et Prometheus). Grafana est très bien adapté pour afficher des données en provenance d’objets connectés. C’est une solution de choix pour créer un dashbord élégant pour vos projets Arduino, ESP8266 ou ESP32.

 

Dans ce tutoriel nous allons voir comment installer Grafana sur Raspberry Pi ou macOS. On utilisera les mesures d’une sondes de température développée avec un Arduino Nano et la librairie MySensors. Les données ont été collectées à l’aide de Node-RED puis stockées dans une base de données InfluxDB.

Exemple, fabriquer un dashboard pour vos objets connectés DIY

Pour montrer ce qu’on peut faire avec Grafana, je vous propose d’utiliser le projet précédent de sonde de température développée avec un Arduino Nano. Les mesures sont transmises par ondes radio à une Gateway MySensors. On utilise Node-RED pour récupérer et décoder les mesures transmises à l’aide du protocole MySensors. Les mesures de température et d’humidité seront stockées dans une base de données InfluxDB. Enfin, on connectera Grafana à la base de données InfluxDB pour tracer les graphiques en temps réel.

 

 

Avant de vous lancer dans l’installation de Grafana et la réalisation du dashboard, voici quelques articles à lire pour débuter

Bien débuter avec la libraire MySensors v2
La librairie permet de développer des objets connectés qui communiquent par ondes radio. Idéal en l'absence de couverture WiFi pour créer un réseau d'objets connectés
Bien débuter avec la libraire MySensors v2
Fabriquer une Gateway WiFi avec un module ESP8266
Il est très facile de communiquer avec un réseau d'objets connectés MySensors depuis en serveur domotique en fabriquant une Gateway WiFi à l'aide d'un module ESP8266
Fabriquer une Gateway WiFi avec un module ESP8266
Fabriquer une sonde de température Arduino Nano DHT22 MySensors
transmission par ondes radio avec MySensors v2 et nRF24L01
Fabriquer une sonde de température Arduino Nano DHT22 MySensors
Installer InfluxDB sur Raspberry Pi, Windows, macOS
Découverte du Shell. Créer une base de données, politique de rétention
Installer InfluxDB sur Raspberry Pi, Windows, macOS
MySensors v2 : décoder/envoyer des messages avec Node-RED
Il est très facile de décoder le protocole MySensors avec Node-RED
MySensors v2 : décoder/envoyer des messages avec Node-RED
Enregistrer des mesures d'un objet connecté MySensors dans une base InfluxDB à l'aide de Node-RED
Comment utiliser Node-RED pour enregistrer des mesures en provenance d'objets connectés MySensors, Arduino Serial, MQTT... dans une base de données InfluxDB
Enregistrer des mesures d'un objet connecté MySensors dans une base InfluxDB à l'aide de Node-RED

Installer Grafana sur Raspbian pour Raspberry Pi

Avant d’installer Grafana, il est nécessaire d’installer quelques ressources et d’indiquer à Raspbian ou récupérer les sources de Grafana

sudo apt-get install apt-transport-https curl
curl https://bintray.com/user/downloadSubjectPublicKey?username=bintray | sudo apt-key add -
echo "deb https://dl.bintray.com/fg2it/deb stretch main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

L’installation ne dure que quelques minutes.

Par sécurité, le protocole HTTP qui permet d’accéder à l’interface WEB à l’API de Grafana est désactivé. On  on va modifier le fichier de configuration et activer le protocole HTTP en modifiant le fichier /etc/grafana/grafana.ini

sudo nano /etc/grafana/grafana.ini

Dé-commentez le protocole http et le port. Par sécurité, vous pouvez également restreindre l’accès à Grafana aux postes spécifiés avec la clé http_addr

[server]
# Protocol (http, https, socket)
protocol = http

# The ip address to bind to, empty will bind to all interfaces
;http_addr =

# The http port  to use
http_port = 3000

Après avoir effectué ces modifications, on redémarre le service Grafana

sudo service grafana-server restart

Installer Grafana sur macOS

Grafana s’installe sur macOS à l’aide de Homebrew. Homebrew est un gestionnaire de paquets pour macOS (page officielle du projet).

 

node-red mongodb brew

Ouvrez un Terminal et exécutez cette commande

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Répondez aux questions pour terminer l’installation de Homebrew sur votre Mac.

Maintenant, on peut installer Grafana très facilement en exécutant cette commande (source des commandes).

brew install grafana

A la fin de l’installation Brew nous donne quelques indications précieuses sur les répertoires d’installation (pas toujours très bien documentés)

==> Downloading https://homebrew.bintray.com/bottles/grafana-3.1.1.el_capitan.bottle.1.tar.gz
######################################################################## 100,0%
==> Pouring grafana-3.1.1.el_capitan.bottle.1.tar.gz
==> Using the sandbox
==> Caveats
To have launchd start grafana now and restart at login:
  brew services start grafana
Or, if you don't want/need a background service you can just run:
  grafana-server --config=/usr/local/etc/grafana/grafana.ini --homepath /usr/local/share/grafana cfg:default.paths.logs=/usr/local/var/log/grafana cfg:default.paths.data=/usr/local/var/lib/grafana cfg:default.paths.plugins=/usr/local/var/lib/grafana/plugins
==> Summary
🍺  /usr/local/Cellar/grafana/3.1.1: 2,727 files, 94.0M

On démarre le service Grafana avec cette commande (acceptez les connexions entrantes dans la fenêtre qui s’ouvre après quelques instants).

brew services start grafana

La mise à jour se fera avec cette commande

brew reinstall grafana

Si vous aimez l’aventure et essuyer les plâtres, vous pouvez aussi tester la version de développement.

brew install --HEAD grafana/grafana/grafana

La mise à jour se fait avec la commande

brew reinstall --HEAD grafana/grafana/grafana

Première connexion à Grafana

Ouvrez n’importe quel navigateur internet et saisissez cette adresse

http://localhost:3000/login

Grafana dispose de son propre système de gestion d’utilisateur avec authentification et gestion de droits. On peut se connecter avec l’identifiant admin/admin

grafana login

Ou créer directement un nouveau compte utilisateur. Dans ce cas, on doit renseigner un nom, un email et un mot de passe.

https://www.projetsdiy.fr/wp-content/uploads/2016/11/2-grafana-setup-creation-compte.png

On arrive sur un écran d’accueil vide

grafana dashboard premier lancement

Lorsqu’on vient de créer un compte, la dernière chose qu’il reste à faire est la création d’une organisation.

https://www.projetsdiy.fr/wp-content/uploads/2016/11/5-grafana-nouvelle-organisation.png

Ajouter des sources de données (Data sources)

Avant de pouvoir tracer quoi que ce soit, il faut déjà ajouter des sources de données. Allez dans le menu puis Data sources.

grafana menu data sources

Grafana supporte 6 sources de données :

  • CloudWatch. C’est un service de surveillance pour les utilisateurs de ressources Amazon AWS
  • Elasticsearch. C’est une base de données orientée document qui est très performante pour réaliser très rapidement des recherches dans de très grands volumes de données.
  • Graphite. Une base de données Open Source pour le monitoring adaptés pour surveiller des services ou des sites internet (entre autre)
  • InfluxDB. Une base de données Open Source développée par la société InfluxData spécialisée dans l’enregistrement de données fonction du temps. Elle est très bien adaptée pour collectée des mesures en provenance d’objets connectés
  • OpenTSDB. Equivalent d’InfluxDB
  • Prometheus. Egalement un équivalent à InfluxDB. Prometheus est disponible pour macOS, Linux et Windows.

Cliquez sur Add data source pour commencer l’ajout d’une nouvelle source de données.

6-grafana-ajout-data-source

Connecter une base InfluxDB

Dans ce tutoriel, nous allons nous connecter à une base de données InfluxDB alimentée par des mesures d’une sonde de température DHT22 (réalisé avec  la librairie MySensors) à l’aide d’un flow Node-RED. InfluxDB est une base de données spécialisée dans l’enregistrement de données qui dépendent du temps. C’est exactement le cas des objets connectés qui produisent des mesures (taux de CO2, luminosité d’une pièce, température) ou des états (ouverture d’une porte, alarme…).

Lisez ce tutoriel pour installer et débuter avec InfluxDB sur votre PC Windows (64-bits), MAC ou Raspberry Pi.

Configurer la data source :

  • Name : donnez un nom à la source de donnée. C’est le nom qui sera affiché dans la liste des sources lors de la création d’un graphique.
  • Default : cochez si c’est votre source de données par défaut pour gagner un peu de temps
  • Type : choisissez InfluxDB
  • Url : l’adresse de la base de données. Si Grafana est installé sur la même machine que la base de données, ce sera http://localhost:8086. Adaptez l’Url en fonction de votre configuration.
  • Http Auth : Choisissez le mode d’authentification adequate si votre base est protégée
  • Database : le nom de la base sur laquelle est branchée la source
  • User et Password : si vous avez mis en place une protection sur cette database, renseignez les champs.
  • Enregistrez avec Save & Test. Si tout est correct un message vert Success, Data source is working doit apparaitre en bas

grafana edit data source influxdb

Dans cet exemple, j’ai configuré deux sources de données : Températures et Humidité.

grafana-source-donnees-temperature-humidite-configurees

Ajouter un Dashboard

Passons aux choses sérieuses maintenant et ajoutons un nouveau Dashboard qui va contenir nos graphiques. Ouvrez le Menu puis Dashboards puis + NEW.

grafana nouveau new dashboard

Donnons lui un nom. Appuyez sur la roue crantée puis Settings (dans la barre).

grafana-edition-dashboard

Donnez un nom au Dashboard. Ici, j’ai donné le nom Capteurs MySensors.

grafana-general-settings-dashboard

Enregistrez avec le petit disque ou CTRL+S.

grafana-sauvegarde-graphique

Ajouter des mesures d’une sonde DHT22 MySensors

Ouvrez le Dashboard. L’ergonomie est un peu déroutant. Pour ajouter un graphique (ou un autre élément du Dashboard), il faut ouvrir le petit tiroir vert situé sur le bord gauche de l’écran.

Remarque. Il y a un tiroir pour chaque ligne que l’on ajoute (Add Row).

grafana-nouveau-graph

La première chose à faire et de choisir la source de données. Par exemple sélectionnez la source Température dans la liste Panel data source.

grafana-choix-data-source

Dépliez ensuite la source A. Sélectionné la donnée à afficher. Ici, on choisira noeud3 (qui correspond au noeud 3 de l’objet MySensors sur lequel je récupère les mesures). Le champ Alias By permet d’attribuer une étiquette qui sera affichée dans la légende. Sinon par défaut, Grafana utilise le nom de la source utilisée.

grafana-edition-source-de-donnees-selection-variable-noeud3

Allez ensuite dans l’onglet General et donnez un titre au graphique (qui sera affiché en haut du graphique).

grafana-edition-graphique-onglet-general

Maintenant, dans l’onglet Axes, on peut préciser l’unité de la mesure. Dans ce cas, on choisira °C.

grafana-graphique-unite-axe-y

On peut aussi définir la valeur mini (Y-Min) et maximum (Y-Max) de l’échelle. Il est aussi possible de créer un seconde axe Y à droite. Enfin, on peut ajouter des lignes (ou zones) de seuil (Thresholds) qui permet de définir une zone dans laquelle on voudrait que la mesure se trouve. La version 4 introduit un système d’alerte très utile que nous découvrions dans un prochain tutoriel.

grafana-parametres-graphique-onglet-axes

Dans l’onglet Legend, on peut activer ou désactiver son affichage et choisir des valeurs supplémentaires : minimum, maximum, moyenne (avg pour average), actuelle (current), total et enfin le nombre de décimales.

grafana-editino-graphique-onglet-legend

Enregistrez le graphique avec le disque ou Ctrl+S.

grafana-sauvegarde-graphique

Premiers graphiques Grafana

Une fois la configuration terminée, voici ce que l’on obtient. Ce graphique affiche les mesures récupérées depuis une sonde radio 433MHz développée avec un Arduino Nano et la librairie MySensors. Il retourne les mesures d’un sonde Dallas DS18B20 étanche ainsi que la température et l’humidité d’un DHT22.

 

grafana graph dashboard mysensors dht22 temperature humidite

On peut faire un zoom sur une portion du graphique avec la souris ou à l’aide du sélecteur de période.

grafana choix periode de temps

Ouvrez le pour définir une plage personnalisée. On peut choisir à droite des présélections ou manuellement. Le mot clé now est utilisé pour définir le temps actuel (maintenant). Si on veut les mesures sur la dernière heure, il suffit d’indiquer now-1h. Jusqu’à maintenant (To -> Now). Enfin, si on souhaite que le graphique soit actualisé régulièrement, on peut choisir la fréquence dans la liste Refreshing every). Ici, le graph sera actualisé toutes les 5 secondes.

grafana-periode-affichee-frequence-rafraichissement

Voilà, c’est terminé pour cette première partie. Grafana est vraiment un outil de présentation graphique très puissant et assez simple d’utilisation.

Tutoriels objets connectés DIY

D’autres tutoriels pour fabriquer vos objets connectés DIY

Voir tous les autres tutoriels de la catégorie objets connectés

 

Mises à jour

[06/06/2018] – Procédure d’installation de Grafana sur Raspbian Stretch. Liens vers les autres tutoriels pour développer un dashboard pour IoT avec Grafana

Print Friendly, PDF & Email

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Tags:

Domotique et objets connectés à faire soi-même