通过 LogStash 批量导入数据

Bulk import data via LogStash

我必须通过 LogStash 批量导入数据,如下所示:

来源:Restful 获取 API

目的地:ElasticSearch

我的 logstash 配置文件如下所示:

input {
  http_poller {
    urls => {
     test1 => {
       method => get
       url => "https://forun/questions?limit=100&offset=0"
       headers => {
         Accept => "application/json"
    }
  }
}

output {
elasticsearch{
 hosts => ["localhost:9200"]
 index => "testindex"
}
  stdout {
    codec => rubydebug
  }
}

这一次获取 200 条记录。

但是,我有超过 10000 条记录,需要在 http-poller 插件的输入中应用分页逻辑。

请帮助我如何在此处应用分页逻辑。

我不确定这是否是正确的体系结构。为什么您决定将数据拉入 Logstash(使用 http_poller 输入插件)而不是将数据推送到 Logstash?

如果是单次批量上传;您可以编写一些脚本来通过 http(使用 http 输入插件)将事件直接发送到 Logstash。或者,如果它不是单个批量上传,并且有大量数据随着时间的推移而增长,您可以考虑将事件发送到 Kafka/Redis/RabbitMQ 之类的东西,它可以使用关联的输入插件流式传输到 Logstash。