Принудительная запись новых индексов на SSD диск в ELK

Появилась задача оптимизировать кластер elk, так как ноды с hdd не справляются с записями логов и актуальные записи приходят значительно позже. Это не устраивает нас и надо сделать красиво. Благо у нас есть ssd нода, которая меньше по объему дисков но быстрее по записи.

Было принято решение сделать запись только на ssd ноду, а индексы старше суток переводить на hhd ноду как архивные.

Для начала надо задать атрибут для awareness allocation:

PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.awareness.attributes": "rack"
}
}

Надо передать нашим нодам id rack.
У меня в докере это выглядело просто:
-Enode.attr.rack=r1 и -Enode.attr.rack=r2 для HDD
-Enode.attr.rack=r3 для SSD

Теперь настраиваем template так что бы новые индексы падали только на ssd:
PUT _template/template_1
{
"order": 0,
"template": "*",
"settings": {
"index": {
"routing": {
"allocation": {
"include": {
"rack": "r3"
},
"exclude": {
"rack": "r1,r2"
}
}
}
}
},
"mappings": {},
"aliases": {}
}

Это мы для всех новых индексов разрешаем запись на r3, а r1 и r2 — запрещаем.

И надо сделать что бы старые индексы переносились на HDD.
Для этого надо установить elk-curator и добавить в него 2 действия. Они заменят параметр allocation в индексах так, что начиная от 1 дня назад, наши индексы переедут на HDD.
1:
action: allocation
description: "Remove old shards"
options:
key: rack
value: r1,r2
allocation_type: include
filters:
- filtertype: pattern
kind: prefix
value: logstash-*
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 1

2:
action: allocation
description: "Remove old shards"
options:
key: rack
value: r3
allocation_type: exclude
filters:
- filtertype: pattern
kind: prefix
value: logstash-*
- filtertype: age
source: name
direction: older
timestring: '%Y.%m.%d'
unit: days
unit_count: 1

И поставить куратора на крон, что бы он выполнял действие каждый день.

Итого у нас получится, что новые индексы всегда падают на SSD и запись проходит своевременно. А по прошествию суток индексы старше дня переезжают на HDD и хранятся там только для чтения.

Вам также может понравиться

About the Author: Maxim

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.