如何设置ELK HTTP节拍以将增量Feed发送到Logstash

时间:2019-02-26 03:47:36

标签: elasticsearch logstash kibana elastic-stack elastic-beats

我已设置HTTP节拍,该节拍轮询一个端点并将数据存储到logstash。我可以使用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节拍每5秒不断轮询一次相同的数据。谁能提出在ELK中实现增量提要提取的各种替代方案?

我查看了logstash的HTTP_POLLER输入-不确定是否可以帮忙。

注意:我是ELK的新手

1 个答案:

答案 0 :(得分:0)

只是一个建议,生成用于响应的哈希,并每次检查哈希是否与先前响应相比有所变化,而不是仅存储哈希。 (还要在存储的文档中添加时间戳)。