【问题标题】:Logstash REST Filter - limit the speedLogstash REST 过滤器 - 限制速度
【发布时间】:2019-02-04 21:46:51
【问题描述】:

创建了一个从 MSSQL 获取数据并将其推送到 ElasticSearch 的 logstash 配置文件,我正在使用 Logstash REST 过滤器来丰富数据

filter {

rest {
request => {
  url => "http://api.timezonedb.com/v2/get-time-zone? 
  key=[KEY]&format=json&by=zone&zone=Europe/%{city}"
  method => "post"   
}

json => true
sprintf => true 
target => "test"                    

}
}

我的问题是:

有没有办法限制/减慢 logstash,因为我正在使用的示例 API 向我返回了我进行太多调用的错误?

【问题讨论】:

  • 也许重新考虑对每个事件进行此 API 调用的必要性。城市通常不会经常更改/移动时区。抓取数据的快照,并使用翻译过滤器添加额外的数据。通过 cron 定期更新缓存,logstash 会为你重新加载文件。
  • 我知道,我使用这个 API 作为测试,看看我如何丰富数据。我同意你关于拍摄数据快照然后运行它的观点。

标签: elasticsearch logstash logstash-configuration


【解决方案1】:

Logstash 中有一个filter sleep plugin,应该对速率限制很有用。

配置示例:

filter {
  rest {
   # rest related
  }
  sleep {
    time => "1"   # Sleep 1 second
    every => 10   # on every 10th event
  }
}

【讨论】:

  • 我完全按照你的例子做了,但是它不起作用。我仍然从 API 中收到错误,即调用已快速完成 2。我的设置是:时间 = 2 / 每 = 1。
  • @Lemon 增加时间选项,也许?还要看看减少 logstash 工作人员的数量是否有任何效果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 2015-12-13
  • 2014-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多