2016-06-25 4 views
2

Я использую logstash (v2.3.3-1), чтобы индексировать около ~ 800 тыс. Документов от S3 до AWS ElasticSearch, а некоторые документы индексируются 2 или 3 раза, а не только один раз.logstash индексирование файлов несколько раз?

Файлы являются статическими (ничто не обновляет их или не трогает их), и они очень маленькие (каждый примерно 1,1 КБ).

Процесс занимает очень много времени для запуска на t2.micro (~ 1day).

Конфигурационный я использую:

input { 

s3 { 
bucket => "$BUCKETNAME" 
codec => "json" 
region => "$REGION" 
access_key_id => '$KEY' 
secret_access_key => '$KEY' 
type => 's3' 
} 
} 

filter { 
    if [type] == "s3" { 
    metrics { 
     meter => "events" 
     add_tag => "metric" 
    } 
    } 
} 

output { 

if "metric" in [tags] { 
    stdout { codec => line { 
     format => "rate: %{[events][rate_1m]}" 
      } 
     } 
} else { 
    amazon_es { 
     hosts => [$HOST] 
     region => "$REGION" 
     index => "$INDEXNAME" 
     aws_access_key_id => '$KEY' 
     aws_secret_access_key => '$KEY' 
     document_type => "$TYPE" 
    } 

    stdout { codec => rubydebug } 
} 
} 

Я запускаю это уже дважды с одной и той же задачи (в индексах различных ES) и файлы, которые индексируются> 1х разные каждый раз.

Любые предложения с благодарностью получены!

+0

Это будет проблема с входом 's3', за что я не уверен –

+0

Ум, спасибо? Любые предложения по тестированию? Я просто собираюсь обмануть сейчас (так как мне не нужно повторно индексировать эти данные на регулярной основе). В следующий раз я думаю, что я собираюсь скопировать файлы в новый ведро S3, а затем использовать управляемую событиями Lambda для обработки в ES. – esperluette

ответ

1

Вход s3 очень хрупкий. Он регистрирует время последнего обработанного файла, поэтому любые файлы, которые используют одну и ту же метку времени, не будут обрабатываться, а несколько экземпляров журнала не могут читать из одного и того же ведра. Как вы видели, также очень сложно определить, какие файлы обрабатывать (значительная часть вины относится к амазонке здесь).

s3 работает только для меня, когда я использую один logstash для чтения файлов, а затем удаляю (или резервное копирование в другое хранилище/папку) файлы, чтобы сохранить исходное ведро как можно более пустым, а затем установив sincedb_path в/DEV/нуль.

+0

Большое вам спасибо, это очень полезно! – esperluette

Смежные вопросы