Graphite node
安裝必要軟件包: python
$ sudo apt-get install apache2 libapache2-mod-wsgi python-django \ python-twisted python-cairo python-pip python-django-tagging
用 pip 安裝 whisper (簡單的存放和操做數據的庫), carbon (監控數據的 Twisted 守護進程) 和 graphite-web (Django webapp): git
$ sudo pip install whisper $ sudo pip install carbon $ sudo pip install graphite-web
初始化配置,直接用 example 文件裏的默認配置就能夠: github
$ cd /opt/graphite/conf/ $ sudo cp carbon.conf.example carbon.conf $ sudo cp storage-schemas.conf.example storage-schemas.conf $ sudo cp graphite.wsgi.example graphite.wsgi
修改 apache 配置,增長一個 vhost 或者偷懶下載一個配置文件覆蓋 default,覆蓋後須要從新 reload 配置: web
$ wget http://launchpad.net/graphite/0.9/0.9.9/+download/graphite-web-0.9.9.tar.gz $ tar -zxvf graphite-web-0.9.9.tar.gz $ cd graphite-web-0.9.9 $ sudo cp examples/example-graphite-vhost.conf /etc/apache2/sites-available/default
sockets 最好不要放在 /etc/httpd/ 下面(不一樣 Linux 發行版本對不一樣目錄的權限問題很混淆人),ubuntu 版本能夠放在 /var/run/apache2 下,因此修改 default 文件裏的 WSGISocketPrefix 部分: 數據庫
$ sudo vi /etc/apache2/sites-available/default ... WSGISocketPrefix /var/run/apache2/wsgi ... $ sudo /etc/init.d/apache2 reload
初始化 graphite 須要的數據庫,修改 storage 的權限,用拷貝的方式建立 local_settings.py 文件: apache
$ cd /opt/graphite/webapp/graphite/ $ sudo python manage.py syncdb $ sudo chown -R www-data:www-data /opt/graphite/storage/ $ sudo cp local_settings.py.example local_settings.py $ sudo /etc/init.d/apache2 restart
啓動 carbon: django
$ cd /opt/graphite/ $ sudo ./bin/carbon-cache.py start瀏覽器訪問 IP 地址後就能夠看到 graphite web 界面。
Collectd ubuntu
安裝 collectd,建立一個 collectd.d 目錄便於存放稍後會遇到的插件配置文件 graphite.conf,並在 collectd.conf 包含這個目錄 : c#
$ sudo apt-get install collectd $ sudo mkdir /etc/collectd/collectd.d $ sudo vi /etc/collectd/collectd.conf ... Include "/etc/collectd/collectd.d"
安裝 git 並下載 collectd-carbon 插件:
$ sudo apt-get install git $ sudo git clone https://github.com/indygreg/collectd-carbon.git /opt/collectd-plugins
修改插件的配置文件的 ModulePath 部分,指向 carbon_writer.py 文件所在目錄,而且修改 LineReceiverHost 部分:
$ sudo vi /etc/collectd/collectd.d/graphite.conf <LoadPlugin "python"> Globals true </LoadPlugin> <Plugin "python"> # carbon_writer.py is at path /opt/collectd-plugins/carbon_writer.py ModulePath "/opt/collectd-plugins/" Import "carbon_writer" <Module "carbon_writer"> LineReceiverHost "XX.XX.XX.XX" #graphite的IP或者主機名 LineReceiverPort 2003 DifferentiateCountersOverTime true LowercaseMetricNames true TypesDB "/usr/share/collectd/types.db" </Module> </Plugin>
修改好配置文件後重啓服務:
$ sudo /etc/init.d/collectd restart
Statsd
這個很簡單
git clone git://github.com/etsy/statsd.git cd statsd cp exampleConfig.js config.js更改配置文件讓它把數據發送給 graphite
{ graphitePort: 2003 , graphiteHost: "127.0.0.1" , port: 8125 , backends: [ "./backends/graphite" ] }
能夠作個小測試:echo "anything.you.like:1|c" | nc -w 1 -u localhost 8125若是安裝配置是正常的,在graphite的左側將會看到statsd裏多了anything->you->like的表。不過我不知道增長事後怎麼刪除它 ==#
參考:
http://www.vpsee.com/2012/05/install-graphite-on-ubuntu-12-04/
http://www.vpsee.com/2012/05/use-collectd-with-graphite-to-monitor-servers/