2014-09-24 17 views
15

Temel bir Logstash -> Elasticsearch kurulumum var ve logstash filtresi işini bitirdikten sonra 'message' alanı gerekli değil - bu raw mesaj alanını elasticsearch'e saklamak sadece imo'ya gereksiz verileri ekliyor.Mesaj alanını Logstash'dan silebilir miyim?

Bu alanı güvenle silebilir miyim ve ES için herhangi bir sorun çıkarır mı? tavsiyeleri ya da okumalar herkese açıktır, teşekkürler.

cevap

24

Hayır, ES için herhangi bir sorun oluşturmayacaktır. Gereksiz veya kullanılmamışsa message alanını silebilirsiniz.

Filtrelerin sonuna bu filter ekleyebilirsiniz.

mutate 
{ 
    remove_field => [ "message" ] 
} 
+1

ProTip:

Örneğin, giriş ve codec'i (TCP üzerinden JSON Hatları) aşağıdaki kombinasyonu message alan yaratmaz Sadece filtre bir hatayla karşılaşmazsa alanı kaldırın. Bu, ek bir mutasyon filtresi kullanmaktan daha güvenli ve daha kolay olabilir. –

4

Ayrıca bunu json filtresinde de yapabilirsiniz.

filter { 
    json { 
    source => "message" 
    remove_field => ["message"] 
    } 
} 
0

Ben'in Lim tarafından cevaba yorum olarak aşağıdaki ilave olurdu, ama ben bir yorum bir kod bloğu nasıl ekleneceğini bilmiyorum ya da bu mümkün olsa olmadığı ...

message alanı oluşturmayan bir girdi ve kodek bileşimini birlikte kullanabiliyorsanız, bunu kaldırmanıza gerek yoktur. Ayrıca remove_field seçeneğe izin (örneğin grok gibi) Çoğu filtreleri ve yapacaktır:

input { 
    tcp { 
    port => 5044 
    codec => json_lines 
    } 
} 
output { 
    elasticsearch { 
    hosts => ["localhost"] 
    document_type => "mytype" 
    index => "myindex" 
    } 
} 
İlgili konular