Fluentd直接传输日志给MongoDB副本集 (replset)
官方文档地址: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)的更多相关文章
- Fluentd直接传输日志给MongoDB (standalone)
官方文档地址:https://docs.fluentd.org/output/mongo td-agent版本默认没有包含out_mongo插件,需要安装这个插件才能使用 使用的是td-agent,安 ...
- MongoDB副本集的实现与维护实战
1.建立MongoDB副本集 现利用一台机器完成MongoDB副本集的建立 机器1:127.0.0.1:27017 机器2:127.0.0.1:27018 机器3:127.0.0.1:27019 在D ...
- MongoDB副本集学习(三):性能和优化相关
Read Preferences/读写分离 有时候为了考虑应用程序的性能或响应性,为了提高读取操作的吞吐率,一个常见的措施就是进行读写分离,MongoDB副本集对读写分离的支持是通过Read Pref ...
- MongoDB 副本集的原理、搭建、应用
概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...
- MongoDB副本集学习(一):概述和环境搭建
MongoDB副本集概述 以下图片摘自MongoDB官方文档:http://docs.mongodb.org/manual/core/replication-introduction/ Primary ...
- MongoDB副本集的常用操作及原理
本文是对MongoDB副本集常用操作的一个汇总,同时也穿插着介绍了操作背后的原理及注意点. 结合之前的文章:MongoDB副本集的搭建,大家可以在较短的时间内熟悉MongoDB的搭建和管理. 下面的操 ...
- MongoDB副本集的搭建
副本集是mongodb提供的一种高可用解决方案.相对于原来的主从复制,副本集能自动感知primary节点的下线,并提升其中一个Secondary作为Primary. 整个过程对业务透明,同时也大大降低 ...
- 创建mongodb副本集操作实例
一:概念 相关概念及图片引用自这里 mongodb副本集: 副本集是一组服务器,其中一个是主服务器,用于处理客户请求:还有多个备份服务器,用于保存主服务器的数据副本.如果主服务器崩溃了,备份服务器自动 ...
- 十分钟搞定mongodb副本集
mongodb副本集配置 最近项目中用到了mongodb,由于是用mongodb来记录一些程序的日志信息和日常的统计,为了增加应用的可靠性,一直在找mongodb集群的一些资料,下面是对最近做的一个小 ...
随机推荐
- 1 什么是Zookeeper 能干什么
1 Zookeeper 概述 美团,饿了么,淘宝,58 同城等等应用都是 zookeeper 的现实生活版 博主我开了个饭店,如何才能让大家都能吃到我们的饭菜?需要入驻美团,这样大家就可以在美团 ap ...
- windows版本rabbitmq安装及日志level设置
1.DirectX Repair 安装缺失的C++组件,不安装缺失的组件会造成第二部安装erl文件夹缺少bin文件夹2.安装otp_win64_23.1 1.配置 ERLANG_HOME:地址为Erl ...
- 枚举子集为什么是 O(3^n) 的
这是更新日志 \(2021/2/9\) 代数推导 \(2021/2/10\) 组合意义,构建 TOC 目录 枚举子集 复杂度证明 代数推导 组合意义 Summary 枚举子集 枚举子集为什么是 \(O ...
- 清北学堂 2020 国庆J2考前综合强化 Day4
目录 1. 题目 T1 写字符串 题目描述 Sol T2 神奇的数 题目描述 Sol T3 珠子染色 题目描述 Sol T4 病毒扩散 题目描述 Sol 算法 -- 图论 1. 题目 T1 写字符串 ...
- 如何给MySQL添加自定义语法 ?
目录 1 背景 2 新增关键词(token) 3 新增语法 4 类似于PT_partition添加对应的数据结构global_partition_clause 1 背景 MySQL语法解析器用的bis ...
- MySQL金融应用场景下跨数据中心的MGR架构方案(1)
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 0. 内容提纲 运行环境 部署MGR A&B 部署MGR A.B之间的复制通道 几个注意事项 如何在多个数据中心部 ...
- 正则表达式实战:最新豆瓣top250爬虫超详细教程
检查网页源代码 首先让我们来检查豆瓣top250的源代码,一切网页爬虫都需要从这里开始.F12打开开发者模式,在元素(element)页面通过Ctrl+F直接搜索你想要爬取的内容,然后就可以开始编写正 ...
- mybatis报错:java.io.IOException: Could not find resource /resources/mybatis-config.xml
原因: 这个图标的resources目录是根目录,在此目录下的文件直接写文件名即可
- Vim配置文件-详解(.vimrc)
Vim配置文件的作用 Vim启动时,会根据配置文件(.vimrc)来设置 Vim,因此我们可以通过此文件来定制适合自己的 Vim Vim分类 系统Vim配置文件/etc/vimrc 所有系统用户在启动 ...
- 基础2:js创建对象的多种方式
js创建对象的多种方式 1. 工厂模式 function createPerson(name) { var o = new Object() 0.name = name return o } var ...