【问题标题】:Logstash with jdbc driver-How to set an initial value for sql_last_valueLogstash with jdbc driver-如何设置sql_last_value的初始值
【发布时间】:2020-06-12 14:48:16
【问题描述】:

根据 Logstash documentation,sql_last_value 参数在运行任何查询之前设置为 1970 年 1 月 1 日星期四,并根据 last_run_metadata_path 参数存储在 YAML 文件中。 我需要将此值设置为自定义值,但是因为我在 Docker 容器中使用了 Logstash,所以我无法将自定义映像与使用所需值初始化的文件一起使用,因为该文件在容器中是只读的,并且然后 Logstash 抛出一个错误。 我的问题是:是否可以使用与容器安装中的默认值不同的初始值来启动 Logstash? 谢谢。

【问题讨论】:

    标签: docker jdbc logstash docker-image logstash-jdbc


    【解决方案1】:

    您可以有一个解决方法。 Logstash 允许您定义一个文件,它将存储sql_last_value 的最后一个值。当 logstash 启动时,jdbc 将查看该文件(如果在设置中定义),将值存储到 sql_last_value 参数并从那里继续。

    您可以创建该文件并写下您想要开始的日期。这样司机会认为它上次停在那里。你可以这样做:

    在 logstash.conf 添加以下内容:

    input {
      jdbc {
        last_run_metadata_path => "/some/path/sql_last_value.yml"
        # ... other configuration bits
      }
    }
    

    将您想要开始的日期写入sql_last_value.yml 文件,格式如下:

    --- 2020-06-12 20:28:00.374000000 Z
    

    您可以在 dockerfile 中使用简单的命令轻松创建文件。

    【讨论】:

    • 谢谢,但我已经尝试过该解决方案但没有奏效,因为在 Dockerfile 中创建的文件是只读的,并且每次更改属性的尝试都失败并显示“不允许操作”消息,并且显然 Logstash 抛出发现文件是只读的时出现异常
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-19
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 2019-08-01
    相关资源
    最近更新 更多