The out_mongo
Output plugin writes records into MongoDB, the emerging document-oriented database system.
If you're using ReplicaSet
, please see the out_mongo_replset
article instead.
This document does not describe all the parameters. For details, check the Further Reading section.
Fluentd enables your apps to insert records to MongoDB asynchronously with batch-insertion, unlike direct insertion of records from your apps. This has the following advantages:
- less impact on application performance
- higher MongoDB insertion throughput while maintaining JSON record structure
out_mongo
is not included in fluent-package
, by default. Fluentd gem users will need to install the fluent-plugin-mongo
gem using the following command:
$ sudo fluent-gem install fluent-plugin-mongo
For more details, see Plugin Management.
# 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>
Please see the Store Apache Logs into MongoDB article for real-world use cases.
Please see the Configuration File article for the basic structure and syntax of the configuration file.
For <buffer>
, refer to Buffer Section Configuration.
The value must be mongo
.
type | default | version |
---|---|---|
string | nil |
1.0.0 |
The MongoDB connection string for URI.
type | default | version |
---|---|---|
string | 'localhost' | 1.0.0 |
The MongoDB hostname.
type | default | version |
---|---|---|
integer | 27017 | 1.0.0 |
The MongoDB port.
type | default | version |
---|---|---|
string | nil |
1.0.0 |
The database name.
type | default | version |
---|---|---|
string | 'untagged' or required parameter if not tag_mapped |
1.0.0 |
The collection name.
type | default | version |
---|---|---|
string | optional | 1.0.0 |
This option enables the capped collection. This is always recommended because MongoDB is not suited for storing large amounts of historical data.
type | default | version |
---|---|---|
size | optional | 1.0.0 |
Sets the capped collection size.
type | default | version |
---|---|---|
string | nil |
1.0.0 |
The username to use for authentication.
type | default | version |
---|---|---|
string | nil |
1.0.0 |
The password to use for authentication.
type | default | version |
---|---|---|
string | time |
1.0.0 |
The key name of timestamp.
type | default | version |
---|---|---|
bool | false |
1.0.0 |
This option allows out_mongo
to use Fluentd's tag to determine the destination collection.
For example, if you generate records with tags mongo.foo
, the records will be inserted into the foo
collection within the fluentd
database:
<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>
This option is useful for flexible log collection.
For common output / buffer parameters, please check the following articles:
If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.