发出事务失败:error_class = Errno :: EIO

时间:2019-04-29 20:21:38

标签: ruby fluentd graylog nuxeo td-agent

我们正在使用3个节点(redhat),并将它们的日志从应用程序(nuxeo)推送到Graylog,其中一个(节点a)每隔几分钟就会给我一个ruby错误。该消息仅出现在Graylog上,而我在节点a的日志文件中找不到它。

我已经重新安装了fluentd,将log.rb与其他两个节点进行了比较,但是我什么都没找到。

错误日志(灰色日志):

emit transaction failed: error_class=Errno::EIO error="Input/output error @ io_write - <STDOUT>" location="/opt/td-agent/embedded/lib/ruby/gems/2.4.0/gems/fluentd-1.0.2/lib/fluent/log.rb:395:in `write'" tag="nuxeo.access"

log.rb:

...
385     def puts(msg)
386       @logger << msg + "\n"
387       @out.flush
388       msg
389     rescue
390       # FIXME
391       nil
392     end
393
394     def write(data)
395       @out.write(data)
396     end
397     # We need `#<<` method to use this logger class with other
398     # libraries such as aws-sdk
399     alias << write
...

文件与其他两个文件相同。

更新1

当我在3个节点上停止fluentd时,我可以看到fluentd不在运行,我可以在graylog上看到消息,fluentd现在已停止停止,但是节点a继续将日志发送到graylog。

如果有人可以帮助我或已经遇到这个问题,那就太好了。 谢谢

0 个答案:

没有答案