setup-statsd-and-graphite.sh

Setting up statsd, graphite, and carbon from scratch on a vanilla ubuntu 12.04 LTS install in Azure

0

Votes

#!/bin/bash

# node.js using PPA (for statsd)
sudo apt-get install python-software-properties
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
twisted
whisper==0.9.9
carbon==0.9.9
graphite-web==0.9.9
EOF

sudo pip install -r /tmp/graphite_reqs.txt

#download carbon and graphite
cd /opt/
wget https://github.com/downloads/graphite-project/graphite-web/graphite-web-0.9.10.tar.gz
tar -xzf graphite-web-0.9.10.tar.gz
ln -s /opt/graphite-web-0.9.10 /opt/graphite

cd /opt
wget https://github.com/downloads/graphite-project/carbon/carbon-0.9.10.tar.gz
tar -xzf carbon-0.9.10.tar.gz
cp -rf carbon-0.9.10/* /opt/graphite/

#
# 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

Vote Here

You must earn at least 1 vote on your snippets to be allowed to vote

Terms Of Use

Privacy Policy

Featured snippets are MIT license

Gears & Masters

Advertise

DevOpsnipp.com © 2020

medium.png