Fluentd中怎么排查错误

这篇文章将为大家详细讲解有关Fluentd中怎么排查错误,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

十载的建始网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整建始建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“建始网站设计”,“建始网站推广”以来,每个客户项目都认真落实执行。


  1. 查看日志

    如果感觉Fluentd运行异常,请先查看日志。td-agent安装后,默认日志存放在/var/log/td-agent/td-agent.log。

  2. 开启详细日志

    Fluentd日志支持多个级别,打开详细的日志有助于发现问题。有以下几种方法可以开启详细日志:

    1. 通过配置文件的log_level项进行设置,具体可参考Fluentd日志。

    2. 使用systemd用户级文件

      添加或修改配置文件/etc/systemd/system/td-agent,

      增加如下内容,这会覆盖/usr/lib/systemd/system/td-agent中的

      配置。

      [Service]ExecStart=...existing options... -vv

    3. 修改init.d启动脚本

      编辑/etc/init.d/td-agent,在TD_AGENT_OPTIONS后增加"-vv",重启td-agent

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

    4. 命令行参数

      $ fluentd .. -vv

  3. 导出fluentd内部信息

    Fluentd使用sigdump(https://github.com/frsyuki/sigdump)将内部信息导出到本地文件中,可向fluentd进程发送SIGCONT信号以导出相关信息。

  4. CPU使用率较高的原因

    若发现Fluentd占用较高的CPU,一般可能有以下几点原因:

    1. 某个插件发生竞态问题

    2. 正则表达式错误

    3. 系统调用异常,比如inotify监控了过多的文件

    4. 某个ruby依赖包异常

      出现这些情况时,可使用linux perf工具来检测问题所在。也可使用pid2line.rb(https://gist.github.com/nurse/0619b6af90df140508c2)这个脚本来辅助排查。

  5. 检查未捕获的日志

    有时候会遇到一些异常退出的情况,这时程序返回值非0。比如:

    2016-01-01 00:00:00 +0800 [info]: starting fluentd-0.12.282016-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
     

    这类问题可能发生在ruby内部,比如段错误、某些C扩展有bug等。当fluentd以守护进程方式运行时,我们将得不到完整的日志。

    使用如下方式运行td-agent,就可以在程序异常时获取到完整的日志。

    $ 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

关于Fluentd中怎么排查错误就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文名称:Fluentd中怎么排查错误
当前链接:http://scyanting.com/article/jisjed.html