使用Fluentd和MongoDB构建日志收集系统

简介:

Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方。

本文要介绍的是在Fluentd的最新版中已经内置的MongoDB支持。主要通过一个收集Apache/nginx日志的例子来说明其使用方法:

机制图解



使用Fluentd和MongoDB构建日志收集系统



安装Fluentd

设置yum源

vi /etc/yum.repos.d/td.repo

[treasuredata]

name=TreasureData

baseurl=http://packages.treasure-data.com/redhat/x86_64/

gpgcheck=1

gpgkey=http://packages.treasure-data.com/redhat/RPM-GPG-KEY-td-agent


yum clean all

yum makecache

yum -y install td-agent

在Fluentd的最新安装包中已经包含了MongoDB插件,所以不需要安装mongo插件

配置

  如果你是使用上面的deb/rpm包安装的Fluentd,那么配置文件位置在:/etc/td-agent/td-agent.conf,否则其位置应该在:/etc/fluentd/fluentd.conf

  首先我们编辑配置文件中的source来设置日志来源

<source>

 type tail

 format apache

 pos_file /var/log/td-agent/nginx-access.log.pos

 path /usr/local/nginx/logs/www.access.log

 tag mongo.apache

</source>


其中:

①type tail: tail方式是 Fluentd 内置的输入方式,其原理是不停地从源文件中获取新的日志。

②format apache: 指定使用 Fluentd 内置的 Apache 日志解析器。

③path /var/log/apache2/access_log: 指定日志文件位置。

④tag mongo.apache: 指定tag,tag被用来对不同的日志进行分类

下面再来编辑输出配置,配置日志收集后存储到MongoDB中



  match标签后面可以跟正则表达式以匹配我们指定的tag,只有匹配成功的tag对应的日志才会运用里面的配置。配置中的其它项都比

<match mongo.**>

# plugin type

type mongo

# mongodb db + collection

database apache

collection access

# mongodb host + port

host 192.168.30.113

port 3306

# interval

flush_interval 10s

</match>

较好理解,看注释就可以了,其中flush_interval是用来控制多长时间将日志写入MongoDB一次。

注意:如果是收集的是nginx日志的话,日志格式要保持默认的。

启动td-agent

service td-agent start


然后我们在MongoDB中就能看到收集到的日志了

/usr/local/mongodb/bin/mongo 192.168.30.113:3306


MongoDB shell version: 2.0.4

connecting to: 192.168.30.113:3306/test

> use apache

switched to db apache

> db.access.find()

{ "_id" : ObjectId("530fee3753357d2437000001"), "host" : "192.168.30.1", "user" : "-", "method" : "GET", "path" : "/api?callback=jQuery172014558692439459264_1393552941396&do=show_workspace&MEMBER_ID=80&os=w&webtoken=1b43342c1f&_=1393552941501", "code" : "301", "size" : "178", "referer" : "http://www.weiduoa.com/", "agent" : "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36", "time" : ISODate("2014-02-28T02:02:29Z") }

{ "_id" : ObjectId("530fee3753357d2437000002"), "host" : "192.168.30.1", "user" : "-", "method" : "GET", "path" : "/api?callback=jQuery172014558692439459264_1393552941397&do=inboxmemberlist&MEMBER_ID=80&os=w&webtoken=1b43342c1f&_=1393552941505", "code" : "301", "size" : "178", "referer" : "http://www.weiduoa.com/", "agent" : "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36", "time" : ISODate("2014-02-28T02:02:29Z") }







     本文转自ljl_19880709 51CTO博客,原文链接:http://blog.51cto.com/luojianlong/1364806,如需转载请自行联系原作者





相关文章
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
6月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
550 122
基于docker搭建监控系统&日志收集
|
9月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
|
6月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
723 2
|
8月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
8月前
|
NoSQL MongoDB 数据库
数据库数据恢复—MongoDB数据库数据恢复案例
MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 工作人员在MongoDB服务仍然开启的情况下将MongoDB数据库文件拷贝到其他分区,数据复制完成后将MongoDB数据库原先所在的分区进行了格式化操作。 结果发现拷贝过去的数据无法使用。管理员又将数据拷贝回原始分区,MongoDB服务仍然无法使用,报错“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
8月前
|
缓存 NoSQL Linux
在CentOS 7系统中彻底移除MongoDB数据库的步骤
以上步骤完成后,MongoDB应该会从您的CentOS 7系统中被彻底移除。在执行上述操作前,请确保已经备份好所有重要数据以防丢失。这些步骤操作需要一些基本的Linux系统管理知识,若您对某一步骤不是非常清楚,请先进行必要的学习或咨询专业人士。在执行系统级操作时,推荐在实施前创建系统快照或备份,以便在出现问题时能够恢复到原先的状态。
761 79
|
8月前
|
存储 NoSQL MongoDB
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
342 8
MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
|
7月前
|
运维 NoSQL 容灾
告别运维噩梦:手把手教你将自建 MongoDB 平滑迁移至云数据库
程序员为何逃离自建MongoDB?扩容困难、运维复杂、高可用性差成痛点。阿里云MongoDB提供分钟级扩容、自动诊断与高可用保障,助力企业高效运维、降本增效,实现数据库“无感运维”。
|
11月前
|
NoSQL MongoDB 数据库
数据库数据恢复——MongoDB数据库服务无法启动的数据恢复案例
MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库故障: 管理员在未关闭MongoDB服务的情况下拷贝数据库文件。将MongoDB数据库文件拷贝到其他分区后,对MongoDB数据库所在原分区进行了格式化操作。格式化完成后将数据库文件拷回原分区,并重新启动MongoDB服务。发现服务无法启动并报错。

推荐镜像

更多