Elastic Stack recipes
1.54K subscribers
26 photos
224 links
Платные консультации, администрирование, поддержка, обучение ElasticSearch/OpenSearch в России, Казахстане и других странах — @galssoftware

Consulting and implementation for ElasticSearch/OpenSearch. Ask @galssoftware

Web: gals.software
Download Telegram
Иногда появляются задачи обогащения данных Elasticsearch из реляционных баз данных. В этой статье разбираемся как настроить такую синхронизацию при помощи Logstash.

Новая статья уже в блоге у нас на сайте.
Производительность Elasticsearch может сильно снизиться, если нода вдруг начнет скидывать данные из памяти в своп на диск. Elasticsearch можно настроить, чтобы этого избежать. В этой статье подробности настройки.
👍3
Пару-тройку месяцев назад Elastic ограничил доступ к своему репозиторию из России. Вопрос, конечно, решается при помощи VPN, но есть вариант и попроще - зеркало Яндекс Cloud.

https://mirror.yandex.ru/mirrors/elastic/
👍6👎4
Небольшая статья про использование на стороне filebeat процессора set. Если нужно присвоить значение полю по некоему условию, то set — лучший выбор. В статье в качестве примера рассказывается про интеграцию с Wazuh, но использовать такой метод можно где угодно.
В этой статье собраны примеры запросов в Elasticsearch. Статья поможет выбрать оптимальный способ формирования запроса.

42 Elasticsearch Query Examples – Hands-on Tutorial
Напоминаем, что уже 20-22 июля мы проведем семинар-инструктаж по Elastic Stack 8. Места ещё есть. Семинар проводится в удалённом формате через Zoom.

Это хорошая возможность быстро освоить популярное решение и начать его эффективно использовать как можно скорее. Если вы знакомы с Elastic не первый месяц или даже год, то велика вероятность, что также узнаете много нового.

Стоимость участия 50 000 рублей. Оплатить можно картой на сайте или по счёту.

Подробности и программа инструктажа на этой странице.

Вопросы можно задать @galssoftware или в форме обратной связи по ссылке выше.
👍2
Будьте осторожны с grok-фильтрами в Logstash. Гораздо экономичнее по ресурсам использовать json-фильтр.

В этой статье на Медиуме несколько лайфхаков использования Logstash.
Arkime — opensource NTA решение, которое парсит и складывает трафик в Elasticsearch и pcap’ы. Это позволяет анализировать сетевой трафик из веб-интерфейса, что очень и очень удобно. Для безопасников предусмотрена интеграция c Suricata – Arkime умеет сопоставлять алерт с сессией и отображать это в интерфейсе.

В этой статье описание работы с Arkime.

@elasticstack_ru
В этой статье про методику борьбы со всплесками нагрузки на кластер Elasticsearch, которую реализовал у себя сервис по продаже авто TrueCar.

В TrueCar мы стараемся максимально упростить процесс покупки автомобиля. Важно иметь актуальный список транспортных средств, чтобы покупатели автомобилей могли видеть, что доступно, а что нет, поэтому мы постоянно обновляем данные в хранилище. Массовое обновление списка мы запускаем несколько раз в день: обновляем цену, рейтинг и доступность авто для покупки.

Обновление происходит либо путем прямых обновлений через веб-приложение, либо с помощью задания Hadoop, которое обрабатывает данные на предмет изменений в цене и доступности. Наш кластер Elasticsearch работал очень хорошо для поиска, но мы заметили, что нагрузка на инфру резко возросла во время выполнения задания по обновлению каталога в момент, когда сайт находился на пике ежедневного трафика. Чтобы поддерживать кластер в пригодном для использования состоянии, нам пришлось снизить скорость индексации кластера. Без снижения скорости индексации загрузка CPU узлов кластера увеличилась с 15 до 80 процентов, а показатели GC увеличились в пять раз, что привело к ошибкам 503 Service Unreachable для любых служб TrueCar, которые отправляли запросы к кластеру Elasticsearch.
Пробовали мигрировать индексы из кластера версии 1.7 в 7.х? В этом видео рассказывают о своём опыте такой миграции.

