Logstash HTTP输出插件中的未知异常
我日志中的一些请求未能通过http输出插件,日志显示 [2020-10-16T18:44:54574][ERROR][logstash.outputs.http][http 输出失败]无法获取URL {:url=>”https://www.example.com/api.php“,:method=>:post, :body=>“{”id:“test”},:headers=>{“Content Type”=>“text/plain”}, :message=>“连接重置”,:class=>“Manticore::UnknownException”, :backtrace=>[“/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/response.rb:37:inLogstash HTTP输出插件中的未知异常,logstash,Logstash,我日志中的一些请求未能通过http输出插件,日志显示 [2020-10-16T18:44:54574][ERROR][logstash.outputs.http][http 输出失败]无法获取URL {:url=>”https://www.example.com/api.php“,:method=>:post, :body=>“{”id:“test”},:headers=>{“Content Type”=>“text/plain”}, :message=>“连接重置”,:class=>“Mant
block in initialize'“/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/manticore-0.6.4-java/lib/manticore/response.rb:79:in
call',
“/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-http-5.2.4/lib/logstash/outputs/http.rb:239:in
send_event'“/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-http-5.2.4/lib/logstash/outputs/http.rb:175:in
send_events',
“/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-output-http-5.2.4/lib/logstash/outputs/http.rb:124:in
multi_-receive'”,org/logstash/config/ir/compiler/OutputStrategyExt.java:118:in
multi_-receive',
org/logstash/config/ir/compiler/AbstractOutputDelegatorExt.java:101:in
multi_receive'”,/usr/share/logstash/logstash core/lib/logstash/java_pipeline.rb:239:in
block in start_workers',:will_retry=>false}
原因是什么?以及如何修复它,即稍后重试
我的日志存储输出配置为
output {
if [message] == "..." {
http {
format=>"message"
http_method=>"post"
url=>"xxx"
message=>'...'
}
}
}
Logstash Http输出插件使用Manticore Http客户端。如果异常属于以下类别,它将自动重试。检查 对于您的用例,http客户端正在获取
Manticore::UnknownException
,这不是重试默认列表的一部分。我看不到使用配置覆盖它的方法
我可以想出两个选择
Manticore::UnknownException
添加到可重试异常列表中,并使用该版本的插件您可以实现重试策略,如果这是一个临时问题,那么这可能很有用。如果您一直面临这个问题,我建议您查看API端点的网络连接,看看是否存在导致连接重置的错误配置,检查API端是否存在阻止连接的防火墙或网络白名单,或者API是否需要相互身份验证,并且是否希望logstash http输出显示客户端证书。@karanshah但是为什么连接重置不会触发重试?能否用logstash输出配置更新问题?@karanshah已更新(其实没有特别设置)
retry\u failed
选项确定logstash输出插件是否会重试请求。默认情况下,该选项设置为true,因此它应该无限次地重试。我很惊讶为什么在您的情况下不会发生这种情况。可以在错误消息中看到will\u retry=>false
,需要查看输出插件如何确定何时重试请求我不知道什么时候可以。
::Manticore::Timeout,
::Manticore::SocketException,
::Manticore::ClientProtocolException,
::Manticore::ResolutionFailure,
::Manticore::SocketTimeout