elasticsearch - Logstash 调度第一次运行

标签 elasticsearch logstash elk

我有一个 logstash 管道每 5 分钟运行一次,使用以下 jdbc 输入配置,问题是在第一次启动管道时,它也会等待 5 分钟,然后开始调度。有什么方法可以指定我们的查询/语句在 logstash 管道启动后立即执行,而不是等待前 5 分钟?

input {
  jdbc {
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://${DB_HOST}/${DB_NAME}?useSSL=false"
    jdbc_user => "${DB_USER_NAME}"
    jdbc_password => "${DB_PASSWORD}"
    schedule => "*/5 * * * *"    
    statement => "Select * from students"
  }
}

最佳答案

另一种解决方法是使用两个 jdbc 输入,一个用于启动,一个用于调度。它需要一些复制/粘贴,但还不错。

input {
    jdbc {
        id => "index_name_startup"
        jdbc_connection_string => "${JDBC_STRING}"
        jdbc_user => "${JDBC_USER}"
        jdbc_password => "${JDBC_PASSWORD}"
        jdbc_driver_library => "/opt/logstash/postgresql-42.2.5.jre7.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        add_field => { "[@metadata][project_id]" => "index_name" }
        statement_filepath => "/mnt/elastic-search-config/sql-scripts/assets-index_name.sql"
    }

    jdbc {
        id => "index_name"
        jdbc_connection_string => "${JDBC_STRING}"
        jdbc_user => "${JDBC_USER}"
        jdbc_password => "${JDBC_PASSWORD}"
        jdbc_driver_library => "/opt/logstash/postgresql-42.2.5.jre7.jar"
        jdbc_driver_class => "org.postgresql.Driver"
        add_field => { "[@metadata][project_id]" => "index_name" }
        statement_filepath => "/mnt/elastic-search-config/sql-scripts/assets-index_name.sql"
        schedule => "0 * * * *"
    }
}

filter {
    mutate {
        gsub => [
         "name", "_", " ",
         "name", "-", " "
        ]
    }
}

output {
    if [@metadata][project_id] == "index_name" {
        elasticsearch {
            index => "index_name"
            document_id => "%{geom_id}"
            hosts => "localhost:9200"
            template_name => "assets_template"
            id => "index_name_es"
        }
    }
}

关于elasticsearch - Logstash 调度第一次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59226702/

相关文章:

elasticsearch - 使用外部属性作为document_id会返回属性的名称,即document_id

logstash - Beat 和 Logstash - 连接被同行重置

elasticsearch - 在Elasticsearch中排序聚合?

highcharts - 如何将我们自己的图表添加到 Kibana 中?

java - Elasticsearch获取字段不为空/字段为空或字段存在/字段不存在的数据

elasticsearch - Elasticsearch 索引ShardGatewayRecoveryException

elasticsearch - Kibana用户禁止错误{“statusCode”:403 ,“error” :“Forbidden” ,“message” :“Forbidden”}

elasticsearch - Elasticsearch超过最大字段长度-Kibana中的错误

java - 使用 Elasticsearch Transport 客户端指定字段

amazon-web-services - 如何让两台机器都安装了 elasticsearch,在亚马逊 AWS 中相互交互?