Исходные данные:
⚡️ 105 нод в облаке AWS
⚡️ 127 индексов
⚡️ 700 шардов
⚡️ 3,7 млрд документов
⚡️ 26 Тб данных

Проблемы с текущей инсталляцией:
⚡️ много ненужных полей в документах
⚡️ большой объем шарда (150Гб)
⚡️ большой объём индекса (500 млн документов)
⚡️ невозможно изолировать данные без даунтайма
⚡️ сложно выполнить реиндексацию (reindex api не было в версии 1.7), когда ⚡️ нужно увеличить количество primary shards
⚡️ дата ноды часто отключались из-за проблем с JVM

Ссылка на видео.
Перенос данных из MongoDB в Elasticsearch

Статья на Медиуме
Synonyms in Elasticsearch

Синоним — слово, которое означает точно или почти то же самое, что и другое слово.

В этом коротком посте демонстрация реализации синонимов в Elasticsearch, например, сопоставление людей по имени «Anne» при поиске «Ann».
Как упростить жизнь разработчиков, которые пишут приложение, работающее с Elasticsearch?

Elasticsearch умеет создавать поисковые запросы в виде поисковых шаблонов (search templates), которые потом можно вызывать с параметрами. Использую готовые шаблоны, разработчики могут не добавлять в код излишние сущности..

Статья с описанием механизма

Страница документации
Storing 50 million events per second in Elasticsearch: How we did it

Несколько цифр: наш кластер хранит более 150 ТБ данных, 15 триллионов событий в 60 миллиардах документов, разбросанных по 3 000 индексов и 15 000 шардов на 80 узлах. Каждый документ хранит 250 событий в отдельном поле.

Каждый день во время пиковой нагрузки наш кластер Elasticsearch записывает более 200 000 документов в секунду и имеет скорость поиска более 20 000 запросов в секунду.

Наши индексы основаны на ежедневной основе, и у нас есть один индекс для каждого клиента, чтобы обеспечить логическое разделение данных.

И как оптимизировать производительность такого кластера?
👍1
Top 10 Elasticsearch Metrics to Monitor - статья о том, за какими показателями Elasticsearch стоит следить, чтобы кластер был здоров и могуч.

👉 Cluster Health: Shards and Node Availability
👉 Search Query Performance Metrics: Request Rate and Latency
👉 Indexing Performance Metrics: Refresh and Merge Times
👉 Node Health: Memory, Disk, and CPU Metrics
👉 Caching: Field Data, Node Query and Shard Query Cache
👉 JVM Health Metrics: Heap, GC, and Pool Size

Статья.
👍1
Известно, что заменой Logstash может быть ingest-нода Elasticsearch. Действительно, зачем поддерживать несколько разных решений в стэке, если можно ограничиться одним. Если нет специфичных задач по интеграции или обработке данных именно так мы и советуем поступать нашим клиентам. В статье по ссылке ниже сравнение производительности одного и того же процессора grok в Logstash и в ingest-ноде Elasticsearch. Угадайте, кто показывает лучшую эффективность работы.

Elasticsearch Ingest Node vs Logstash Performance
How I Discovered Thousands of Open Databases on AWS

Последнее китайское предупреждение о том, что безопасность кластера Elastic — первоочередная задача, которую нужно решить. Даже если кластер находится внутри периметра компании. В этой статье рассказ о том, как 1 человек за 1 день обнаружил тысячи открытых данных в Elasticsearch. Читать дальше.

На прикрепленном скриншоте данные чьего-то банковского счёта.
How to properly handle Elasticsearch ingest pipelines failures

В Logstash есть специальный функционал для обработки сбоев и защита от удаления документов — Dead Letter Queue. В этой статье вы узнаете как использовать Elasticsearch и его ingest pipeline для:

⚡️ обработки сбоев
⚡️ хранения неудачно отправленных документов
⚡️ повторной отправки документов
Too many fields! 3 ways to prevent mapping explosion in Elasticsearch

В этой статье методика по эффективной работе с полями документов, чтобы их типы и количество не влияли на утилизацию аппаратных ресурсов и, в конечном итоге, на производительность кластера Elasticsearch.
Если хотите разобраться с возможностями APM в Elasticsearch, в этой статье разбор установки тестового приложения и настройки его работы с Elastic Stack.