2017-01-24 2 views
0

Я использую logstash с помощью input-elasticsearch и output-elasticsearch. У Elastic Search есть другой экземпляр. Прежде чем данные перейдут к выходному блоку, я хочу объединить некоторые документы, создать хэш нового документа и вставить вложенный документ в поиск эластичного изображения. Так что в основном я хочу сделать некоторую обработку, прежде чем вложенный документ будет вставлен в elasticsearch.Is это возможно?Агрегация в Logstash-ElasticSearch

input{ 
    # something here to get a value of variable stored in a different file 
    elasticsearch{ 
    hosts=>"abc.de.fg.hi:jklm" 
    query=>'{--some query---}' 
    } 
    } 
    output{ 

    elasticsearch{ 
    hosts=>"xxx.xx.xx.xx:yyyy" 

    } 
+0

К сожалению, в настоящее время нет способа запуска агрегатов из Logstash. Для чего это стоит, есть плагин, над которым я работал, это делает, но я еще не выпустил его. Я обновлю этот поток, когда у меня что-нибудь запустится. Возможно, вам захочется заглянуть в фильтр ['aggregate'] (https://www.elastic.co/guide/en/logstash/current/plugins-filters-aggregate.html), тем временем это может сделать трюк. – Val

+0

нет новостей, как использовать агрегацию – hudi

ответ

2

Я использую «совокупную» заглушку.

В моем случае вход С UDP и я фильтровать его с «обращал внимание», но я полагаю, вы можете добиться того, что вы хотите сделать, немного изменив код.

Без образца вы пытаетесь достичь точно, лучше это я могу сделать, это показать вам пример моего кода:

aggregate { 
    task_id => “%{action}_%{progress}” 
    code => 
    “ 
    map[‘avg’] || = 0; 
    map[‘avg’] += event.get(‘elapsed’); 
    map[‘my_count’] || = 0; 
    map[‘my_count’] += 1; 

    if (map[‘my_count’] == ${LogstashAggregationCount})#Environment variable 
     event.set(‘elapsedAvg’, (map[‘avg’]/map[‘my_count’])) 
     event.set(‘Aggregetion’, true) 
     map[‘avg’] = 0 
     map[‘my_count’] = 0 
    end 
    “ 
}  
if (![Aggregetion]) { 
    drop {} 
} 

проклятие вам нужно адаптировать его к конкретному случаю. Для более подробного объяснения моего кода читайте здесь: How to Use Logstash Aggregations