Pour un rendu optimal, activez JavaScript

Monitorer son domicile avec Jeedom et Grafana.

 ·  ☕ 3 min de lecture  ·  🩊 Propositionjoe

Avec CentOS en chef d’orchestre.

Pré-requis

  • Une installation fonctionnelle de Jeedom
  • Une machine virtuelle tournant sous CentOS
  • Si besoin d’avoir lu mon prĂ©cĂ©dent papier

Objectif

  • Installer Grafana, Influxdb, le pont Jeedom-Influxdb, le tout dans un environnement sous centOS

Contexte

Je vous propose un bon vieux tuto de barbu pour reprĂ©senter graphiquement tout ce qui est dotĂ© d’un capteur chez vous, et dont les infos remontent dans Jeedom. Jeedom n’est pas trop mal foutu de ce point de vu lĂ , mais je cherchais Ă  aller plus loin, ou plutĂŽt je cherchais Ă  utiliser un outil fait pour cela, je veux parler de Grafana.

Pourquoi CentOS plutĂŽt qu’une classique Debian? Ma prĂ©cĂ©dente installation Ă©tait une .deb en version 8, et Ă  l’heure de la montĂ© en version je me suis dit que c’Ă©tait plutĂŽt l’occasion d’essayer quelque chose de nouveau, ainsi que d’investir dans un systĂšme avec mise Ă  jour de sĂ©curitĂ© de juste 10 ans!

Pour ce tuto: je propose d’installer grafana avec docker qui est la maniĂšre que je trouve la plus fiable, et d’installer Infludb Ă  partir des dĂ©pĂŽts RHEL. À vous d’adapter Ă  vos prĂ©fĂ©rences personnelles.

Cela posé, il est temps de faire chauffer votre terminal préféré.

Tutoriel

Ajout des dépÎts et des pré-requis nécessaires

~$ yum -y update
~$ yum install epel-release
~$ yum -y groupinstall development
~$ yum -y update
~$ yum -y install python36
~$ yum -y install python-pip
~$ pip3 install --upgrade pip
~$ pip3 install influxdb

Installation de Docker

~$ yum install -y yum-utils \
 device-mapper-persistent-data \
 lvm2
~$ yum-config-manager \
 --add-repo \
 https://download.docker.com/linux/centos/docker-ce.repo
~$ yum install docker-ce
~$ systemctl enable docker
~$ systemctl start docker
~$ systemctl status docker

Installation de Grafana

~$ docker volume create grafana-storage
~$ docker run \
 --restart always \
 -d \
 -p 3000:3000 \
 --name=grafana \
 -v grafana-storage:/var/lib/grafana \
 -e "GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource" \
 grafana/grafana
~$ firewall-cmd --permanent --zone=public --add-port=3000/tcp

Installation de Influxdb

~$ cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
~$ yum install influxdb
~$ firewall-cmd --permanent --zone=public --add-port=8086/tcp

~$ firewall-cmd --permanent --zone=public --add-port=8083/tcp

~$ firewall-cmd --reload
~$ systemctl enable influxdb.service
~$ systemctl start influxdb.service
~$ curl -XPOST -u jeedom:jeedom 'http://localhost:8086/query' --data-urlencode 'q=CREATE DATABASE "jeedom"'

Ce curl permet la crĂ©ation d’une base de donnĂ©e jeedom avec pour nom d’utilisateur jeedom et mot de passe jeedom. Ces informations seront Ă  renseigner dans le “data source” de grafana.

Installation du pont Jeedom-Influxdb

~$ cd /PATH/
~$ mkdir Bridge_Jeedom_InfluxDB
~$ cd Bridge_Jeedom_InfluxDB
~$ wget https://github.com/neuhausj/JeedomTools/raw/master/Bridge_Jeedom_InfluxDB.py
~$ yum install nano
~$ nano Bridge_Jeedom_InfluxDB.py

Je vous renvoie à mon précédent article pour conf ce script.

~$ firewall-cmd --zone=public --add-port=1234/tcp --permanent
~$ firewall-cmd --reload

Cette commande vous permettra de lancer le script afin de savoir si tout fonctionne:

~$ /usr/bin/env python36 Bridge_Jeedom_InfluxDB.py &

Si c’est le cas, voici venu le temps de systemd ce script:

~$ nano /lib/systemd/system/Bridge_Jeedom_InfluxDB.service
[Unit]
Description=Bridge_Jeedom_InfluxDB.service
After=multi-user.target

[Service]
Type=idle
ExecStart=/usr/bin/python36 /PATH/Bridge_Jeedom_InfluxDB/Bridge_Jeedom_InfluxDB.py

[Install]
WantedBy=multi-user.target
~$ systemctl enable Bridge_Jeedom_InfluxDB.service

Exemples d’utilisation

Pour examiner tout ça en meilleure qualitĂ©, c’est par ici. L’Ă©cran tourne grĂące Ă  un pi en mode kiosque: une Raspbian qui lance la page Grafana au dĂ©marrage, et avec toutes les opĂ©rations du navigateur en RAM afin de ne pas solliciter plus que de raison la sd. L’Ă©cran se dĂ©clenche Ă  la capture d’un mouvement dans cette piĂšce qui appelle alors une commande ssh sur le pi:

~$ display_power-on
~$ display_power-off

Sources

http://vmkdaily.ghost.io/influxdb-and-grafana-on-centos/
https://hub.docker.com/r/grafana/grafana/
https://www.jeedom.com/forum/viewtopic.php?f=31&t=15209
https://docs.influxdata.com/influxdb/v1.5/tools/api/#write
https://www.rosehosting.com/blog/how-to-install-pip-on-centos-7/
https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce
https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming-environment-on-centos-7
https://www.hivelocity.net/kb/how-to-install-pip-on-centos-7/
https://www.liquidweb.com/kb/enable-epel-repository/
https://www.liquidweb.com/kb/how-to-install-pip-on-centos-7/

À plus les barbus!

Partagez

Propositionjoe
RÉDIGÉ PAR
Propositionjoe
Soyez rĂ©solus de ne servir plus et vous voilĂ  libres, Étienne de La BoĂ©tie, Bricoleur militant.