安裝Collectd+Statsd + Graphite 監控openstack swift

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" ]
}



啓動statsd服務: nodejs stats.js config.js、

能夠作個小測試: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

相關文章
相關標籤/搜索