This is an old revision of the document!
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; } }
grafana
install
echo "deb https://packagecloud.io/grafana/stable/debian/ jessie main" > /etc/apt/sources.list.d/grafana.list curl https://packagecloud.io/gpg.key | sudo apt-key add - apt update apt install -y grafana systemctl enable grafana-server systemctl start grafana-server
Login to http://localhost:3000 (admin/admin)
plugins
Add plugin in /var/lib/grafana/plugins/ directory
piechart
cd /var/lib/grafana/plugins/ git clone https://github.com/grafana/piechart-panel.git systemctl restart grafana-server.service
influxdb
curl -sL https://repos.influxdata.com/influxdb.key | apt-key add - source /etc/lsb-release echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | tee -a /etc/apt/sources.list apt update apt install influxdb