83 lines
2.9 KiB
Markdown
83 lines
2.9 KiB
Markdown
|
---
|
|||
|
categories: databases
|
|||
|
title: Howto Graphite
|
|||
|
...
|
|||
|
|
|||
|
* Documentation : <http://graphite.readthedocs.io/en/latest/>
|
|||
|
|
|||
|
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)
|