After install run
# start statsd
# start graphite
statsd is on 8125 port
graphite is on http://127.0.0.1:8080/
After install run
# start statsd
# start graphite
statsd is on 8125 port
graphite is on http://127.0.0.1:8080/
| #!/bin/bash | |
| # node.js using PPA (for statsd) | |
| sudo apt-get install python-software-properties | |
| sudo apt-add-repository ppa:chris-lea/node.js | |
| sudo apt-get update | |
| sudo apt-get install nodejs npm | |
| # Install git to get statsd | |
| sudo apt-get install git | |
| # System level dependencies for Graphite | |
| sudo apt-get install memcached python-dev python-pip sqlite3 libcairo2 \ | |
| libcairo2-dev python-cairo pkg-config | |
| # Get latest pip | |
| sudo pip install --upgrade pip | |
| # Install carbon and graphite deps | |
| cat >> /tmp/graphite_reqs.txt << EOF | |
| django==1.3 | |
| python-memcached | |
| django-tagging==0.3.1 | |
| twisted | |
| whisper==0.9.9 | |
| carbon==0.9.9 | |
| graphite-web==0.9.9 | |
| EOF | |
| sudo pip install -r /tmp/graphite_reqs.txt | |
| # | |
| # Configure carbon | |
| # | |
| cd /opt/graphite/conf/ | |
| sudo cp carbon.conf.example carbon.conf | |
| # Create storage schema and copy it over | |
| # Using the sample as provided in the statsd README | |
| # https://github.com/etsy/statsd#graphite-schema | |
| cat >> /tmp/storage-schemas.conf << EOF | |
| # Schema definitions for Whisper files. Entries are scanned in order, | |
| # and first match wins. This file is scanned for changes every 60 seconds. | |
| # | |
| # [name] | |
| # pattern = regex | |
| # retentions = timePerPoint:timeToStore, timePerPoint:timeToStore, ... | |
| [stats] | |
| priority = 110 | |
| pattern = ^stats\..* | |
| retentions = 10s:6h,1m:7d,10m:1y | |
| EOF | |
| sudo cp /tmp/storage-schemas.conf storage-schemas.conf | |
| # Make sure log dir exists for webapp | |
| sudo mkdir -p /opt/graphite/storage/log/webapp | |
| # Copy over the local settings file and initialize database | |
| cd /opt/graphite/webapp/graphite/ | |
| sudo cp local_settings.py.example local_settings.py | |
| sudo python manage.py syncdb # Follow the prompts, creating a superuser is optional | |
| # statsd | |
| cd /opt && sudo git clone git://github.com/etsy/statsd.git | |
| # StatsD configuration | |
| cat >> /tmp/localConfig.js << EOF | |
| { | |
| graphitePort: 2003 | |
| , graphiteHost: "127.0.0.1" | |
| , port: 8125 | |
| } | |
| EOF | |
| sudo cp /tmp/localConfig.js /opt/statsd/localConfig.js | |
| cat >> /etc/init/graphite.conf << EOF | |
| #!upstart | |
| description "Graphite Web Daemon" | |
| start on runlevel [2345] | |
| stop on runlevel [!2345] | |
| start on started carbon-cache | |
| stop on stopped carbon-cache | |
| console output | |
| env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin | |
| env PYTHONPATH=/opt/graphite/whisper | |
| exec /opt/graphite/bin/run-graphite-devel-server.py --libs=/opt/graphite/webapp/ /opt/graphite/ | |
| respawn | |
| EOF | |
| cat >> /etc/init/statsd.conf << EOF | |
| #!upstart | |
| # /etc/init/statsd.conf | |
| description "Statsd node.js server" | |
| author "statsd install gist" | |
| start on startup | |
| stop on shutdown | |
| script | |
| export HOME="/root" | |
| echo $$ > /var/run/statsd.pid | |
| exec sudo -u www-data /usr/bin/nodejs /opt/statsd/stats.js /opt/statsd/localConfig.js >> /var/log/statsd.log 2> /var/log/statsd.error.log | |
| end script | |
| pre-start script | |
| # Date format same as (new Date()).toISOString() for consistency | |
| echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/statsd.log | |
| end script | |
| pre-stop script | |
| rm /var/run/statsd.pid | |
| echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/statsd.log | |
| end script | |
| EOF |