Comment installer Graphite, la solution Open Source pour la métrologie.

Graphite est un système dédié au stockage et à la visualisation de métriques en tous genres. Il est écrit en langage Python.

Cette installation de Graphite essaie de minimiser les droits requis pour faire fonctionner Graphite (pas de root) et essaie d’être la plus légère possible; d’où le choix de Chaussette plutôt qu’Apache2.

Cette installation a été validée pour Ubuntu 13.04 et Ubuntu LTS 14.04.

Installation des dépendances requises pour Graphite.

Nous installons un environnement de «build» minimal orienté Python bien sûr.

sudo apt-get install build-essential python-dev python-pip python-virtualenv libffi-dev libcairo2

Préparation de l’environnement

Nous installons l’ensemble dans un environnement virtuel Python. Il faut donc naturellement commencer par l’initialisation de cet environnement.

sudo mkdir /opt/graphite
sudo chown -R $USER:$USER /opt/graphite
virtualenv /opt/graphite
source /opt/graphite/bin/activate
cd $VIRTUAL_ENV

Installation des composants Graphite

Maintenant que nous sommes dans un environnement virtuel activé, nous pouvons procéder à l’installation de Graphite à proprement parlé, et ce avec les droits de l’utilisateur connecté.

pip install 'Twisted<12.0'
pip install django==1.4.9 django-tagging

pip install carbon
pip install whisper
pip install graphite-web

Installation de la librairie Cairo pour les graphes dans l’interface web.

pip install cairocffi
cd $VIRTUAL_ENV/lib/python2.7/site-packages/
ln -s cairocffi cairo

Django a besoin d’un serveur web applicatif «WSGI» pour fonctionner. Nous avons choisi Chaussette pour sa légéreté et parce qu’il est lui-ême écrit en Python.

pip install meinheld
pip install chaussette

Configuration de Graphite

Juste la configuration minimale pour que Graphite fonctionne. D’abord la configuration pour l’interface web.

cd $VIRTUAL_ENV/webapp/graphite
cp local_settings.py.example local_settings.py
python manage.py syncdb

Vous pouvez pour une installation minimale décider de ne pas installer le système d’autorisation de Graphite Web. L’installation reste opérationnelle mais non sécurisée côté interface web.

Et ensuite, tous les fichiers de configuration pour Graphite, que nous laissons aux valeurs par défaut.

cd $VIRTUAL_ENV/conf
for f in *.conf.example; do mv "$f" "${f//.conf.example/.conf}"; done
for f in *.wsgi.example; do mv "$f" "${f//.wsgi.example/.wsgi}"; done

ln -s $VIRTUAL_ENV/conf/graphite.wsgi $VIRTUAL_ENV/webapp/wsgi.py

Démarrage de Graphite

Pour génèrer ses propres métriques et accepter des métriques d’outils tierces, il faut démarrer à minima carbon-cache en écoute sur le réseau.

$VIRTUAL_ENV/bin/carbon-cache.py start

Lancement du serveur web

cd $VIRTUAL_ENV/webapp
chaussette --host 0.0.0.0 --backend meinheld wsgi.application

Vérification de l’installation en se connectant sur http://localhost:8080.

Vous n’avez pas besoin d’envoyer des données pour vérifier votre installation basique. Graphite en génère pour sa propre supervision. Elles suffisent à valider l’installation.

Votre installation est prête à fonctionner. Ne reste plus qu’à envoyer des métriques à Graphite!