文档数量相同,但索引大小在每个 logstash 中都在增长 运行

Document count is same but index size is growing every logstash run

我正在使用 mysql 数据库中包含的数据的 logstash 发送 elasticsearch。

但是每次logstash 运行s,文档数量保持不变,但索引大小增加。

第一运行 计数:333 | 字节大小:206kb

现在 count:333| 字节大小:1.6MB

input {
    jdbc {
        jdbc_connection_string => "jdbc:mysql://***rds.amazonaws.com:3306/"
        jdbc_user => "***"
        jdbc_password => "***"
        jdbc_driver_library => "***\mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar"
        jdbc_driver_class => "com.mysql.jdbc.Driver"
        statement => "SELECT id,title,url, FROM tableName"
        schedule => "*/2 * * * *"
    }
}
filter {
  json {
    source => "texts"
    target => "texts"
  }
  mutate { remove_field => [ "@version", "@timestamp" ] }
}
output {
    stdout {
            codec => json_lines
    }
    amazon_es {
      hosts => ["***es.amazonaws.com"]
      document_id => "%{id}"
      index => "texts"
      region => "***"
      aws_access_key_id => '***'
      aws_secret_access_key => '***'
  }  
}

显然您总是一遍又一遍地发送相同的数据。在 ES 中,每次更新文档(即使用相同的 ID)时,旧版本都会被删除并在索引中保留一段时间(直到基础索引段被合并)。

在每个 运行 之间,您可以发出以下命令:

curl -XGET ***es.amazonaws.com/_cat/indices?v

在您收到的响应中,检查 docs.deleted 列,您会看到已删除文档的数量增加了。