Logstash 在 Kubernetes 中保留消息数小时

问题描述

我正在尝试使用 logstash Jdbc 插件将数据从 Postgres 数据库同步到某些输出(弹性、rabbitMq)。

问题是logstash每小时都运行良好(我是这样配置cronJob的)。 Logstash 正在成功读取数据库,但由于某种原因没有立即发送消息。 然而,几个小时后,消息发送成功。

我最初认为这是一个性能问题,因为消息量很大,但即使只有一条消息,行为也是一样的。

我使用 docker-compose 在 docker 上进行了本地测试,我没有问题,但在 Kubernetes pod 中它不起作用。

pipeline.conf

input {
      jdbc {
        jdbc_driver_class => "${JDBC_DRIVER_CLASS}"
        jdbc_connection_string => "${JDBC_CONNECTION_STRING}"
        jdbc_user => "${JDBC_USER}"
        jdbc_password => "${JDBC_PASSWORD}"
        jdbc_paging_enabled => false
        codec => "json"
        tracking_column => "sync_unix_ts"
        use_column_value => true
        tracking_column_type => "numeric"
        schedule => "${LOGSTASH_CRONEXPRESSION}"
        statement_filepath => "/usr/share/logstash/query/elasticsearch-query.sql"
      }
    }
    filter {
      json {
        source => "fieldjson"
      }
      mutate {  
        remove_field => ["fieldjson","sync_unix_ts"]
      }
    }
    
    output {
      elasticsearch {
          index => "index_name"
          document_id => "%{id}"
          hosts => ["${ELASTICSEARCH_HOST}"]
      }
    }

logstash.yaml

http.host: "0.0.0.0"
xpack.monitoring.enabled: false

我不知道是不是缓冲区问题...

感谢您的回答

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)