with elasticsearch logstash

with - logstash elasticsearch url



¿Puedo establecer el mapeo elasticsearch predeterminado de logstash a través de elasticsearch-template.json (3)

No parece que ese archivo JSON esté en la carpeta correcta. Aquí está la documentación sobre cómo usar las plantillas: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-templates.html Acerca de la carpeta:

Config

Las plantillas de índice también pueden colocarse dentro de la ubicación de configuración (path.conf) en el directorio de plantillas (nota, asegúrese de colocarlas en todos los nodos maestros elegibles). Por ejemplo, un archivo llamado template_1.json se puede colocar en config / templates y se agregará si coincide con un índice. Aquí hay una muestra del archivo mencionado:

Uso logstash + elasticsearch para recopilar syslog y quiero establecer ttl para el registro de antigüedad

Encuentro un archivo llamado elasticsearch-template.json en el logstash, la ruta es logstash / logstash-1.4.2 / lib / logstash / outputs / elasticsearch / elasticsearch-template.json

Agrego ttl info en el archivo de esta manera:

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

a continuación, reinicie logstash, elimine todo el índice elasticsearch. Compruebo el mapeo del nuevo índice en la búsqueda elástica, pero no funcionó de esta manera.

¿Cómo puedo configurar la plantilla de índice?


necesitas cambiar tu configuración de logstash

si ha seguido las configuraciones predeterminadas, logstash ya ha creado una plantilla dentro de logstash llamada logstash , logstash seguirá utilizando esa plantilla almacenada en elasticsearch a menos que le indique explícitamente que no.

modifique ese archivo de plantilla que encontró pero además de eso, en su configuración de logstash, establezca lo siguiente:

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


Creé un nuevo archivo template.json y lo definí en el bloque de salida elasticsearch del archivo de configuración logstash.yml:

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 para Elastic I definido en el bloque de entrada del archivo de configuración logstash.yml:

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

Está mi archivo 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": {} } }