【问题标题】:Logstash Capture http response from http output pluginLogstash 从 http 输出插件捕获 http 响应
【发布时间】:2016-10-06 13:22:01
【问题描述】:

我编写了一个logstash 程序来向URL 发布一些消息。 logstash 没有错误,但我想知道有没有办法从我们使用 http 输出插件发布的 url 捕获响应?

   output {
      stdout {
      codec => json_lines
      }
      http{
          url => "Rest URl"
          http_method => "post"
          format => "json"
          headers => {"Authorization" => "%{pass}"}
      }
   }

我已经浏览了文档,但我没有找到任何与它相关的内容。 如果是愚蠢的问题,请原谅我。

【问题讨论】:

    标签: logstash logstash-configuration


    【解决方案1】:

    没有愚蠢的问题;-)

    很遗憾,无法从http 输出插件获得任何响应。如果您收到状态码为<200>299 的HTTP 响应,或者在调用过程中出现异常(例如,因为远程服务器已关闭),它只会记录错误。

    这样做的原因是因为无论如何都无法使用响应,因为输出是任何 Logstash 管道的最后一步,并且输出不会相互通信。

    您需要的是一个 HTTP 过滤器插件,它在输入之后和输出之前执行。你很幸运,因为存在这样的一种,并在https://github.com/elastic/logstash/issues/3489进行了描述

    elastic/logstash 的人已经意识到了这种需求,并且正在努力开发更多 generic lookup filter 而不仅仅是 HTTP。

    【讨论】:

    • 感谢您的回答.. 问题是如果我有错误的请求错误代码是 400 是否也会被记录?我想知道请求是否由于 BAD 请求而失败。
    • 是的,如上所述,如果您收到状态为 400 的 HTTP 响应,Logstash 会记录它。
    • 这个运气好吗?
    • 我尝试了过滤器部分,但响应按预期工作。感谢您的帮助.. 抱歉回复晚了。
    • 好的,很高兴它有帮助。
    猜你喜欢
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    相关资源
    最近更新 更多