簡體   English   中英

使用Elasticsearch + Logstash將匯總統計信息推送到Kafka

[英]Using Elasticsearch + Logstash to push aggregated statistics to Kafka

我們正在使用Kafka,Elasticsearch和Logstash。 為了進行試驗,我們想構建一個小型服務,該服務:

  1. 當用戶單擊給定鏈接時,產生“單擊”消息,並將其推送到Kafka
  2. 將這些點擊消息編入Elasticsearch
  3. 匯總這些點擊消息並將其推送到Kafka。

至此,我們已經獲得了生成點擊消息並將其推送到Kafka主題的服務,並且我們正在使用Logstash讀取這些消息並將其推送到Elasticsearch。

我們現在需要的是一種產生包含匯總結果的新Kafka消息的方法。 我們嘗試使用以下Logstash配置文件(此時的聚合請求完全是隨機的):

input {
    elasticsearch {
        hosts => "localhost"
        query => '{
                      "query": {
                        "query_string": {
                          "query": "*",
                          "analyze_wildcard": true
                        }
                      },
                      "size": 0,
                      "aggs": {
                          "messages": {
                              "value_count": {
                                  "field": "message"
                              }
                          }
                      }
                  }'
    }
}
output {
    kafka {
        topic_id => 'aggregated_stats'
    }
}

不幸的是,Elasticsearch給我們以下錯誤消息:

org.elasticsearch.ElasticsearchIllegalArgumentException: aggregations are not supported with search_type=scan

而且,似乎Logstash在生成單個消息后立即退出,而我們希望它隨着聚合統計信息的變化而不斷生成新消息。

這有道理嗎?

在輸出配置中添加“ broker_list”時,它在我的服務器上工作。

output {
      kafka {
      broker_list => "x.x.x.x:9092,y.y.y.y:9092"
      topic_id => "aggregated_stats"
      }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM