'

Outils pour utilisateurs

Outils du site


doc:graphite

graphite

Installation de Graphite sur Debian Wheezy.

Graphite permet de stocker et afficher des données chronologiques (numeric time-series en anglais). Il est composé d'un collecteur qui stocke les données au format Whispher dans le même esprit que les fichiers RRD et d'une application Django.

Paquets

Collecteur

Dans Debian Wheezy, seul le collecteur est disponible dans le paquet graphite-carbon. L'application web est disponible dans Debian Jessie.

sudo apt-get install graphite-carbon

Pour activer le collecteur, il faut modifier le fichier /etc/default/graphite-carbon.

# Change to true, to enable carbon-cache on boot
CARBON_CACHE_ENABLED=true

On peut alors lancer le service avec sudo service carbon-cache start.

Application web

Pour utiliser l'application web, il est nécessaire d'installer quelques paquets supplémentaire :

sudo apt-get install python-pip python-django python-whisper \
     python-rrdtool python-memcache python-django-tagging \
     python-cairo memcached

collectd

collectd dispose d'un plugin pour Graphite.

On installe collectd avec la commande sudo apt-get install collectd. Il faut ensuite éditer le fichier /etc/collectd.collectd.conf.

LoadPlugin "write_graphite"
<Plugin "write_graphite">
 <Carbon>
   Host "localhost"
   Port "2003"
   EscapeCharacter "_"
   SeparateInstances true
   StoreRates false
   AlwaysAppendDS false
 </Carbon>
</Plugin>

Application Django

Installation de l'application

L'application web développée sur le framework Django n'est pas encore disponible dans Debian Wheezy, il faudra attendre Jessie.

Il est tout de même possible d'installer l'application pip et la commande sudo pip install graphite-web. L'application sera installée dans /opt/graphite.

Il faut ensuite copier le fichier /opt/graphite/webapp/graphite/localsettings.py.example en /opt/graphite/webapp/graphite/localsettings.py et l'adapter.

SECRET_KEY = 'VotreSecret'

ALLOWED_HOSTS = [ '127.0.0.1' ]

TIME_ZONE = 'Europe/Paris'

DEBUG = False

MEMCACHE_HOSTS= [ '127.0.0.1:11211' ]

GRAPHITE_ROOT = '/opt/graphite'

WHISPER_DIR = '/var/lib/graphite/whisper/'

DATABASES = {
    'default': {
        'NAME': '/opt/graphite/storage/graphite.db',
        'ENGINE': 'django.db.backends.sqlite3',
        'USER': '',
        'PASSWORD': '',
        'HOST': '',
        'PORT': ''
    }
}

Il faut initialiser la base de données.

cd /opt/graphite/webapp/graphite
sudo -u www-data manage.py syncdb

Configuration uWSGI et Nginx

Fichier /etc/uwsgi/apps-available/graphite.yaml :

uwsgi:
    uid:        www-data
    gid:        www-data
    plugins:    python27
    chdir:      /opt/graphite/webapp
    env :       DJANGO_SETTINGS_MODULE=graphite.settings
    module:     django.core.handlers.wsgi:WSGIHandler()

Puis sudo service uwsgi reload.

Fichier /etc/nginx/sites-enabled/graphite.net.conf

server {
    server_name graphite.domaine.net;
    
    listen 80 ssl;
    listen [::]:80 ssl;

    charset     utf-8;

    location = / { 
        rewrite ^ /graphite/ permanent;
    }

    location ~ ^/(graphite|content|metrics|dashboard|render|browser|composer)/ {
        include        uwsgi_params;
        uwsgi_param    UWSGI_SCHEME $scheme;
        uwsgi_pass     unix:/run/uwsgi/app/graphite/socket;
    }   

    access_log  /var/log/nginx/graphite/access.log;
    error_log /var/log/nginx/graphite/error.log warn;

}

Puis sudo service nginx reload.

doc/graphite.txt · Dernière modification: Le 07/01/2015 à 23:52 (modification externe)