2014-12-17 20 views
5

Ben syslog'u toplamak için logstash + elasticsearch kullanıpi elasticsearch-template.json

ben logstash içinde elasticsearch-template.json adında bir dosyayı bulmak yaşlanma günlüğü için ttl ayarlamak istediğiniz aracılığıyla varsayılan elasticsearch eşleme logstash ayarlayabilirsiniz

{ 
    "template" : "logstash-*", 
    "settings" : { 
    "index.refresh_interval" : "5s" 
    }, 
    "mappings" : { 
    "_default_" : { 
     "_all" : {"enabled" : true}, 
     "dynamic_templates" : [ { 
     "string_fields" : { 
      "match" : "*", 
      "match_mapping_type" : "string", 
      "mapping" : { 
      "type" : "string", "index" : "analyzed", "omit_norms" : true, 
       "fields" : { 
       "raw" : {"type": "string", "index" : "not_analyzed", "ignore_above" : 256} 
       } 
      } 
     } 
     } ], 
     "_ttl": { 
     "enabled": true, 
     "default": "1d" 
     }, 
     "properties" : { 
     "@version": { "type": "string", "index": "not_analyzed" }, 
     "geoip" : { 
      "type" : "object", 
      "dynamic": true, 
      "path": "full", 
      "properties" : { 
       "location" : { "type" : "geo_point" } 
      } 
     } 
     } 
    } 
    } 
} 

sonra logstash yeniden başlatın silmek: yol logstash/logstash-1.4.2/logstash/çıkış elasticsearch/elasticsearch-template.json

böyle dosyada ttl bilgi eklemek lib// olup tüm elasticsearch dizini. Yeni dizinin haritalandırmasını elasticsearch'te kontrol ediyorum, ancak bu şekilde çalışmadı.

Dizin şablonunu nasıl yapılandırabilirim?

+0

yoktur, pek çok özellik içeren "kopf" adlı bir eklenti vardır. Bunlardan biri, şablonu kolayca düzenlemek ve bir editöre kaydetmek. Kümelerinize göre parçaların/çoğaltmaların sayısını değiştirmek gibi şeyler. – Maziyar

cevap

2

JSON dosyası doğru klasörde gibi görünmüyor. klasörün Hakkında http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-templates.html :

Config'de

Endeksi şablonları da şablonlar dizininde (not altında yapılandırma konumu (path.conf) içinde yerleştirilebilir, yapmak Burada şablonları nasıl kullanılacağına dair belgeler olduğunu bunları tüm ana uygun düğümlere yerleştirdiğinizden emin olun). Örneğin, template_1.json adında bir dosya config/templates altına yerleştirilebilir ve bir indeksle eşleşirse eklenecektir. Burada belirtilen dosyanın bir örneğidir:

+0

Cevabınız için teşekkür ederiz. Ben "endeks şablon bu şekilde kullanmak nasıl ayarlanacağını /elasticsearch-1.4.0/config/elasticsearch.yml",but config (path.conf) bulabilirsiniz? Üzgünüm, örnek dosyasını göremiyorum. – user4369887

+0

Sadece yapılandırma klasörünün içindeki şablon klasör oluşturmak ve JSON üzerinde dosya kopyalayın. Ardından ES'yi yeniden başlatınız ve haritayı almalısınız. –

8

Logstash yapılandırmanızı değiştirmeniz gerekir.

Varsayılan ayarları izlediyseniz, logstash logstash adındaki elasticsearch içinde bir şablon oluşturdu, logstash açıkça belirtmediğiniz sürece bu şablonu elasticsearch'te depolamaya devam edecektir.

sen bulduğu şablon dosyasını değiştirmek ancak buna ek olarak, sizin logstash konfigürasyonda, aşağıdakileri ayarlayın:

Ben elasticsearch çıktı bloğuna kendisine yeni template.json dosyası oluşturulur ve yolu tanımladığınız
output { 
    elasticsearch { 
    ... 
    template_overwrite => true 
    ... 
    } 
} 
+1

Logstash şablon dosyasına nasıl erişebilirim? nerede bulunuyor? – learner

+1

Bu onu bulmak için başarısız olursa her zaman kendi oluşturmak ve logstash yapılandırma dosyasında özelleştirilmiş şablon dosyasını kullanmak için logstash sorabilirsiniz, senin logstash dizinde olmalıdır. "Template =>"/yol/to/elasticsearch_template öğesini ekleyin.logstash konfigürasyonunuzda json "\ n template_name =>" the_name_you_want "' Burada örneklerim var: https://github.com/xialingxiao/andokaelk/blob/master/roles/logstash/templates/logstash_connector.conf logstash yapılandırması ve elasticsearch_template için https://github.com/xialingxiao/andokaelk/blob/master/roles/logstash/templates/elasticsearch_template.json – lingxiao

+0

"elasticsearch_template.json" içindeki "template" alanının elasticsearch ile uyumlu olması gerektiğini unutmayın. dizin adı logstash 'logstash.conf '' da yapılandırılmak üzere yazıyor. – lingxiao

0

logstash.yml yapılandırma dosyasının:

input { 

file { 
path => "/your-path-to-directory/*.log" 
type => "name-of-type" 
} 
} 
: Elastik için

stdout { codec => json_lines } 

elasticsearch { 

"hosts" => ["ip:port"] 
"index" => "name-of-index-%{+dd.MM.YYYY}" 
template => "/{path-to-logstash-folder}/templates/your-template.json" 
template_overwrite => true 
manage_template => false 
} 

document_type I logstash.yml yapılandırma dosyasının girdi bloğunun içine tanımlanmış

yeni ziyaretçiler için benim template.json dosyası

{ 
"name-of-index": { 
"order": 0, 
"version": 50001, 
"template": "name-of-index-*", 
"settings": { 
    "index": { 
    "refresh_interval": "5s" 
    } 
}, 
"mappings": { 
    "_default_": { 
    "dynamic_templates": [ 
     { 
     "message_field": { 
      "path_match": "message", 
      "mapping": { 
      "norms": false, 
      "type": "text" 
      }, 
      "match_mapping_type": "string" 
     } 
     }, 
     { 
     "string_fields": { 
      "mapping": { 
      "norms": false, 
      "type": "text", 
      "fields": { 
       "keyword": { 
       "type": "keyword" 
       } 
      } 
      }, 
      "match_mapping_type": "string", 
      "match": "*" 
     } 
     } 
    ], 
    "_all": { 
     "norms": false, 
     "enabled": true 
    }, 
    "properties": { 
     "@timestamp": { 
     "include_in_all": false, 
     "type": "date" 
     }, 
     "geoip": { 
     "dynamic": true, 
     "properties": { 
      "ip": { 
      "type": "ip" 
      }, 
      "latitude": { 
      "type": "half_float" 
      }, 
      "location": { 
      "type": "geo_point" 
      }, 
      "longitude": { 
      "type": "half_float" 
      } 
     } 
     }, 
     "@version": { 
     "include_in_all": false, 
     "type": "keyword" 
     } 
    } 
    } 
}, 
"aliases": {} 
} 
}