2013-05-10 9 views
7

Riepilogo: Desidero allegare un campo TTL con i log in logstash e inviarli alla ricerca Elastic.Collegamento di un campo TTL con ogni registro inviato tramite logstash a Elasticsearch

Ho già esaminato la documentazione, ma non sono riuscito a ottenere molto, poiché non è molto chiaro.

Questo è il mio file di configurazione in logstash.

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

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

Ora supponiamo che per ogni registro che viene letto, voglio allegare un TTL con esso per esempio, 5 giorni.

So come attivare l'opzione TTL nella ricerca elastica. Ma le modifiche che dovrò apportare nei file di configurazione di ricerca elastica non mi sono chiare. La documentazione chiede di cercare la cartella dei mapping, ma non c'è nessuno nella cartella di download elastico di ricerca.

Alla ricerca di un aiuto esperto.

risposta

12

Dai uno sguardo allo here se vuoi mettere la mappatura sul file system. Devi andare alla cartella config e creare qui una cartella denominata mappings e un'altra con il nome dell'indice all'interno di mappings. Poiché logstash crea per impostazione predefinita un indice al giorno, è preferibile utilizzare il nome _default per la cartella, in modo che la mappatura venga applicata a tutti gli indici. Il file che si crea sotto quella cartella deve avere il nome del tipo a cui si desidera applicare la mappatura. Non ricordo esattamente quale tipo di logstash usi, quindi userei la definizione di mappatura _default_. Basta chiamare il file e mettere il seguente contenuto in esso:

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

Come si può vedere il nome del tipo deve apparire sia nel nome del file e nel suo contenuto.

Altrimenti, è possibile evitare di inserire elementi nel file system. Si potrebbe creare un index template contenente la mappatura personalizzata, come la seguente:

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

La mappatura sarà poi applicata a tutti gli indici il cui nome corrisponde al modello modello. Se si utilizza la definizione di mappatura _default_, la mappatura verrà applicata come predefinita a tutti i tipi che verranno creati.

+0

@javanna ... grazie per il vostro aiuto ... Ma voglio sapere dove metto tutti questi file menzionati da voi. Dico che vado con il primo metodo, devo creare 2 cartelle, mappature e _default sotto configurazione, giusto? Allora dove specificare la cosa TTL? – user2359303

+0

Devo creare un file JSON? Se sì, allora cosa conterrà e quale sarà il suo nome? Il documento dice [nome-mappatura]. Potresti per favore chiarire tutto questo? Sono davvero confuso – user2359303

+0

pls rispondo ai miei dubbi – user2359303

Problemi correlati