Graphite est un outil de surveillance gratuit et open source pour stocker des données de séries chronologiques numériques et son graphique en temps réel.
Graphite ne collecte pas de données par lui-même, mais reçoit des données d’autres outils. Dès que Graphite reçoit des données, il peut créer des graphiques dans l’application Web.
Dans ce tutoriel, nous apprenons à installer Graphite et Toile de graphite sur Ubuntu 20.04 en utilisant docker. Le moyen le plus simple d’avoir une instance Graphite en cours d’exécution est d’utiliser docker.
Comment fonctionne le graphite ?
La vue d’ensemble de l’architecture Graphite montre qu’elle se compose de trois composants logiciels :
- Carbone: démon tordu qui écoute passivement les données de séries chronologiques pour la collecte de données.
- Chuchotement: bibliothèque de base de données simple pour stocker des données de séries chronologiques
- Application Web Graphite: Django WebApp qui rend les graphiques à la demande en utilisant Cairo.
L’application envoie les données au moteur de traitement de Graphite, Carbon, qui stocke les données dans la base de données Whisper de Graphite. Ensuite, les données peuvent être visualisées via l’interface Web Graphite, Graphite Web App.
Étape 1 : Installer Docker sur Ubuntu
Tout d’abord, nous allons installer Docker sur Ubuntu. En utilisant Docker, vous pouvez exécuter Grapgitue en quelques secondes.
Pour installer docker, vous devrez installer quelques pré-requis :
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
Ajoutons maintenant la clé GP du référentiel docker :
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Ajoutez maintenant Docker aux sources APT. Il mettra automatiquement à jour le cache.
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Installez maintenant docker à l’aide de la commande suivante :
$ sudo apt install docker-ce
Ajoutez l’utilisateur au groupe docker afin qu’il puisse utiliser la commande docker sans sudo privilèges :
$ sudo usermod -aG docker username
Puis quittez et reconnectez-vous pour que l’action prenne effet
Étape 2 : Exécutez le graphite avec docker
Il est très rapide d’exécuter du graphite avec docker. Cette fois, il aura besoin d’autres composants que celui par défaut que nous avons vu plus tôt :
- Nginx: reverse proxys le tableau de bord graphite
- Graphite: tableau de bord frontal
- Carbone: back-end
- Statistiques: proxy back-end basé sur UDP
Vous devrez également vérifier si les différents ports dont le graphite a besoin seront disponibles. De plus, au cours du processus, un mappage de port sera effectué entre l’hôte et le conteneur afin que vous puissiez modifier certaines configurations de mappage de votre côté si cela ne correspond pas à votre configuration actuelle. Vous pouvez avoir plus d’informations sur dépôt officiel Github de graphite.
Héberger | Récipient | Un service |
80 | 80 | nginx |
2003 | 2003 | récepteur carbone – texte en clair |
2004 | 2004 | récepteur de carbone – cornichon |
2023 | 2023 | agrégateur de carbone – texte en clair |
2024 | 2024 | Agrégateur de carbone – cornichon |
8080 | 8080 | Port gunicorn interne graphite (sans proxy Nginx). |
8125 | 8125 | statsd |
8126 | 8126 | statsd admin |
Exécuter le docker nginx
Dans notre cas, nous exécuterons un conteneur indépendant en tant que proxy inverse Nginx.
$ docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/nginx/htpasswd:/etc/nginx/htpasswd -v /etc/nginx/vhost.d:/etc/nginx/vhost.d:ro -v /etc/nginx/certs:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro etopian/nginx-proxy
Cela nous aidera à rediriger tout le trafic HTTP par défaut vers HTTPS lorsque vous intégrerez vos certificats. Vous devriez remarquer le volume mappé pour intégrer vos certificats qui est /etc/nginx/certs
Ouvrez maintenant les ports 80 et 443 sur le pare-feu :
$ sudo ufw allow 80,443/tcp
Étape 3 : Graphite – Intégrez votre certificat SSL à nginx
Nous considérons que vous possédez déjà vos certificats SSL. Vous devrez le copier dans le volume mappé configuré pour ce cas dans Nginx. Nous nommerons notre clé et notre certificat comme ci-dessous :
- domaine.com.crt
- domaine.com.clé
Et nous allons copier les deux fichiers dans le volume mappé. Copier le certificat
$ cp websitefortesting.com.crt /etc/nginx/certs
copier la clé
$ cp websitefortesting.com.key /etc/nginx/certs
Exécuter le graphite
Pour exécuter graphite, nous utiliserons également la commande docker run avec quelques options. Dans notre cas, nous indiquerons le nom de domaine de notre service avec le paramètre -e VIRTUAL_HOST=domain.com
en le démarrant
$ docker run -d
--name graphite
--restart=always
-e VIRTUAL_HOST=websitefortesting.com
-p 2003-2004:2003-2004
-p 2023-2024:2023-2024
-p 8125:8125/udp
-p 8126:8126
graphiteapp/graphite-statsd
Comme vous pouvez le voir, il n’est pas nécessaire de mapper le port 80 de Nginx car il est déjà en cours d’exécution. Essayez maintenant d’accéder à graphite par l’URL https://domain.com
Vous pouvez jeter un oeil sur statsd.

Le nom d’utilisateur de connexion par défaut de Graphite est root et se connecte avec le mot de passe root.

Vous devez modifier le mot de passe par défaut du profil racine pour le rendre plus sécurisé en utilisant à https://domain.com/admin/password_change/

Vous pouvez y accéder avec votre nouveau mot de passe.
Conclusion
Dans ce didacticiel, nous avons appris à exécuter graphite sur Ubuntu 20.04 en utilisant docker. Vous pouvez désormais facilement surveiller et représenter graphiquement des données de séries chronologiques numériques.