Comment installer Graphite et Graphite Web sur Ubuntu 20.04

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ébergerRécipientUn service
8080nginx
20032003récepteur carbone – texte en clair
20042004récepteur de carbone – cornichon
20232023agrégateur de carbone – texte en clair
20242024Agrégateur de carbone – cornichon
80808080Port gunicorn interne graphite (sans proxy Nginx).
81258125statsd
81268126statsd 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.

stats graphite

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/

graphite changer le mot de passe

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.