2015-11-20 13 views
12

, że stosuje się następujący fragment kodu w celu utworzenia indeks logstash.confJak utworzyć wiele indeksów w pliku logstash.conf?

output { 
    stdout {codec => rubydebug} 
    elasticsearch { 
     host => "localhost" 
     protocol => "http" 
     index => "trial_indexer" 
    } 
} 

celu utworzenia innego indeksu Generalnie zastąpiona nazwą indeksu z siebie w wyżej kodu. Czy istnieje jakiś sposób tworzenia wielu indeksów w tym samym pliku? Jestem nowy w ELK.

Odpowiedz

34

Możesz użyć wzorca w nazwie indeksu na podstawie wartości jednego z twoich pól. Tutaj używamy wartość pola type aby wymienić indeksu:

output { 
    stdout {codec => rubydebug} 
    elasticsearch { 
     host => "localhost" 
     protocol => "http" 
     index => "%{type}_indexer" 
    } 
} 

Można także użyć kilku elasticsearch wyjścia albo do tego samego hosta ES lub do różnych ES Zastępów:

output { 
    stdout {codec => rubydebug} 
    elasticsearch { 
     host => "localhost" 
     protocol => "http" 
     index => "trial_indexer" 
    } 
    elasticsearch { 
     host => "localhost" 
     protocol => "http" 
     index => "movie_indexer" 
    } 
} 

Or może chcesz przekierować dokumenty do różnych indeksów opartych na jakiejś zmiennej:

output { 
    stdout {codec => rubydebug} 
    if [type] == "trial" { 
     elasticsearch { 
      host => "localhost" 
      protocol => "http" 
      index => "trial_indexer" 
     } 
    } else { 
     elasticsearch { 
      host => "localhost" 
      protocol => "http" 
      index => "movie_indexer" 
     } 
    } 
} 

UPDATE

Składnia zmieniła trochę w Logstash 2 i 5:

output { 
    stdout {codec => rubydebug} 
    if [type] == "trial" { 
     elasticsearch { 
      hosts => "localhost:9200" 
      index => "trial_indexer" 
     } 
    } else { 
     elasticsearch { 
      hosts => "localhost:9200" 
      index => "movie_indexer" 
     } 
    } 
} 
+0

jesteś odnoszące się do „typ” zadeklarowanej w sekcji „Input”? jeśli tak, to czy istnieje sposób użycia jako indeksu jednego z pól w faktycznym zdarzeniu redis, które rejestruję? – Kepedizer

+1

@Kepedizer 'type' można zdefiniować w dowolnym miejscu, zarówno w sekcji wejściowej, jak i sekcji filtru. Jedynym problemem [w twoim drugim pytaniu] (http://stackoverflow.com/questions/41531883/logstash-wont-pass-index-from-redis) jest literówka, musisz użyć '% {index}' zamiast '$ {index}' – Val

+0

@Val Miałem straszny czas próbując znaleźć odpowiedź na to w dokumentach Logstasha, więc dziękuję bardzo za oczyszczenie. Ocena innego dla StackOverflow. –

Powiązane problemy