官方文档地址:https://docs.fluentd.org/output/mongo

td-agent版本默认没有包含out_mongo插件,需要安装这个插件才能使用

使用的是td-agent,安装这个插件:

$ /usr/sbin/td-agent-gem install gems
$ /usr/sbin/td-agent-gem install fluent-plugin-mongo

使用的是Fluentd,安装这个插件:

$ fluent-gem install fluent-plugin-mongo

有关插件管理可以看这篇文章,地址:https://www.cnblogs.com/sanduzxcvbnm/p/13936280.html

配置示例

# Single MongoDB
<match mongo.**>
@type mongo
host fluentd
port 27017
database fluentd
collection test # for capped collection
capped
capped_size 1024m # authentication
user michael
password jordan <inject>
# key name of timestamp
time_key time
</inject> <buffer>
# flush
flush_interval 10s
</buffer>
</match>

参数说明

  • @type:必填mongo
  • connection_string:必填,MongoDB的URI连接字符串,类型是string,默认是nil
  • host:必填,MongoDB主机名,类型是string,默认是'localhost'
  • port:必填,MongoDB端口号,类型是integer,默认是27017
  • database:必填,MongoDB数据库,类型是string,默认是nil
  • collection:必填,集合名称,类型是string,如果没有设置tag_mapped则默认是'untagged'
  • tag_mapped:是否允许out_mongo使用Fluentd的标记来确定目标集合,类型是bool,默认是false
  • capped:启用capped集合,类型是string
  • capped_size:上限集合大小,类型是size
  • user:用于身份验证的用户名,类型是string
  • password:用于身份验证的密码,类型是string
  • time_key:时间戳的密钥名,类型是string

connection_string参数官方文档上是必填,但是实际使用的时候没找到这个咋用的,官方示例上也没有用这个

如果没有配置tag_mapped,则说使用配置文件中的中的database(数据库)+collection(集合/表)

如下这个示例,设置了tag_mapped,fluentd设置的tag是mongo.foo,但是设置了remove_tag_prefix去掉前缀mongo.只使用foo,结合起来后,最终使用的是database(fluentd)+collection(foo)

<match mongo.*>
@type mongo
host fluentd
port 27017
database fluentd # Set 'tag_mapped' if you want to use tag mapped mode.
tag_mapped # If the tag is "mongo.foo", then the prefix "mongo." is removed.
# The inserted collection name is "foo".
remove_tag_prefix mongo. # This configuration is used if the tag is not found. The default is 'untagged'.
collection misc
</match>

用法示例

mongodb安装参考:https://www.cnblogs.com/sanduzxcvbnm/p/13935837.html

这个示例就是没有设置tag_mapped

<source>
@type tail
@id input_tail
<parse>
@type nginx
</parse>
path /usr/local/openresty/nginx/logs/host.access.log
tag mongo.nginx
</source> <match mongo.nginx>
@type mongo
host 192.168.0.253
port 27017
database fluentd # 事先创建好的数据库
collection test # 相当于数据表,会自动生成 capped
capped_size 1024m user testadmin # 事先创建好的数据库相对应的用户名
password 123456 # 事先创建好的数据库相对应的密码 <inject>
time_key time
</inject> <buffer>
flush_interval 10s
</buffer>
</match>

启动openresty,浏览器访问,然后使用Navicat查看数据

