Logstash jdbc不往elasticsearch发送数据

发布于 2022-09-11 20:23:00 字数 936 浏览 17 评论 0

环境

版本:logstash 7.1.1,elasticsearch 7.1.1

配置

logstash配置文件如下:

input {
  jdbc {
    jdbc_driver_library => "/home/inspur/elasticsearch/lib/ojdbc14-10.2.0.1.0.jar"
    jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
    jdbc_connection_string => "jdbc:oracle:thin:@10.47.0.238:1521:orcl"
    jdbc_user => "lgzr"
    jdbc_password => "lgzr"
    schedule => "* * * * *"
    statement => "select * from SR_INFOR t where SR_INFOR_ID >:sql_last_value"
    jdbc_paging_enabled => true
    jdbc_page_size => "1"
    clean_run => true
    use_column_value => true
    tracking_column => "SR_INFOR_ID"
  }
}

output {
   elasticsearch {
      hosts => ["http://10.47.0.96:9200/"]
      index => "data_archives_jdbc"
   }
}

问题

在elasticearch head插件界面查看,logstash并没有数据生成,日志文件只有启动日志。请问为何logstash不把数据库中的数据发送到elasticsearch?

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

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

发布评论

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

评论(1

短暂陪伴 2022-09-18 20:23:00

详细请查看这一篇博客吧:https://blog.csdn.net/laoyang...
我给你一个线上的模板吧,用的是mysql,其实都差不多,注释我已经写好,你可以研究下,我这个应该是比较通用的模板了,线上可以稳定跑~~
input:

    jdbc {
        # 数据库地址
        jdbc_connection_string => "jdbc:mysql://172.16.8.54:3306/wps_pay"
        # 用户名
        jdbc_user => "vas_data_report"
        # 密码
        jdbc_password => "e8nMX2TeXAxkOEq2pz8Q"
        # 驱动路径
        jdbc_driver_library => "/usr/local/logstash-6.4.0/mysql-connector-java-5.1.45-bin.jar"
        # 驱动类
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        # 是否验证连接
        jdbc_validate_connection => true
        # 验证超时
        jdbc_validation_timeout => 14400
        # 尝试连接次数
        connection_retry_attempts => 50
        # 等待次数
        connection_retry_attempts_wait_time => 1
        # 是否开启记录追踪
        record_last_run => "true"
        # 是否需要追踪字段,如果为true,则需要指定tracking_column,默认是timestamp
        use_column_value => "true"
        # 指定追踪的字段
        tracking_column => "utime"
        # 追踪字段的类型,目前只有数字和时间类型,默认是数字类型
        tracking_column_type => "timestamp"
        # 是否每次清除last_run_metadata_path的内容
        clean_run => "false"
        # 这里可以手动设置:sql_last_value的值,默认时间是1970-01-01,默认数字是0
        last_run_metadata_path => "/usr/local/logstash-6.4.0/logstash_jdbc_last_run"
        # 是否分页
        jdbc_paging_enabled => "true"
        # 分页大小
        jdbc_page_size => "100000"
        # sql路径
        statement_filepath => "/usr/local/logstash-6.4.0/vas_pay_order.sql"
        # 定时任务cron表达式
        schedule => "* * * * *"
        # 类型 用于区别多个输入源
        type => "vas_pay_order"
   }

output:

    if [type] == "vas_pay_order" {
       elasticsearch {
            hosts => ["172.31.0.57:9200"]
            index => "vas_pay_order"
            document_id => "%{order_id}"
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文