Table of Contents

carbon, graphite and grafana

carbon

install carbon-cache service

apt-get install graphite-carbon

enable boot startup in /etc/default/graphite-carbon

enable ENABLE_LOGROTATION in /etc/carbon/carbon.conf

extend retentions

/etc/carbon/storage-schemas.conf
[carbon]
pattern = ^carbon\.
retentions = 60:90d
 
[default]
pattern = .*
retentions = 30s:7d,5m:30d,10m:1y,1d:10y

after changing *schemas.conf older *wsp has to be changed with whisper-resize

for i in `find /var/lib/graphite/whisper/ha/ -name "*wsp"`; do 
 whisper-resize $i  30s:7d 5m:30d 10m:1y 1d:10y
done

graphite-web

web interface

apt-get install graphite-web

adjust SECRET_KEY (with random string) and TIME_ZONE in /etc/graphite/local_settings.py

# choose user and password
graphite-manage syncdb
chown _graphite:_graphite /var/lib/graphite/graphite.db
#python /usr/lib/python2.7/dist-packages/graphite/manage.py syncdb

apache

sudo apt-get install apache2 libapache2-mod-wsgi
sudo cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available
sudo a2ensite apache2-graphite

nginx

apt install nginx uwsgi uwsgi-plugin-python
/etc/uwsgi/apps-enabled/graphite.ini
[uwsgi]
 
vacuum = true
master = true
processes = 2
pidfile = /tmp/uwsgi.pid
socket = /tmp/uwsgi.sock
chmod-socket = 666
gid = _graphite
uid = _graphite
chdir = /usr/share/graphite-web
wsgi-file = graphite.wsgi
pymodule-alias = graphite.local_settings=/etc/graphite/local_settings.py
buffer-size = 65536
plugin = python
systemctl restart uwsgi
/etc/nginx/sites-enabled/graphite
upstream graphite {
    server unix:///tmp/uwsgi.sock;
}
 
server {
    listen 9002;
    server_name localhost;
 
    access_log /var/log/nginx/graphite-access.log;
    error_log /var/log/nginx/graphite-error.log;
 
    root /usr/share/graphite-web/static;
 
    location / {
        add_header Access-Control-Allow-Origin "*";
        add_header Access-Control-Allow-Methods "GET, OPTIONS";
        add_header Access-Control-Allow-Headers "origin, authorization, accept";
 
        uwsgi_pass graphite;
        include /etc/nginx/uwsgi_params;
    }
 
    location /media {
        # This makes static media available at the /media/ url.  The
        # media will continue to be available during site downtime,
        # allowing you to use styles and images in your maintenance page.
        alias /usr/lib/python2.7/dist-packages/django/contrib/admin/media;
    }
}