elasticsearch+logstash+jdbc

发布于 2022-09-07 16:53:02 字数 1777 浏览 60 评论 0

logstash配置:

output {
   elasticsearch {
      hosts => ["192.168.8.8:9200"]
      index => "jdbc_index"
      document_id => "%{id}"
   }

   stdout {
      codec => json_lines
   }
}

上面配置两种方式输出的,为什么使用kibana显示ES的记录只有一条呢

clipboard.png
stdout输出的就是正常的:

clipboard.png

搞了好久了,有前辈知道原因的吗?

配置文件代码:

input {
   stdin {
   }
   jdbc {
      jdbc_connection_string => "jdbc:mysql://192.168.12.222:3306/main"
      jdbc_user => "admin"
      jdbc_password => "123456"
      jdbc_driver_library => "/usr/local/logstash/mysql-connector-java-5.1.3.jar"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      statement_filepath => "/usr/local/logstash/config/jdbc.sql"
      #statement => "select inquiryId, inquiryNo, carTypeId, orgId, `status`, createTime, publishTime, failTime from qp_inquiry limit 500"
      schedule => "* * * * *"
      type => "jdbc_type"
      lowercase_column_names => "false"
   }
}

filter {
   json {
      source => "message"
      remove_field => ["message"]
   }
}

output {
   elasticsearch {
      hosts => ["192.168.8.8:9200"]
      index => "jdbc_index"
      document_id => "%{id}"
   }

   stdout {
      codec => json_lines
   }
}

sql语句:

SELECT
*
FROM
 (
  SELECT
   inquiryId,
   inquiryNo,
   carTypeId,
   orgId,
   `status`,
   createTime,
   publishTime,
   failTime
  FROM
   qp_inquiry
  LIMIT 50
 ) as `t1`
LIMIT 50000 OFFSET 0

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷情 2022-09-14 16:53:02

看你的原始字段是没有 id 这个字段的,你应该指定一个存在的字段

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文