LOGSTASH:如何设置Logstash以获取所有查询的数据而不仅仅是其中的一部分?

问题描述

我有一个数据库表,其中包含400多个记录,但是每次使用logstash和JDBC时,它仅获得126条记录。我每次尝试使用不同的索引多次,但是仍然只检索126个。

以下是输出配置:

input {
    jdbc {
        -
        -
        jdbc_driver_class => "org.postgresql.Driver"
        statement => "SELECT * from xfailure"
    }
}
output {
elasticsearch {
   hosts => ["localhost:9200"]
   manage_template => false
   index => "test_predictions"
   document_id => "%{id}"
}
}

当我检查行数时,我发现它有400多个记录,这是select语句:

SELECT * FROM xfailure;

这是记录列的示例:

id|modified|x_url|x_id|correlation_id|links|code|description|explanation|tr_id

我在Kibanna上创建了一个索引,我使用时间戳作为时间字段,但是命中次数仅为162次!

解决方法

我为此找到了一个解决方案,它指定了每个字段,因此可以通过更改以下位置的sql查询来实现:

SELECT * FROM xfailure;

SELECT field_1 as field_1,field_2 as field_2 FROM xfailure;

现在可以正常工作了。