Before Installation
Last updated
Was this helpful?
Last updated
Was this helpful?
Before installing Fluentd, make sure that your environment is properly set up to avoid any inconsistencies at a later stage.
Follow these recommendations:
Set Up NTP
Increase the Maximum Number of File Descriptors
Optimize the Network Kernel Parameters
It is highly recommended that you set up an NTP daemon (e.g. , ntpd
, etc.) on the node to have an accurate current timestamp. This is crucial for all the production-grade logging services.
For Amazon Web Services users, we recommend using the .
Increase the maximum number of file descriptors. You can check the existing configuration using the ulimit -n
command:
If your console shows 1024
, it is insufficient. Please add the following lines to your /etc/security/limits.conf
file and reboot your machine:
If you are running fluentd under systemd
, the option LimitNOFILE=65536
can also be used. And, if you are using the td-agent
package, this value is set up by default.
For high load environments with many Fluentd instances, add the following configuration to your /etc/sysctl.conf
file:
Use sysctl -p
command or reboot your node for the changes to take effect.
NOTE: CentOS 7 or later, Ubuntu 18.04 (bionic) or later, and Debian GNU/Linux 10 (buster) or later are supported these parameters.
Fluentd sometimes uses predictable paths for dumping, writing files, and so on. This default settings for the protections are in /etc/sysctl.d/10-link-restrictions.conf
, or /usr/lib/sysctl.d/50-default.conf
or elsewhere.
For symlink attack protection, check the following parameters are set to 1
:
This settings are almost enough for time-of-check to time-of-use (TOCTOU, TOCTTOU or TOC/TOU) which are a class of software bugs.
If you turned off these protections, please turn them on.
Use sysctl -p
command or reboot your node for the changes to take effect.
These kernel options were originally taken from the presentation by , Senior Performance Architect at AWS re:Invent 2017.
If this article is incorrect or outdated, or omits critical information, please . is an open-source project under . All components are available under the Apache 2 License.