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

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_replset
database fluentd
collection test
nodes localhost:27017,localhost:27018,localhost:27019 # The name of the replica set
replica_set myapp <buffer>
# flush
flush_interval 10s
</buffer>
</match>

参数说明

  • @type:必填mongo_replset
  • nodes:必填,MongoDB的URI连接字符串,类型是string,举例:host1:27017,host2:27017,host3: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
  • replica_set:必填,mongodb副本集标识
  • read:副本集读取首选项,类型是string,默认是nil
  • num_retries:复制集故障转移阈值。默认阈值为60。如果重试计数达到此阈值,则插件将引发异常。类型是integer,默认60

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

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

如下这个示例,正常情况下是fluentd+misc,但是设置了tag_mapped,tag是mongo.foo,又因为设置了remove_tag_prefix,去掉了mongo.,只保留了foo,最终使用得是fluentd+foo

<match mongo.*>
@type mongo_replset
database fluentd
nodes localhost:27017,localhost:27018,localhost:27019 # 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/13937264.html

这个示例设置tag_mapped了,最终的是fluentd+nginx

<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_replset
database mongo
collection test # 设置了tag_mapped,这个就不生效了
nodes 192.168.0.253:27027,192.168.0.253:27028,192.168.0.253:27029 user mongo # 事先创建好的数据库
password 12345 replica_set rs0 # 创建副本集时使用的副本集标识
tag_mapped remove_tag_prefix mongo. capped
capped_size 1024m <buffer>
flush_interval 10s
</buffer>
</match>

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

Fluentd直接传输日志给MongoDB副本集 (replset)的更多相关文章

  1. Fluentd直接传输日志给MongoDB (standalone)

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

  2. MongoDB副本集的实现与维护实战

    1.建立MongoDB副本集 现利用一台机器完成MongoDB副本集的建立 机器1:127.0.0.1:27017 机器2:127.0.0.1:27018 机器3:127.0.0.1:27019 在D ...

  3. MongoDB副本集学习(三):性能和优化相关

    Read Preferences/读写分离 有时候为了考虑应用程序的性能或响应性,为了提高读取操作的吞吐率,一个常见的措施就是进行读写分离,MongoDB副本集对读写分离的支持是通过Read Pref ...

  4. MongoDB 副本集的原理、搭建、应用

    概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...

  5. MongoDB副本集学习(一):概述和环境搭建

    MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...

  6. MongoDB副本集的常用操作及原理

    本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...

  7. MongoDB副本集的搭建

    副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低 ...

  8. 创建mongodb副本集操作实例

    一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...

  9. 十分钟搞定mongodb副本集

    mongodb副本集配置 最近项目中用到了mongodb,由于是用mongodb来记录一些程序的日志信息和日常的统计,为了增加应用的可靠性,一直在找mongodb集群的一些资料,下面是对最近做的一个小 ...

随机推荐

  1. mvc 捕获404和500 等

    之前一直以为HandleErrorAttribute 可以捕获到后面自己尝试了不行,又自己想自定义页面,发现不行,然后设置了<customErrors/>节点 又不符合SEO 返回stat ...

  2. Solution -「线段树」题目集合

    T1 无聊的数列 来自:Link flag 帖先从水题入手. 首先分析题目,它是以等差数列为原型进行的修改.等差数列一大性质就是其差分数列的值除第一项以外均相等. 于是不难想到使用差分数列进行维护. ...

  3. day03_3_流程控制练习题

    # 流程控制练习题 # 一.编程题 1.实现一个课程名称和课程代号的转换器:输入下表中的课程代号,输出课程的名称.用户可以循环进行输入,如果输入0就退出系统.(**使用****switch +whil ...

  4. led闪烁(时序输入输出,自定义变量,时钟仿真,执行顺序)

    1.设计定义 设计一个以200ms亮,200ms暗交替闪烁的led灯,并且有一个复位按钮可以停止工作. 2.设计输入 2.1端口 以固定周期交替闪烁说明由时钟控制,需要一个时钟控制端口clk,要求复位 ...

  5. Codeforces Round #796 (Div. 2)(A~E题题解)

    文章目录 原题链接: A.Cirno's Perfect Bitmasks Classroom 思路 代码 B.Patchouli's Magical Talisman 思路 代码 C.Manipul ...

  6. 用VS Code搞Qt6:编译源代码与基本配置

    先说明一下,本水文老周仅讨论新版的 Qt 6,旧版的 Qt 不讨论. 尽管 Qt 有自己的开发环境,但老周必须说句不装逼的话:真的不好用.说起写代码,当然了,用记事本也能写.但是,有个高逼格的工具,写 ...

  7. 在less里面使用js函数

    .colorPaletteMixin() { @functions: ~`(function() { this.colorPalette = function() { return '123px'; ...

  8. Thread类的常用方法_获取线程名称的方法和Thread类的常用方法_设置线程名称的方法

    构造方法: public Thread();分配一个新的线程对象 public Thread(String name);分配一个指定名字的新的线程对象 public Thread(Runnable t ...

  9. 【定时功能】消息的定时发送-基于RocketMQ

    一.功能介绍 要实现一个消息的定时发送功能,也就是让消息可以在某一天某一个时间具体节点进行发送.而我们公司的业务场景是类似短信的业务,而且数量不小,用户会进行号码.消息内容.定时发送时间等信息的提交. ...

  10. 从RabbitMQ平滑迁移到RocketMQ技术实战

    作者:vivo 互联网中间件团队- Liu Runyun 大量业务使用消息中间件进行系统间的解耦.异步化.削峰填谷设计实现.公司内部前期基于RabbitMQ实现了一套高可用的消息中间件平台.随着业务的 ...