Graphite
安装必要软件包:
$ 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):
$ sudo pip install whisper
$ sudo pip install carbon
$ sudo pip install graphite-web
初始化配置,直接用 example 文件里的默认配置就可以:
$ 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 配置:
$ 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 文件:
$ 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:
$ cd /opt/graphite/
$ sudo ./bin/carbon-cache.py start
浏览器访问 IP 地址后就可以看到 graphite web 界面。
Collectd
安装 collectd,创建一个 collectd.d 目录便于存放稍后会遇到的插件配置文件 graphite.conf,并在 collectd.conf 包含这个目录 :
$ 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/
http://ga.rgoyle.com/view/519f9052a56da10472000025
来源:oschina
链接:https://my.oschina.net/u/138210/blog/181149