Grafana avec InfluxDB et Telegraf

 

Cet article est un premier retour de travail de Jules Agostini en stage chez Hisyl ce mois-ci. L'objectif de son stage est d'étudier grafana pour mettre en place des tableaux de bord de fonctionnement des serveurs et services.

Ce premier article décris l'installation côté serveur et la mise en place d'un client pour remonter des données.

Toutes les installations se feront sur une distribution Debian 8.

Côté serveur

InfluxDB

Citation du site du projet

InfluxDB is an open source database written in Go specifically to handle time series data with high availability and high performance requirements.

On commence par mettre en place les dépôts officiels du projet :

# apt-get install curl apt-transport-https
# curl -sL https://repos.influxdata.com/influxdb.key | apt-key add -
# echo "deb https://repos.influxdata.com/debian jessie stable" > /etc/apt/sources.list.d/influxdb.list
# apt-get update

On installe influxdb</>

# apt-get install influxdb

 

Pour cette première mise en place la seule changée dans le fichier de configuration /etc/influxdb/influxdb.conf c'est le hostname.

On va se retrouver pour influxdb avec une interface Web sur l'url : http://IP:8083 et une API HTTP sur le port 8086.

 

Grafana

Grafana va nous permettre d'afficher de jolis tableaux de bord avec les données lues dans influxdb.

On va utiliser aussi les dépôts proposés par le projet pour faire l'installation.

# curl https://packagecloud.io/gpg.key | apt-key add -
# echo "deb https://packagecloud.io/grafana/stable/debian/ jessie main" > /etc/apt/sources.list.d/grafana.list
# apt-get update
# apt-get install grafana
# systemctl daemon-reload
# systemctl enable grafana-server
# systemctl start grafana-server

Grafana est maintenant disponible sur l'url http://IP:3000, plus tard il faudra changer tout cela et mettre en place une url en https

La première chose à faire est de rajouter un(e) datasource et donc influxdb paramétré au-dessus :

grafana_datasource

Il se peut qu'il y ait une erreur, car la database telegraf n'existe pas encore. A voir dans la partie client.

 

Côté client

Maintenant que notre serveur est fonctionnel pour recevoir nos données on va configurer un outil côté serveurs client pour envoyer les données vers influxdb.

L'outil testé et validé est telegraf proposé par le projet influxdata.

Telegraf is an open source agent written in Go for collecting metrics and data on the system it's running on or from other services. Telegraf writes data it collects to InfluxDB in the correct format.

La première chose est d'installer les mêmes dépôts que sur le serveur

# apt-get install curl apt-transport-https
# curl -sL https://repos.influxdata.com/influxdb.key | apt-key add -
# echo "deb https://repos.influxdata.com/debian jessie stable" > /etc/apt/sources.list.d/influxdb.list
# apt-get update

 

Puis on installe telegraf

# apt-get install telegraf

 

Le fichier de configuration est /etc/telegraf/telegraf.conf. Pour ce premier essai deux paramètres à modifier.

Dans la partie [agent]

hostname = "fqdn"

Permet d'identifier le serveur qui envoie les données.

Puis on configure le plugin d'extraction des données :

[[outputs.influxdb]]
url = "http://IP:8086"
database = "telegraf"
username = "admin"
password = "root"

La partie intéressante à étudier ensuite sera la partie "INPUT PLUGINS" qui va permettre de définir les métriques à envoyer.

 

Bon bah maintenant il n'y a plus qu'à travailler tout ça pour faire de jolis tableaux de bord.