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/