Logstash 从 http 输出插件捕获 http 响应

标签 logstash logstash-configuration

我编写了一个logstash程序来将一些消息发布到URL。 Logstash 没有错误,但我想知道是否有一种方法可以捕获我们使用 http 输出插件发布的 url 的响应?

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

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

最佳答案

没有愚蠢的问题;-)

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

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

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

elastic/logstash 人员已经认识到对此的需求,并且正在开发更多 generic lookup filter不仅仅是 HTTP。

关于Logstash 从 http 输出插件捕获 http 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39897198/

相关文章:

elasticsearch - 仅获取 Kafka 消息的相关部分作为 Logstrash 的输入

elasticsearch - 添加副本字段并将其设置为小写

elasticsearch - 如何使用Logstash加载二进制文件

elasticsearch - Elasticsearch + LogStash 连接不上

elasticsearch - 只允许索引模板中的字段

java - Logstash自定义输入插件调用java类

sql-server - 保持SQL Server数据库和Elasticsearch索引同步

elasticsearch - 当JSON中的键值对丢失时,Logstash “add_field”将 “%{…}”保存为值

elasticsearch - 我们可以将 logstash 实例部署到弹性云吗?

elasticsearch - Filebeat的Logstash输出。什么是 'index'配置选项?