2013-05-10 10 views
7

Podsumowanie: Chcę dołączyć pole TTL z dziennikami w logstash i wysłać je do wyszukiwania elastycznego.Dołączanie pola TTL do każdego dziennika wysyłanego za pośrednictwem logstash do Elasticsearch

Przeszedłem już przez dokumentację, ale nie mogłem jej zbyt dużo, ponieważ nie jest to bardzo jasne.

To jest mój plik konfiguracyjny w logstash.

input { 
    stdin { 
    type => "stdin-type" 
    } 
} 

output { 
    stdout { debug => true debug_format => "json"} 
    elasticsearch {} 
} 

Teraz załóżmy, że dla każdego dziennika, który jest odczytywany, chcę dołączyć TTL z nim za powiedzmy 5 dni.

Wiem, jak aktywować opcję TTL w wyszukiwaniu sprężystym. Ale jakie zmiany będę musiał wprowadzić w plikach konfiguracji elastycznego wyszukiwania, nie jest dla mnie jasne. Dokumentacja prosi o wyszukanie folderu mapowań, ale nie ma go w folderze pobierania z elastycznym wyszukiwaniem.

Szukasz pomocy ekspertów.

Odpowiedz

12

Jeśli chcesz umieścić mapowanie w systemie plików, spójrz na numer here. Musisz przejść do folderu config i utworzyć tutaj folder o nazwie mappings, a drugi z nazwą indeksu w obrębie mappings. Ponieważ program logstash domyślnie tworzy indeks na dzień, lepiej użyć nazwy folderu, aby mapowanie zostało zastosowane do wszystkich indeksów. Plik utworzony w tym folderze musi mieć nazwę typu, do którego ma zostać zastosowane mapowanie. Nie pamiętam dokładnie, jakiego typu używa logstash, dlatego użyłbym definicji odwzorowania _default_. Wystarczy zadzwonić plik i umieścić w nim następującą treść:

{ 
    "_default_" : { 
     "_ttl" : { "enabled" : true } 
    } 
} 

Jak widać nazwa typu muszą pojawić się zarówno w nazwie pliku i jego zawartości.

W przeciwnym razie można uniknąć umieszczania elementów w systemie plików. Można utworzyć index template zawierające niestandardowe mapowanie, jak następuje:

{ 
    "template" : "logstash-*", 
    "mappings" : { 
     "_default_" : { 
      "_ttl" : { "enabled" : true } 
     } 
    } 
} 

Mapowanie zostaną zastosowane do wszystkich indeksów, których nazwa pasuje do wzorca szablonu. W przypadku użycia definicji odwzorowania _default_ mapowanie zostanie zastosowane jako domyślne dla wszystkich typów, które zostaną utworzone.

+0

@javanna ... thanx za pomoc ... Ale chcę wiedzieć, gdzie mam umieścić te wszystkie pliki wymienione przez Ciebie. Powiedzmy, że idę pierwszą metodą, muszę utworzyć 2 foldery, mapowania i _default w konfiguracji, prawda? W takim razie, gdzie mogę określić rzecz TTL? – user2359303

+0

Czy będę musiał utworzyć plik json? Jeśli tak, to co będzie zawierać i jaka będzie jego nazwa? Dokument mówi: [mapowanie-nazwa]. Czy mógłbyś wyjaśnić to wszystko? Jestem naprawdę zdezorientowany – user2359303

+0

pls odpowiedź na moje wątpliwości – user2359303

Powiązane problemy