通过 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。
我必须通过 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。