[Elasticsearch] Index 생성 시 Name Pattern
Elastic/Elasticsearch 2020. 4. 3. 11:22Elastic Stack 을 사용하다 보면 Index 를 자동으로 생성 시켜 주는 설정들을 사용 하게 됩니다.
beats 에서는 output elasticsearch 사용 시 설정을 하게 되고,
logstash 에서도 output elasticsearch 사용 시 설정을 하게 됩니다.
보통 이 설정을 아래와 같이 하는데요.
Logstash)
index
- Value type is string
- Default value is "logstash-%{+YYYY.MM.dd}"
Beats)
index
The index name to write events to when you’re using daily indices.
The default is "beat-%{[agent.version]}-%{+yyyy.MM.dd}"
(for example, "beat-7.6.2-2020-04-02").
If you change this setting, you also need to configure the setup.
template.name and setup.template.pattern options (see Elasticsearch index template).
output.elasticsearch:
hosts: ["https://localhost:9200"]
index: "beats-%{[agent.version]}-%{+yyyy.MM.dd}"
- filebeat, metricbeat ...
보시면 아시겠지만, Daily rolling 으로 많이 사용하게 됩니다.
무조건 하루 단위로 생성이 되기 때문에 규모가 너무 작거나 너무 크거나 할 경우 효율이 떨어 질 수 밖에 없습니다.
그래서 Index Lifecycle Management 라는 기능을 Elasticsearch 에서 제공하고 있으니 활용 하시기 바랍니다.
여기서 문제)
그럼 output.elasticsearch.index 설정과 ilm 설정이 동시에 사용 중일 때 어떤 설정에 맞춰서 index 가 생성이 될까요?
정답)
ilm 설정이 우선 합니다.
Elastic 의 공식 메시지는 이렇습니다.
https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html
You can configure index lifecycle management (ILM) policies to automatically manage indices according to your performance, resiliency, and retention requirements.