现在才开始尝试使用 Fluentd 和 MongoDB,那是什么,很好吃吗?第三部分

现在开始尝试使用 Fluentd ,已经有点晚了。

MongoDB 这个东西我之前就挺感兴趣的,所以查了一下。我知道可以通过 EPEL 包来安装,希望你也知道。另外,“这个好吃吗?”这种话我不会直接说,希望你也能注意一下哈(公司同事常说这个,真是急人!)。

fluentd_2.png

MongoDB 是一种数据库管理系统。

这被归类为所谓的NoSQL数据库。特别是MongoDB,它是一个面向文档的数据库,值得一提的是它能够将”JSON对象直接存储到数据库中”,这个功能非常了不起。另外,我第一次知道它的名称来源是”humongous”(巨大的),难怪会和大数据这个词联系在一起。

MongoDB入门指南 – The Little MongoDB Book
MongoDB入门指南 – 构建、配置和工具概述
SlideShare上面向初学者的MongoDB基础知识!

安装MongoDB

创建/etc/yum.repos.d/mongodb.repo文件,并安装MongoDB。

[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
$ sudo yum -y install mongo-10gen mongo-10gen-server

启动和自动启动的设置

约定的命令。截至2014年06月21日,MongoDB shell的版本似乎是2.6.3。
而MongoDB的监听端口是27017(可以使用netstat -a | grep mongo来确认)。

$ sudo /etc/init.d/mongod start
$ sudo chkconfig mongod on

MongoDB工具:http://robomongo.org/

fluentd的配置

由于已设置了LTSV和MongoDB,所以只需要配置Fluentd即可。

发送方(代理方)

监视 Apache 日志(LTSV)并将其传输到 fluentd 服务器的配置。需要重新启动 fluentd。

<source>
  type tail
  path /var/log/httpd/access_log
  format ltsv
  time_key time
  time_format %d/%b/%Y:%H:%M:%S %z
  tag td.apache.access
  pos_file /var/log/td-agent/apache_access.pos
  tag mongo.apache
</source>

<match mongo.**>
  type forward
  buffer_chunk_limit 256m
  buffer_queue_limit 128
  flush_interval 5s
  <server>
    host 192.168.11.106
    port 24224
  </server>
</match>

收信方(集电极方)

需要将转发的信息添加到MongoDB并写入文件的设置。需要重新启动fluentd。

<match mongo.**>
  type copy

  <store>
    type file
    time_slice_format %Y%m%d_%H%M
    time_slice_wait 1m
    path /var/log/td_log/td_access_test
    time_format %Y%m%dT%H%M%S%z
  </store>

  <store>
    type mongo
    database apache
    collection access
    host localhost
    port 27017
    flush_interval 10s
  </store>
</match>

尝试查看MongoDB的内容

如果能够到这一步,肯定很好,全部准备就绪。数据应该已经存储在MongoDB中了。因此,让我们来确认一下。
192.168.11.104(Apach)⇒192.168.11.106(MongoDB) 中已经有数据!!

$ mongo
MongoDB shell version: 2.6.3
connecting to: test
> show dbs
admin   (empty)
apache  0.078GB
local   0.078GB
> use apache
switched to db apache
> show collections
access
system.indexes
> db.access.find();
{ "_id" : ObjectId("53a6bdcb297b502c2a000001"), "domain" : "192.168.11.104", "host" 

下一个是

我计划学习使用GrowthForecast的方法(第4部分),哈哈。

请参考以下网站

在樱花服务器的VPS环境中安装fluentd和MongoDB
指定要监听的IP

bannerAds