Fluentd v1.18.0 has been released

Hi users!

We have released v1.18.0 on 2024-11-29. ChangeLog is here.

This release is a new release of v1.18 series. In this release, we added zero-downtime-restart as a key feature, enhanced some features and fixed bugs.

Enhancement

Add zero-downtime-restart feature

In this release, we have added the feature to update the Fluentd process with zero downtime for Linux and macOS environments (not supported on Windows). You can use this feature to reload config and restart Fluentd gracefully.

You can use this feature by sending a SIGUSR2 signal to the supervisor process, and this changes behavior SIGUSR2 from graceful reload to zero-downtime-restart feature on Linux and macOS environments.

You can still use the conventional graceful reloading feature by directly sending SIGUSR2 to each worker process or using the RPC feature. However, it had some limitations and issues (Please see #4624 for details). So, we recommend using this new feature for graceful reloading/restarting unless there is a particular reason.

Please see #4624 for more information.

Add with-source-only feature

This feature has been added to support the zero-downtime-restart feature that it launches Fluentd with input plugins only.

This feature has added --with-source-only option in fluentd command, with_source_only option in system configuration and out_buffer plugin which can be used for buffering and relabeling events. These are used internally to support zero-downtime-restart.

Please see #4661 for more information.

Config File Syntax: Extend Embedded Ruby Code support for Hashes and Arrays

The Embedded Ruby Code has been supported in configuration. In this release, we have extended the syntax to allow the use of Embedded Ruby Code in Hashes and Arrays.

Example:

key1 ["foo","#{1 + 1}"] # Embedded Ruby Code in Array syntax
key2 {"foo":"#{1 + 1}"} # Embedded Ruby Code in Hash syntax

Result:

key1 ["foo","2"]
key2 {"foo":"2"}

Please note that this is not backward compatible, although we assume that this will never affect to actual existing configs.

In case the behavior changes unintentionally, you can disable this feature by surrounding the entire value with single quotes.

Example:

key '{"foo":"#{1 + 1}"}'

transport tls: Use SSL_VERIFY_NONE by default

We have changed the flags to SSL_VERIFY_NONE by default for server the certification verification.

In the previous versions, it had been necessary to set client_cert_auth false and insecure true to apply SSLVERIFYNONE. This was an inappropriate combination of settings. In this release, it can make it possible to apply SSL_VERIFY_NONE with just client_cert_auth false (default).

transport tls: Add ensure_fips option to ensure FIPS compliant mode

We have added ensure_fips option in transport section in config to check FIPS mode. When it configures ensure_fips true, it will check FIPS mode is supported in your environment, if not, just aborts. By default, it has disabled.

Example:

<transport tls>
  ensure_fips true
</transport>

Please see the document for more information.

plugin_helper/server: Add receive_buffer_size parameter in transport section

In the previous versions, the receive_buffer_size option can be set by in_udp only. In this release, we have added the receive_buffer_size option into transport section too to configure the buffer size on in_tcp or in_syslog plugins.

Example:

<transport udp>
  receive_buffer_size 4194304
</transport>

filter_parser: Now able to handle multiple parsed results

In the previous versions, there was a restriction that only the first record could be handled when the parsed result was multiple records. In this release, we have removed this limitation to handle multiple records appropriately.

You can read more about this limitation in the Remaining problem: filter_parser in Fluentd v1.17.0 release blog.

in_http: add add_tag_prefix option

We have added add_tag_prefix option in in_http plugin to add the prefix to the incoming event's tag, similar to in_forward plugin.

Example:

<source>
  @type http
  add_tag_prefix prod
</source>

System configuration: add path option in log section

We have added path option to log section of system configuration.

Example:

<system>
  <log>
    path /path/to/log_file
  </log>
</system>

Bug Fix

command: fix NoMethodError of --daemon under Windows

We have fixed a NoMethodError when launches fluentd with --daemon command line option under Windows platform.

fluentd command: fix --plugin (-p) option not to overwrite default value

We have fixed --plugin command line option that it does not overwrite the default value.

Enjoy logging!

Subscribed to the RSS feed here.

Written by ClearCode, Inc.

ClearCode, Inc. is a software company specializing in the development of Free Software. We maintain Fluentd and its plugin ecosystem, and provide commercial support for them.