我必须通过LogStash批量导入数据,如下所示:
来源:Restful Get 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插件的输入中应用分页逻辑。
请帮助我如何在这里应用分页逻辑。
2条答案
按热度按时间ecr0jaav1#
我不确定这是否是正确的建筑。为什么你决定将数据拉入Logstash(使用http_poller输入插件)而不是将数据推送到Logstash?
如果是单次批量上传;你可以编写一些脚本,通过http(使用http输入插件)直接将事件发送到Logstash。或者,如果它不是一个单一的批量上传,并且有很多数据随着时间的推移而增长,您可以考虑将事件发送到像Kafka/Redis/RabbitMQ这样的东西,这些东西可以使用相关的输入插件流式传输到Logstash。
siv3szwd2#
我有一个类似的情况,我想使用http_poller输入插件将批量数据加载到elasticsearch中。数据是从sap CDC获取的,因此需要在请求中提供用户名和密码。我如何使用HTTP输入插件来实现这一点,因为http_poller只允许300个记录,即使在随后的运行中,它也会拉取随机数据,而不是增量加载。这是我对http_poller的实现。我怎么能d相同使用HTTP输入插件?