From 70cd6d89d73dce6f4a26f513d2b4abd82404a9d0 Mon Sep 17 00:00:00 2001 From: Ludovic Poujol Date: Tue, 27 Mar 2018 18:38:08 +0200 Subject: [PATCH] HowtoGraphite.md --- HowtoGraphite.md | 82 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 HowtoGraphite.md diff --git a/HowtoGraphite.md b/HowtoGraphite.md new file mode 100644 index 00000000..6165d6b2 --- /dev/null +++ b/HowtoGraphite.md @@ -0,0 +1,82 @@ +--- +categories: databases +title: Howto Graphite +... + +* Documentation : + +Graphite est un système de base de donnée en série temporelle (ou time series database (TSDB)). Il gère la collecte, le stockage et l'affichage des données. + +Il est découpé en 3 composants principaux : +* carbon : Le daemon d'ingestion des donénes +* whisper : Le système de base de donnée (similire au RRD) +* graphite-webapp : Une application web (Python/Django) pour l'afficage/génération de graphes + +## Installation + +~~~ +# apt install graphite-web graphite-carbon +~~~ + +## Configuration + +### Carbon + +Le fichier le plus intéréssant est probablement `/etc/carbon/storage-schemas.conf` car il va définir notament les durées de rétention des données stoquées avec whisper. + +Exemple si on souhaite appliquer la politique de rétention suivante à toute les données : + +* 1 point toutes les 60 secondes pendant un jour +* 1 point toutes les 5 minutes pendant 7 jours +* 1 point toutes les 20 minutes pendant 1 mois +* 1 point toutes les 1 heure pendant 2ans + +~~~ +[default] +pattern = .* +retentions = 60s:1d, 5m:7d, 20m:1m, 1h:2y +~~~ + +### WebApp + +Le fichier de configuration de l'interface web se trouve dans `/etc/graphite/local_settings.py`. +Les choses intéréssantes à modifier sont : + +* SECRET_KEY (pour les cookies de CSRF) +* TIME_ZONE +* DATABASES (si vous ne souhaitez pas utiliser sqlite comme base de donnée pour l'interface web (comptes de l'interface)) + + +Après, pour que l'interface web de graphite puisse fonctionner, il faut initialiser la base de donnée et créer un premier utilisateur + +~~~ +# graphite-manage migrate +# graphite-manage migrate --run-syncdb +# graphite-manage createsuperuser +~~~ + +Il ne reste plus qu'a configurer le serveur web. Pour Apache2 on peut s'inspirer du fichier de conf fournit dans `/usr/share/graphite-web/apache2-graphite.conf` + + +## Utilisation + + + +## Tips + +### Redimentionnement suite à un changement des règles de rétention + +Après un changent de la politique de rétention des données dans `/etc/carbon/storage-schemas.conf`, il faut redimentionner les fichiers de données existant si on souhaite que la nouvelle politique s'y applique aussi. +Il existe une commande `whisper-auto-resize` qui après s'occupe de tout le redimentionnement + +~~~ +# whisper-auto-resize /var/lib/graphite/whisper/ /etc/carbon +# chown _graphite: -R /var/lib/graphite/whisper/ +~~~ + +Par défaut, whisper-auto-resize ne fait que lister les fichiers qui seront modifiés et comment la rétention va changer. +Pour le faire, il suffit de rajouter l'argument *--confirm* pour confirmer de manière interactive à chauqe fichiers. Ou avec *--doit* pour les personnes qui n'ont pas peur. + +Il existe aussi une option *--subdir* pour ne ciber qu'une parties données. + +**ATTENTION** : L'opération va changer le propriétaire des fichiers. Il ne faut pas oublier de chown après (avec \_graphite sur Debian)