1

我正在使用 Filebeat 和 Logstash 将日志上传到 Elastic(都是 7.3-oss 版本)。我的日志文件包含数十亿行,但弹性仅显示 10K 文档。添加 stdout 输出时,似乎所有数据都进入了 Logstash,但由于某种原因,Logstash 只上传了 10,000 个文档。

我添加了另一个输出 stdout { codec => ruby​​debug } 用于打印到屏幕上,看起来数据来自 Filebeat,但由于某种原因,Logstash 只上传了 10,000 个文档。还尝试在 Logstash 中删除 Json 过滤器,但问题仍然存在。

文件节拍配置

filebeat.inputs:
- type: log
  paths:
    \\some-path\my.json
output.logstash:
  hosts: ["localhost:5044"]

Logstash 管道

input {
  beats {
    port => 5044
  }
}

filter{
    json{
        source => "message"
    }
}

output {
    stdout {
    codec => rubydebug 
    }
    elasticsearch {
        hosts => [ "machine-name:9200" ]
    }
}

Logstash.yml

默认安装为空

4

1 回答 1

0

我发现这是我的搜索导致了混乱。根据 https://www.elastic.co/guide/en/elasticsearch/reference/7.3/search-request-body.html#request-body-search-track-total-hits,Elastic 根本没有返回准确的点击(刚刚声明它大于 10000)。

更改我的搜索查询

GET logstash-*/_search
{
  "track_total_hits": true
}

返回正确的尺寸。

于 2019-09-04T18:02:35.320 回答