我们正在使用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。
如果有人可以帮助我或已经遇到这个问题,那就太好了。 谢谢