-
Elasticsearch template 사용 방법Dev/Elasticsearch 2019. 7. 1. 13:36
Elasticsearch 인덱스 생성시 mapping을 하게 되는데, 이때 template 을 이용하게 되면 굉장히 편리하게 mapping을 할 수 가 있다.
템플릿 생성하기
httpd-access-log 라는 이름의 템플릿을 생성한다.
이때 인덱스 이름이 httpd-access-* 의 패턴이라면, 해당 템플릿이 적용된다.$ curl -XPUT localhost:9200/_template/httpd-access-log -d ' { "index_patterns": [ "httpd-access-*" ], "mappings": { "log": { // type name "properties": { "ip": { "type": "text" }, "host": { "type": "keyword" }, "uri": { "type": "text" }, "datetime": { "type": "date" }, "@timestamp": { "type": "date" } } } } }
setting 설정하기
인덱스 생성시 setting 설정을 한다.
$ curl -XPUT localhost:9200/_template/httpd-access-log -d ' { "index_patterns": [ "httpd-access-*" ], "settings": { // setting "number_of_shards": 1 }, "mappings": { "log": { // type name "properties": { "ip": { "type": "text" }, "host": { "type": "keyword" }, "uri": { "type": "text" }, "datetime": { "type": "date" }, "@timestamp": { "type": "date" } } } } }
여러개의 패턴 설정하기
여러개의 패턴을 배열로 지정한다.
$ curl -XPUT localhost:9200/_template/httpd-access-log -d ' { "index_patterns": [ "httpd-access1-*", "httpd-access2-*", "httpd-access3-*", "httpd-access4-*", "httpd-access5-*", "httpd-access6-*", ], "settings": { // setting "number_of_shards": 1 }, "mappings": { "log": { // type name "properties": { "ip": { "type": "text" }, "host": { "type": "keyword" }, "uri": { "type": "text" }, "datetime": { "type": "date" }, "@timestamp": { "type": "date" } } } } }