Versions | v0.14 (td-agent3) | v0.12 (td-agent2) | v0.10 (td-agent1)

Troubleshooting Fluentd

Table of Contents

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

  1. edit /etc/init.d/td-agent
  2. add -vv to TD_AGENT_ARGS
  3. restart td-agent

    # at /etc/init.d/td-agent
    ...
    TD_AGENT_ARGS="... -vv"
    ...
    

deb

  1. edit /etc/init.d/td-agent
  2. add -vv to DAEMON_ARGS
  3. restart td-agent

    # at /etc/init.d/td-agent
    ...
    DAEMON_ARGS="... -vv"
    ...
    

gem

Please add -vv to your command line.

$ fluentd .. -vv

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.

2016-01-01 00:00:00 +0800 [info]: starting fluentd-0.12.28
2016-01-01 00:00:00 +0800 [info]: reading config file path="/etc/td-agent/td-agent.conf"
[...snip...]
2016-01-01 00:00:02 +0800 [info]: process finished code=6

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.

$ sudo LD_PRELOAD=/opt/td-agent/embedded/lib/libjemalloc.so /usr/sbin/td-agent -c /etc/td-agent/td-agent.conf --user td-agent --group td-agent
Last updated: 2016-09-05 20:13:06 UTC

Versions | v0.14 (td-agent3) | v0.12 (td-agent2) | v0.10 (td-agent1)

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), invented and sponsored by Treasure Data, Inc. under the Apache 2.0 Licence.

Interested in the Fluentd Newsletters?