multiprocess agent plugin runs some child fluentd processes.
You can take advantage of multiple CPU cores using this plugin.
Please note that this plugin does not generate records although this is an input plugin.
This plugin just controls start & shutdown of child processes.
process: section sets command line arguments of a child process. This plugin creates one child process for each <process> section
cmdline: This parameter is required in a <process> section
sleep_before_start: Optional. Sets wait time before starting the process. Note that child processes start from last to first (fluentd_child3 -> sleep 5 -> { fluentd_child2, fluentd_child1 } in this case)
sleep_before_shutdown: Optional. Sets wait time before shutting down the process. Note that child processes shutdown from first to last ({ fluentd_child1, fluentd_child2 } -> sleep 5 -> fluentd_child3 in this case)
pid_file: Optional. Writes child process id to this file. This is useful for sending a signal to child processes, e.g. logrotate’s pid.
Logs for daemonized processes
Daemonized fluentd closes its STDOUT. So child processes on daemonized fluentd & in_multiprocess doesn’t put its logs without --log option. Specifing --log option always is best practice to help this situation.
NOTE
You should use unique parameter in each sub configuration to avoid conflict problem, e.g. buffer_path of buf_file, s3_object_key_format of out_s3 and more.
This plugin is mainly for Fluentd v0.x, since Fluentd v1.x has multi-process-workers feature.
However, you can still use this plugin for Fluentd v1.x to run plugins that don’t support the feature in multiple processes (with special care of the configuration to avoid race).
Multiprocess agent plugin for Fluentd
multiprocess
multiprocess agent plugin runs some child fluentd processes. You can take advantage of multiple CPU cores using this plugin.
Please note that this plugin does not generate records although this is an input plugin. This plugin just controls start & shutdown of child processes.
Configuration
fluentd_child3->sleep 5-> {fluentd_child2,fluentd_child1} in this case)fluentd_child1,fluentd_child2} ->sleep 5->fluentd_child3in this case)Logs for daemonized processes
Daemonized fluentd closes its STDOUT. So child processes on daemonized fluentd & in_multiprocess doesn’t put its logs without
--logoption. Specifing--logoption always is best practice to help this situation.NOTE
buf_file,s3_object_key_formatofout_s3and more.