簡體   English   中英

Logstash中的兩個輸出。 僅用於某些聚合

[英]Two outputs in logstash. One for certain aggregations only

我正在嘗試指定logstash的第二個輸出,以便僅保存某些聚合數據。 目前尚不知道如何實現。 文檔沒有涵蓋這種情況。

目前,我使用一個輸入和一個輸出。

輸入定義( logstash-udp.conf ):

input { 
    udp { 
        port => 25000
        codec => json
        buffer_size => 5000
        workers => 2
    }
}

filter {
  grok {
    match => [ "message", "API call happened" ]
  }

  aggregate {
    task_id => "%{example_task}"
    code => "
        map['api_calls'] ||= 0
        map['api_calls'] += 1
        map['message'] ||= event.get('message')
        event.cancel()
    "
    timeout => 60
    push_previous_map_as_event => true
    timeout_code => "event.set('aggregated_calls', event.get('api_calls') > 0)"
    timeout_tags => ['_aggregation']
  }
}

輸出定義( logstash-output.conf ):

output {
  elasticsearch {
    hosts => ["localhost"]
    manage_template => false
    index => "%{[@metadata][udp]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

我現在想實現什么? 我需要添加第二個不同的聚合(不同的數據和條件),它將像現在一樣將所有未聚合的數據保存到Elasticsearch,但是此聚合的聚合數據將保存到Postgres。 我目前陷入困境,在網絡上搜索一些文檔/示例無濟於事。

我建議使用多個管道: https : //www.elastic.co/guide/en/logstash/current/multiple-pipelines.html

這樣,您可以有一個管道用於聚合,第二個管道用於純數據。

暫無
暫無

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

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