td-agent 是fluentd 的易安装版本,不用考虑太多的依赖关系
系统原理图
app+ td-agent ------->collector------------> mongodb
以下是一个一台app ip 是192.168.0.112 ,一台收集端 ip是192.168.0.111,一台mongodb ip是192.168.0.110
1. 添加yum 源文件
Vim td.repo
[treasuredata]
name=TreasureData
baseurl=http://packages.treasure-data.com/redhat/$basearch
gpgcheck=0
2. 基础环境要求
由于td-agent 要求ruby的版本在1.9.3 以上td-agent 会自动安装
yum install zlib-devel readline-devel openssl-devel java make gcc libyaml
libcrypto.so.6 libexslt.so.0 libssl.so.6 libtermcap.so.2 libxslt libxslt.so.1 libyaml-1024.so.4 td-libyaml -y
rpm –ivh td-agent-1.1.9-0.x86_64.rpm 或者
yum install td-agent-1.1.9-0.x86_64.rpm -y
注:td-agent 的rpm 包在 http://packages.treasure-data.com下载
3 app 端配置文档
<source>
type tail
path /var/log/httpd/access_log
format apache
tag
apache.access
</source>
<match apache.*>
type forward
send_timeout 60s
recover_wait 10s
heartbeat_interval 1s
phi_threshold 8
hard_timeout 60s
<server>
host 192.168.0.111
port 24224
weight 60
</server>
</match>
其他的注销
Collect 端配置文档
<source>
type forward
port 24224
bind 0.0.0.0
</source>
<match apache.*>
#type file
#path /var/log/fluentd/access_log
type mongo
database apache
collection access
host 192.168.0.110
port 27017
ignore_invalid_record true
buffer_chunk_limit 5M
flush_interval 60s
</match>
td-agent 的启动和关闭
/etc/init.d/td-agent start|stop|restart
4.mongodb 的部署
4.1 设置好mongodb 的安装目录
在/usr/src/ 下解压
tar zxvf mongodb-linux-x86_64-2.2.0.tar.gz
并把解压完的文件 放到指定的目录
cp -a mongodb-linux-x86_64-2.2.0/* /usr/local/mongodb/
4.2 设置数据文件和日志文件的存放目录
mkdir /data/mongodb_db /data/mongodb_log
4.3 创建配置文件并把数据和日志的目录写到配置文件当中
#vim /etc/mongodb.cnf
dbpath=/data/mongodb_data/
logpath=/data/mongodb_log/
4.4 把mongo 和mongod 命令cp 到/usr/bin/ 下
#cd /usr/local/mongodb/bin
#cp mongo mongod /usr/bin/
5.mongodb 的启动和关闭
#mongod –f /etc/mongodb.cnf
ps –ef|grep mongod
root
2759 2568 0 Oct08 pts/1 00:01:46 mongod -f /etc/mongodb.cnf
root
3076 2827 0 00:45 pts/3 00:00:00 grep mongod
kill -2 2759
注意:kill -9 pid 来杀死mongodb 进程,这样可能会导致mongodb 的数据损坏
6.测试
Ab –n 100 –c 10 http://appIP/
在mongodb 主机
#mongo
MongoDB shell version: 2.2.0
connecting to: test
> use apache
switched to db apache
> db.access.find()
{ "_id" : ObjectId("50726cf16e1247500a000001"), "host" : "192.168.0.112", "user" : "-", "method" : "GET", "path" : "/", "code" : "200", "size" : "34", "referer" : "-", "agent" : "ApacheBench/2.3", "time" : ISODate("2012-10-08T03:47:23Z") }
{ "_id" : ObjectId("50726cf16e1247500a000002"), "host" : "192.168.0.112", "user" : "-", "method" : "GET", "path" : "/", "code" : "200", "size" : "34", "referer" : "-", "agent" : "ApacheBench/2.3", "time" : ISODate("2012-10-08T03:47:23Z") }