Trouble Shooting
Look at Logs
If things aren't happening as expected, please first look at your logs. For td-agent (rpm/deb), the logs are located at /var/log/td-agent/td-agent.log
.
Turn on Verbose Logging
You can get more information about the logs if verbose logging is turned on. Please follow the steps below.
rpm/deb
Open the service setting file for td-agent (see below for its file
path).
Add
-vv
to TD_AGENT_OPTIONS.Restart td-agent.
Note: The environment variable TD_AGENT_OPTIONS has been introduced in td-agent v2.2.1. If you are using an older version of td-agent, you need to edit /etc/init.d/td-agent
and insert -vv
options to TD_AGENT_ARGS or DAEMON_ARGS manually.
gem
Please add -vv
to your command line.
Dump fluentd internal information
Fluentd uses sigdump for dumping fluentd internal information to local file, e.g. thread dump, object allocation and etc. If you have a problem with fluentd like process hang, please send SIGCONT
to fluentd parent and child processes.
High CPU usage issue
If fluentd suddenly hits unexpected high CPU usage problem, there are several reasons:
a plugin has a race condition or similar bug
dependent gems have a bug
regular expression with broken data
system calls has a bug, e.g.
inotify
with lots of files
In such cases, you can use perf
tool on recent Linux to investigate the problem. See Linux perf Examples page. If you want to know which call causes the problem, pid2line.rb is useful.
Check uncaught logs
You sometimes hit unexpected shutdown with non-zero exit status like below.
If the problem happens inside ruby, e.g. segmentation fault, C extension bug, etc, you can't get entire log when fluentd process is daemonized. For example, td-agent launches fluentd with --daemon
option. In td-agent case, you can get entire log using following command to simulate /etc/init.d/td-agent start
without daemonize.
If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is a open source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.
Last updated