- # install git
- sudo apt-get install g++ curl libssl-dev apache2-utils
- sudo apt-get install git-core
- # download the Node source, compile and install it
- git clone https://github.com/joyent/node.git
- cd node
- ./configure
- make
- sudo make install
- # install the Node package manager for later use
- curl http://npmjs.org/install.sh | sudo sh
- sudo npm install express
- # clone the statsd project
- git clone https://github.com/etsy/statsd.git
- # download everything for graphite
- mkdir graphite
- cd graphite/
- wget "http://launchpad.net/graphite/trunk/0.9.6/+download/carbon-0.9.6.tar.gz"
- wget "http://launchpad.net/graphite/trunk/0.9.6/+download/whisper-0.9.6.tar.gz"
- wget "http://launchpad.net/graphite/trunk/0.9.6/+download/graphite-web-0.9.6.tar.gz"
- tar xzvf whisper-0.9.6.tar.gz
- tar xzvf carbon-0.9.6.tar.gz
- tar xzvf graphite-web-0.9.6.tar.gz
- # install whisper - Graphite's DB system
- cd whisper-0.9.6
- sudo python setup.py install
- popd
- # install carbon - the Graphite back-end
- cd carbon-0.9.6
- sudo python setup.py install
- cd /opt/graphite/conf
- cp carbon.conf.example carbon.conf
- # copy the example schema configuration file, and then configure the schema
- # see: http://graphite.wikidot.com/getting-your-data-into-graphite
- cp storage-schemas.conf.example storage-schemas.conf
- # install other graphite dependencies
- sudo apt-get install python-cairo
- sudo apt-get install python-django
- sudo apt-get install memcached
- sudo apt-get install python-memcache
- sudo apt-get install python-ldap
- sudo apt-get install python-twisted
- sudo apt-get install apache2 libapache2-mod-python libapache2-mod-wsgi
- cd ~/graphite/graphite-web-0.9.6
- python setup.py install
- # copy the graphite vhost example to available sites, edit it to you satisfaction, then link it from sites-enabled
- sudo cp example-graphite-vhost.conf /etc/apache2/sites-available/graphite
- cd /opt/graphite/conf
- sudo cp graphite.wsgi.example graphite.wsgi
- # Update this file if you installed the graphite webapp somewhere custom
- sudo a2ensite graphite
- apache2ctl restart
- # I had to create these log files manually
- /opt/graphite/storage/log/webapp
- touch info.log
- chmod 777 info.log
- touch exception.log
- chmod 777 exception.log
- # make sure to change ownership of the storage folder to the Apache user/group - mine was www-data
- sudo chown -R www-data:www-data /opt/graphite/storage/
- cd /opt/graphite/webapp/graphite
- # copy the local_settings example file to creating the app's settings
- # this is where both carbon federation and authentication is configured
- sudo cp local_settings.py.example local_settings.py
- # run syncdb to setup the db and prime the authentication model (if you're using the DB model)
- sudo python manage.py syncdb
- # start the carbon cache
- sudo /opt/graphite/bin/carbon-cache.py start
- # copy the the statsd config example to create the config file
- # unless you used non-default ports for some other feature of the system, the defaults in the config file are fine
- cd ~/statsd
- cp exampleConfig.js local.js
- # start statsd
- node stats.js local.js