= dummy_service == fluent.conf config file: WriteToMongo/fluent/fluent.conf == edit [source,yaml] ---- @type stdout // <1> @type tail path /var/log/*.log path_key tailed_path pos_file /tmp/fluentd--1605454018.pos pos_file_compaction_interval 30s refresh_interval 30s skip_refresh_on_startup tag stats.node enable_stat_watcher false enable_watch_timer true read_from_head true follow_inodes true # Without this parameter, file rotation causes log duplication @type none keep_time_key true # define the source which will provide log events // <1> @type tail // <2> path /var/log-in/*/* // <3> path_key tailed_path pos_file /tmp/fluentd--1605454014.pos // <4> pos_file_compaction_interval 10s refresh_interval 30s skip_refresh_on_startup tag log.node // <5> enable_stat_watcher false // <6> enable_watch_timer true // <7> read_from_head true follow_inodes true # Without this parameter, file rotation causes log duplication @type none // <8> keep_time_key true ## match tag=log.* and write to mongo // <9> @type copy copy_mode deep // <10> // <11> @type mongo // <12> connection_string mongodb://mongo.poc-datacollector_datacollector-net:27017/fluentdb // <13> #database fluentdb collection test #host mongo.poc-datacollector_datacollector-net #port 27017 num_retries 60 capped // <14> capped_size 100m # key name of timestamp time_key time retry_wait 50s flush_mode immediate // <15> #flush_interval 10s @type stdout @type file path /tmp/mylog timekey 1d timekey_use_utc true timekey_wait 10s ---- <1> ** directives determine the input sources. The source submits events to the Fluentd routing engine. An event consists of three entities: *tag*, *time* and *record*. <2> The *tail Input plugin* allows Fluentd to read events from the tail of text files. Its behavior is similar to the tail -F command. xref:doc-dummy_service.adoc#tailmongo[see image: type tai] <3> The *path(s) to read*. Multiple paths can be specified, separated by comma ','. '*' format can be included to add/remove the watch file dynamically. At the interval of refresh_interval, Fluentd refreshes the list of watch files. <4> *pos_file* handles multiple positions in one file so no need to have multiple pos_file parameters per source. Don't share *pos_file* between *tail* configurations. It causes unexpected behavior e.g. corrupt pos_file content. <5> The *tag* of the event. <6> Enables the additional inotify-based watcher. *Either of enable_watch_timer or enable_stat_watcher must be true* <7> Enables the additional watch timer. *Either of enable_watch_timer or enable_stat_watcher must be true* <8> The *none parser plugin* parses the line as-is with the single field. This format is to defer the parsing/structuring of the data. <9> ** directives determine the output destinations. The match directive looks for events with matching tags and processes them. The most common use of the match directive is to *output events to other systems*. <10> Chooses how to pass the events to plugins. *deep* copied events to each store plugin. This mode is useful when you modify the nested field after out_copy, e.g. Docker Swarm/Kubernetes related fields. <11> Specifies the *storage destinations*. The format is the same as the directive. This section is required at least once. <12> The *mongo Output plugin* writes records into , the document-oriented database system. <13> The https://docs.mongodb.com/manual/reference/connection-string/#std-label-connections-standard-connection-string-format[MongoDB connection string^] for URI. <14> This option enables the *capped collection*. This is always recommended. https://docs.mongodb.com/manual/core/capped-collections/[Capped collections^] are fixed-size collections that support high-throughput operations that insert and retrieve documents based on insertion order. Capped collections work in a way similar to circular buffers: once a collection fills its allocated space, it makes room for new documents by overwriting the oldest documents in the collection. <15> *Flushing* Parameters: [#tailmongo] .type tail image::ROOT:fluent-mongo.png[float=right] == restart To make changes become effective a restart is required [source,bash] ---- ./tools/poc-service-restart-readmongo ----