千家信息网

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

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方。本文要介绍的是在Fluentd的最新版中已经内置的MongoDB支持。主要通过一个收
千家信息网最后更新 2025年02月01日使用Fluentd和MongoDB构建日志收集系统

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

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

机制图解





安装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来设置日志来源

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


其中:

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

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

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

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

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



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

# 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

较好理解,看注释就可以了,其中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") }






日志 配置 位置 文件 不同 插件 方式 系统 成功 使用方法 例子 原理 只有 可以通过 地方 方法 时间 是在 最新版 机制 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 联想服务器系统u盘启动 国外网页代理服务器 我的世界大型服务器战争片 模拟山羊手机版怎么开服务器 浦发360网络安全实验室 做软件开发怎么入驻抖音小店 网络安全维护难度大怎么解决 服务器玩家怎么找下界堡垒 维也纳酒店网络安全 小程序取得云数据库数据 linux中怎么创建数据库 东莞餐饮软件开发咨询 电子商务网络技术操作 湖北频道网络安全 河海大学网络安全期末考试 服务器地址加密 软件开发类工作要c语言二级吗 四川python软件开发有用吗 网络技术中的p2p 网络技术教学基础课 plsql切换数据库被锁 网络安全方面知识竞赛 winapp用什么软件开发好 石景山区网络安全资质申请哪家好 天津专业性网络技术有哪些 北京海纳百医网络技术 t3数据库是那一个 人工智能网络安全哪个工资高 近年来我国网络安全的问题 电子商务快递网络安全
0