问题描述
我正在尝试使用 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 (将#修改为@)