Cela fait un moment que je travaille sur Graphite et je ne suis vraiment pas fan d’apache. Cela m’a pris un peu de temps mais j’ai finalement reussi a installer et configurer supervisor avec uwsgi et nginx. J’ai installe graphite 0.9.9 depuis les sources. Cette installation est basee sur une Debian stable. Commencons par le commencement et installons quelques paquets : apt-get install python-dev libxml2-dev build-essential python-django-tagging. Decompactez ensuite carbon, whisper et graphite-web dans cet ordre et installez les (le repertoire par default est /opt/graphite).
Recuperez ensuite uwsgi et decompactez le et executez ce qui suit :
wget http://projects.unbit.it/downloads/uwsgi-0.9.9.2.tar.gz tar xf uwsgi-0.9.9.2.tar.gz cd uwsgi-0.9.9.2 make -f Makefile.Py26 cp uwsgi /usr/local/bin/ cp nginx/uwsgi_params /etc/nginx/
Maintenant que tout ce petit monde est installe, on peux passer a la configuration de supervisor (apt-get install supervisor). Creez un fichier qui s’appelle : /etc/supervisor/conf.d/uwsgi.conf et copiez le contenu ci-dessous dedans. Pour redemarrer supervisor, je conseille un stop/start. Restart ne marche pas correctement pour moi.
[program:uwsgi] command=/usr/local/bin/uwsgi --module 'django.core.handlers.wsgi:WSGIHandler()' --socket 127.0.0.1:3031 --chdir /opt/graphite/webapp --processes 1 --master --harakiri 120 --max-requests 5000 --pythonpath "['/opt/graphite/webapp'] + sys.path" directory=/opt/graphite/webapp environment=DJANGO_SETTINGS_MODULE='graphite.settings' user=www-data autostart=true autorestart=true stdout_logfile=/var/log/nginx/uwsgi.log redirect_stderr=true stopsignal=QUIT
Il vous faut a present configurer nginx, cet exemple considere que j’utilise le repertoire graphite au sein d’un host virtuel, si vous voulez utiliser /, il vous faudra modifier. Voila ma config complete :
server { listen 80; listen [::]:80; # use this only if using IPv6 client_max_body_size 4M; server_name graphite.frlinux.net; root /var/www/stats; access_log /var/log/nginx/stats.access.log; error_log /var/log/nginx/stats.error.log; location / { } location /graphite/ { gzip off; include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } location /content { alias /opt/graphite/webapp/graphite/content; gzip off; include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } location /dashboard { alias /opt/graphite/webapp/graphite/dashboard; gzip off; include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } location /metrics { alias /opt/graphite/webapp/graphite/metrics; gzip off; include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } location /render { alias /opt/graphite/webapp/graphite/render; gzip off; include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } location /browser { alias /opt/graphite/webapp/graphite/browser; gzip off; include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } location /composer { alias /opt/graphite/webapp/graphite/composer; gzip off; include uwsgi_params; uwsgi_pass 127.0.0.1:3031; } }
Et voila, il ne vous reste plus qu’a pointer votre navigateur vers : http://site.example.com/graphite et cela devrait vous presenter vos donnees. Il vous faudra egalement securiser votre installation mais ce n’est pas le but de cet article.