昨天调试了线上EFK集群无数据显示的问题,今天测试环境EFK又出现了无数据的情况,查看了es无明显错误日志,但是fluentd却报下面的错误
报错信息
2021-09-29 03:13:31 +0000 [warn]: [elasticsearch] failed to flush the buffer. retry_time=56605 next_retry_seconds=2021-09-29 03:14:00 175942697618538710113/549755813888000000000 +0000 chunk="5cc2e93bcd9fbea28fbd5b92dcc4acbb" error_class=Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure error="could not push logs to Elasticsearch cluster ({:host=>\"elasticsearch\", :port=>9200, :scheme=>\"http\"}): No route to host - connect(2) for 10.244.1.32:9200 (Errno::EHOSTUNREACH)"
......
问题原因
fluent-plugin-elasticsearch 默认每1w次请求会重启连接.(因为这个插件用了很多api, 所以不是指 events 计数 1w). 这种重启机制导致了报错.
解决办法
fluentd配置文件output.conf中增加如下配置
reload_connections false
reconnect_on_error true
reload_on_failure true