digital-garden/source/доклады/Нельзя просто так взять и отправить все логи в Elastic.md

26 lines
2.2 KiB
Markdown
Raw Normal View History

2024-06-13 21:01:37 +03:00
Презентация: ![](Joker_2022_Elastic.pdf)
### Описание доклада
Почему писать все логи в Elastic — не такая простая задача, как кажется. Поговорим про особенности использования ElasticSearch для логов, подводные камни Java-клиента (и не только) и инженерную (бес)культурность.
### Мои заметки
У них три кластера Эластика, причем они не связаны. Kibana может осуществлять крос-кластерный поиск.
![](screen%2019.png)
У спикера в системе 250_000 событий отправляется в эти 3 контура.
![](screen%2020.png)
Делить по дате не удачная идея, так как индексы будут разных размеров. Эластик с 6.7 версии умеет сам дробить индексы.
![](screen%2021.png)
Есть два клиента для доступа к эластику. High Livel Rest Client это обертка над Rest Client. Hight Level работает в 2+ раз медлнее.
Отправлять данные нужно пачками, иначе технические данные каждого HTTP запроса могут быть больше, чем сама лог запись. Есть какой-то Bulk API для решения этой проблемы. Можно сделать так, чтобы в одной пачке были данные для разных индексов.
Файловер перестает работать, так как Bulk запросы всегда возвращают HttpCode 200. Конкретные ошибки будут в теле запроса.
Если мы сами добавляем для документа айдишник, то эластик будет проверять есть ли такой айди уже в индексе. И UUID v4 снижает производительность поиска. Эластик любит UUID v1 и nanotime.