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; } }