0

我已经设置了轮询端点并将数据存储到logstash的HTTP beat。我可以使用 Kibana 上的特定索引查看事件。间隔已设置为每 5 秒一次。

但是,我希望 ELK 堆栈捕获随时间变化的数据(增量馈送),而不是每 5 秒内的所有数据。有什么办法吗?

我的 HTTPbeat.yml 看起来像这样:

 httpbeat:

  hosts:
    # Each - Host endpoints to call. Below are the host endpoint specific configurations
    -
      # Optional cron expression, defines when to poll the host endpoint.
      # Default is every 1 minute.
      schedule: '@every 5s'

      # The URL endpoint to call by Httpbeat
        url: #sample end point
        method: get
        basic_auth:
         # Basic authentication username
           username: 
         # Basic authentication password
           password: 
        output_format: json
       #----------------------------- Logstash output --------------------------------
        output.logstash:
       # The Logstash hosts
        hosts: ["localhost: 5400"]

logstash.conf 如下:

input {
    # Accept input from the console.
    beats {
        port => "5400"
    }
}

filter {
    # Add filter here. This sample has a blank filter.
}

output {
    # Output to the console.
    stdout {
            codec => "json"
    }
    elasticsearch {
        hosts => [ "localhost:9200" ]
    index => "test_jira2_idx"
    }   
}

如果我通过邮递员访问端点,则 JSON 正文大小约为 1.08 MB。但是在监控 Kibana 索引:test_jira2_idx 时,1 小时就已经是 340MB 并且还在不断增加。

这可能是由于 HTTP beat 每 5 秒不断轮询相同的数据。任何人都可以建议在 ELK 中实施增量提要提取的各种替代方案吗?

我查看了 logstash 的 HTTP_POLLER 输入 - 不确定这是否有帮助。

注意:我对 ELK 很陌生

4

1 回答 1

0

只是一个建议,为响应生成哈希,并且每次检查哈希是否从先前的响应中更改,而不是仅存储它。(还添加带有存储文档的时间戳)。

于 2019-02-26T06:29:08.200 回答