Fluentd直接传输日志给MongoDB (standalone)的更多相关文章

  1. Fluentd直接传输日志给MongoDB副本集 (replset)

    官方文档地址:https://docs.fluentd.org/output/mongo_replset td-agent版本默认没有包含out_mongo插件,需要安装这个插件才能使用 使用的是td ...

  2. Fluentd直接传输日志给kafka

    官方文档地址:https://docs.fluentd.org/output/kafka td-agent版本自带包含out_kafka2插件,不用再安装了,可以直接使用. 若是使用的是Fluentd ...

  3. Fluentd直接传输日志给Elasticsearch

    官方文档地址:https://docs.fluentd.org/output/elasticsearch td-agent的v3.0.1版本以后自带包含out_elasticsearch插件,不用再安 ...

  4. 记一次logback传输日志到logstash根据自定义设置动态创建ElasticSearch索引

    先说背景,由于本人工作需要创建很多小应用程序,而且在微服务的大环境下,服务越来越多,然后就导致日志四分五裂,到处都有,然后就有的elk,那么问题来了 不能每个小应用都配置一个 logstash 服务来 ...

  5. ELK系列~Fluentd对大日志的处理过程~16K

    Fluentd是一个日志收集工具,有输入端和输出端的概念,前者主要是日志的来源,你可以走多种来源方式,http,forward,tcp都可以,后者输出端主要指把日志进行持久化的过程,你可以直接把它持久 ...

  6. Spring Boot中使用log4j实现http请求日志入mongodb

    之前在<使用AOP统一处理Web请求日志>一文中介绍了如何使用AOP统一记录web请求日志.基本思路是通过aop去切web层的controller实现,获取每个http的内容并通过log4 ...

  7. 9. Fluentd部署:日志

    Fluentd是用来处理其他系统产生的日志的,它本身也会产生一些运行时日志.Fluentd包含两个日志层:全局日志和插件级日志.每个层次的日志都可以进行单独配置. 日志级别 Fluentd的日志包含6 ...

  8. kubernetes部署Fluentd+Elasticsearch+kibana 日志收集系统

    一.介绍 1. Fluentd 是一个开源收集事件和日志系统,用与各node节点日志数据的收集.处理等等.详细介绍移步-->官方地址:http://fluentd.org/ 2. Elastic ...

  9. log4net 日志写入MongoDB 实现分布式日志

    本人在.net framework 4.5下测试成功,首先需要安装log4mongo-net组件,见https://www.nuget.org/packages/log4mongo-net/ vs20 ...

随机推荐

  1. YYYYMMdd和yyyyMMdd的区别

    YYYYMMdd的 YYYY 是表示:当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年.比如今天是2021-12-29 星期三,然后本周六是2022-01-01,存 ...

  2. java geteway 手机返回数据

    import lombok.extern.slf4j.Slf4j; import org.reactivestreams.Publisher; import org.springframework.c ...

  3. IP核的使用(Vivado中的调用,product guide的查询阅读 ,引脚的设置(位宽,个数,算法等),coe文件的初始化 )

    IP核:Intellectual Property core ,即知识产权核.每个IP核可以实现特定功能,我们在设计一个东西时可以直接调用某个IP核来辅助实现功能. 存在形式:HDL语言形式,网表形式 ...

  4. 【每天学一点-04】使用脚手架搭建 React+TypeScript+umi.js+Antd 项目

    一.使用脚手架搭建项目框架 1.首先使用脚手架搭建React项目(React+TypeScript+Umi.js) 在控制台输入命令:yarn create @umijs/umi-app 2.引入An ...

  5. 从零开始在centos搭建博客(一)

    本篇为安装篇. 基于centos 7.9,大部分东西使用docker安装. 软件列表:docker + mysql + wordpress 安装docker yum install -y yum-ut ...

  6. linux常见命令chgrp/chown/chmod

    linux文件权限有读(r-4)写(w-2)执行(x-1) linux文件的所有方式有拥有者(user),属组(group),其他人(others) 改变文件属组命令 -- chgrp 修改/data ...

  7. 编码GBK的不可映射字符,最新版sublime

    最近开始学java了,跟着老师写一个hello world,刚执行javac就报错:编码GBK的不可映射字符 然后去网上找了一堆,总结来说的就是编码不对,最新版的sublime只要设置utf-8保存即 ...

  8. Luogu3594 [POI2015]WIL-Wilcze doły (双端队列)

    单调性显然,双端队列队列维护严格单调递减手写双端队列真的可恶. #include <iostream> #include <cstdio> #include <cstri ...

  9. Java开发学习(二十五)----使用PostMan完成不同类型参数传递

    一.请求参数 请求路径设置好后,只要确保页面发送请求地址和后台Controller类中配置的路径一致,就可以接收到前端的请求,接收到请求后,如何接收页面传递的参数? 关于请求参数的传递与接收是和请求方 ...

  10. React报错之Expected `onClick` listener to be a function

    正文从这开始~ 总览 当我们为元素的onClick属性传递一个值,但是该值却不是函数时,会产生"Expected onClick listener to be a function" ...