【问题标题】:Logstash JSON filter does not appear to be working with JDBC inputLogstash JSON 过滤器似乎不适用于 JDBC 输入
【发布时间】:2017-07-17 23:08:45
【问题描述】:

我正在尝试从 postgres 视图索引文档并通过 Elasticsearch 进入 logstash。我的配置文件的语句部分如下所示:

select search_document FROM my_view;

我的配置文件中的下一行是我尝试从数据库调用中提取值的地方:

filter {
 json {
   source => "[search_document][value]"
  }
}

这应该选择列的值,然后直接将其通过管道传输到 Elasticsearch(或在此测试阶段,stdout);但是,它不能正常工作。我在上面的属性访问上尝试了几种变体,它总是插入带有“search_document”作为键的文档,其余的 JSON 文档作为它的值。

是不是我做错了什么?

编辑:我已经根据我找到的另一个答案更新了我的视图以执行select search_document::text FROM my_view;。列的原始类型是 JSONB,行中的数据类似于:

{ "value" : { "key_1": "hello", "key_2": "world" } }

【问题讨论】:

  • 你能粘贴你选择的行的格式吗?
  • 当然,见上文。

标签: elasticsearch logstash


【解决方案1】:

你可以尝试只指定你想要这样的字段:

filter {
 json {
   source => "value"
  }
}

过滤器应该对每条记录执行,所以你不应该添加search_document

【讨论】:

  • 我是否可能需要先使用json_encode 将其从文本格式化为 JSON?
猜你喜欢
  • 2019-07-13
  • 2017-01-21
  • 2023-04-08
  • 2015-06-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 2012-01-23
  • 1970-01-01
相关资源
最近更新 更多