lazybios

CentOS5上运行Statsd与Supervisor3.0

最近为若干台Centos5的服务器配置了Statsd,Statsd是一个用NodeJS写得日志收集工具,在数值监控中用作Graphite/Carbon的前端代理。

我配置目标是用Supervisor启动守护Statsd,所以需要配置安装的有node,stats,suervisor,不过中间还有很多坑,慢慢填吧。。。

####系统环境

操作系统:CentOS 5.8
Python 2.4

#####Git 因为Statsd是通过Github发布的,所以安装也是clone它的版本库,所以第一步就是配置Git

sudo yum install git
git –version

#####Node Statsd是用node写得,所以先安装node环境,采用nave.sh安装,先克隆nave.sh到本地

git clone https://github.com/isaacs/nave.git sudo ./nave.sh usemain 0.10.26 #指定安装nodev0.10.26
node -v

nave详细用法 参见nave.sh的帮助说明

#####Statsd

sudo git clone https://github.com/etsy/statsd.git
修改配置文件,参看自带的配置文件范例

到这里statsd就算是配置安装完了,下面部分就是使用Supervisor启动守护statsd

#####Supervisor Supervisor是一个守护进程,可以帮你启动维护一个后台长时间运行的程序,用Python写得,你可以直接用yum install supervisor尝试安装,也可以用包管理工具,但是因为Supervisor 3.0 抛弃了对Python2.5一下的支持,所以Python2.4上安装必须采用一些hack的手法。。。

yum install python-setuptools
sudo easy_install supervisor

这个时候用supervisord启动多半会报错的,大概意思就是meld3,elementtree出问题之类的,解决方案

cd /usr/lib/python2.4/site-packages/supervisor-3.0a10-py2.4/egg-info/
vim requires.txt

将下面两行注释掉

#meld3 >= 0.6.5
#elementtree

这样就可以了执行sudo supervisord了,但是注意要确保机器是否装了meld3这个html模板包,否则在执行的过程中还是会报Error: nomodule name meld3错,因为meld3也是要求Python版本大于2.5所以,所以就不能装最新的版本,两个办法一是尝试yum自动选择安装,运气好得话你会成功!sudo yum install python-meld3,如果你像我一样没有好运气,那么没有别的办法自己搜一个早期支持Python2.4版本的源码包或者二进制包,手动安装吧。这里有个0.6.3的meld3版本,要得可以直接download下来,用rpm -ivh python-meld3-0.6.3-1.el5.x86_64.rpm安装。

到这里需要的Supervisor就算安装好了,使用echo_supervisord_conf 测试下看是否安装成功。

创建Supervisor配置文件

echo_supervisord_conf > /etc/supervisord.conf

如此一来就可以用Supervisor启动守护Statsd里,如果需要查看守护状态,可以使用supervisorctl,交互查询!

完!

微信关注「日拱一卒」公众号