2014-12-17 12 views
5

używam logstash + elasticsearch zebrać syslog i chcesz ustawić TTL dla dziennika starzeniamogę ustawić logstash domyślnego odwzorowania elasticsearch przez elasticsearch-template.json

znaleźć plik o nazwie elasticsearch-template.json w logstash, ścieżka jest logstash/logstash-1.4.2/lib/logstash/wyjścia/elasticsearch/elasticsearch-template.json

dodam ttl informacje w pliku tak:

{ 
    "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" } 
      } 
     } 
     } 
    } 
    } 
} 

następnie ponownie logstash usuń cały indeks elastycznego wyszukiwania. Sprawdzam mapowanie nowego indeksu w elastycznym wyszukiwaniu, ale nie działało w ten sposób.

Jak mogę skonfigurować szablon indeksu?

+0

Dla nowych użytkowników, nie jest plugin o nazwie „Kopf” z dużą ilością funkcji. Jednym z nich jest łatwe edytowanie szablonu i zapisanie go w edytorze. Rzeczy takie jak zmiana liczby shardów/replik opartych na klastrze itp. – Maziyar

Odpowiedz

2

Nie wygląda na to, że plik JSON znajduje się we właściwym folderze. Oto dokumentacja na temat korzystania z szablonów: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-templates.html O folderu:

Config

Indeks szablony mogą być również umieszczone w miejscu config (path.conf) w katalogu szablonów (uwaga, należy z pewnością umieścić je we wszystkich głównych węzłach kwalifikowanych). Na przykład plik o nazwie template_1.json można umieścić pod config/templates i zostanie dodany, jeśli pasuje do indeksu. Oto próbka wspomnianego pliku:

+0

dziękuję za odpowiedź. Znajduję config (path.conf) w "/elasticsearch-1.4.0/config/elasticsearch.yml", ale jak ustawić szablon indeksu w ten sposób? Przepraszam, nie widzę twojego przykładowego pliku. – user4369887

+0

Po prostu utwórz folder szablonów w folderze konfiguracji i skopiuj plik JSON. Następnie ponownie uruchom ES i powinieneś mieć mapowanie. –

8

musisz zmienić konfigurację logstash.

jeśli zastosowałeś się do ustawień domyślnych, logstash utworzył już szablon wewnątrz elastycznego wyszukiwania o nazwie logstash, logstash będzie nadal używać tego szablonu przechowywanego w elastycznym wyskalowaniu, chyba że powiesz mu, aby nie jawnie.

zmodyfikować ten plik szablonu znalazłeś ale oprócz, że w konfiguracji logstash ustaw następujące:

output { 
    elasticsearch { 
    ... 
    template_overwrite => true 
    ... 
    } 
} 
+1

Jak uzyskać dostęp do pliku szablonu logstash? gdzie to się znajduje? – learner

+1

Powinien on znajdować się w twoim katalogu logstash, jeśli go nie znajdziesz, możesz zawsze stworzyć własne i poprosić logstash, aby użył spersonalizowanego pliku szablonu w pliku konfiguracyjnym logstash. Dodaj 'template =>"/path/to/elasticsearch_template.json "\ n template_name =>" the_name_you_want "' w konfiguracji logstash Mam przykłady tutaj: https://github.com/xialingxiao/andokaelk/blob/master/roles/logstash/templates/logstash_connector.conf do konfiguracji logstash i https://github.com/xialingxiao/andokaelk/blob/master/roles/logstash/templates/elasticsearch_template.json dla elasticsearch_template . – lingxiao

+0

Zauważ, że pole 'template' w' elasticsearch_template.json' musi być kompatybilne z elastycznym wyszukiwaniem ' nazwa indeksu logstash pisze do skonfigurowanego w 'logstash.conf'. – lingxiao

0

Utworzyłem nowy plik template.json i zdefiniowane ścieżkę do niego w wyjściowym bloku elasticsearch od logstash.yml pliku konfiguracyjnego:

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 sprężyste I określonych w bloku wejściowego pliku logstash.yml konfiguracji:

input { 

file { 
path => "/your-path-to-directory/*.log" 
type => "name-of-type" 
} 
} 

Jest mój plik template.json

{ 
"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": {} 
} 
} 
Powiązane problemy