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

Consulting and implementation for ElasticSearch/OpenSearch. Ask @galssoftware

Web: gals.software
Download Telegram
Рубрика «Удивительное рядом». И никто не знает чей. И как там появляются новые записи.

Эксперты обнаружили сервер Elasticsearch с содержимым СМС-сообщений от сервисов и банков, включая «Тинькофф» и «Озон»

В сети Интернет с 1 апреля 2022 года находится в открытом доступе сервер Elasticsearch, в индексе которого содержатся СМС-сообщения от различных российских и зарубежных сервисов и банков. Читать дальше.
Synonym Search in Elasticsearch and Alternatives — поиск синонимов в Elasticsearch. Ссылка.
В принципе, даже понятно почему так часто бывают утечки из кластеров Elasticsearch. Обратите внимание, при разворачивании Elasticsearch в docker-контейнерах, если ничего не сделать, docker залезет в ваш iptables и откроет доступ к порту 9200 из внешней среды. Это не очень страшно если ваш сервер во внутреннем контуре, но если во внешнем, рано или поздно ваш открытый кластер будет обнаружен. Синк эбаут ит.

Вот парочка статей на тему:

Be careful with Docker ports!

Securing Your ElasticSearch Instances
🔥3
И немного о настройке интеграции Elasticsearch с SQL Server

Let’s Data Transfer from Sql Server to Elasticsearch using Logstash

With this article, I will try to explain how we can get data from Sql Server to Elasticsearch using Logstash on windows.

https://link.medium.com/FObfyOyo3ob
У ELK’и иголки колки: минимизируем потерю сообщений в Logstash, следим за состоянием Elasticsearch

Интересная статья на Хабре о persistent queue — возможности Logstash скидывать данные на диск при невожности их передать.
How to Migrate from Elasticsearch to OpenSearch

Если по каким-то причинам вы решили отказаться от бесплатной версии Elastic, либо лишились возможности продлить подписку, то, скорее всего, уже рассматриваете OpenSearch. Основное очевидное преимущество — возможность штатной интеграции c AD. Остальные преимущества, на наш взгляд, весьма спорны.

Но если рассматриваете — вот неплохой гайд.
👍2
На одном проекте был написан свой поиск на базе SQL с фильтрами и прочей лабудой. И пока было мало записей в БД все работало отлично, но в один прекрасный день мы сделали выгрузку в БД на 100000 уникальных записей, и что-то резко пошло не так...

Подключение и Настройка ElasticSearch + MySql + Yii2
Если используете кросс-кластерный поиск между кластерами в различных локациях, ниже ссылка на интересное решение проблемы, при которой нода удаленного кластера переставала отвечать (проблемы с сетью, повышенная нагрузка etc.) и поиск крэшился. А всего-то нужно было добавить...

ElasticSearch: отказоустойчивый сервер отказал
Интересная статья о реализации поиска в Lamoda.

Нам нужно уметь искать товары в сфере Fashion & Lifestyle. Например, запрос «американка»: для Lamoda это может быть водолазка без рукавов или мужская куртка-бомбер. Но если задать этот запрос в Google, он выдаст другие результаты, при этом тоже релевантные. Например, «американкой» может называться резьбовое соединение или игра в бильярд.
Как мы логшипим в Elasticsearch и что думаем о Filebeat

Команда Мегафон пишет про неочевидные опции конфигурации Filebeat, которые позволят обеспечить надежную доставку логов. Спасибо им за это!
Index Pattern vs. Index Template

Эти два понятия переплетаются в среде Elasticsearch, переводятся на русский одинаково и часто создают путаницу. Давайте обратимся к документации и попробуем разобраться чем они отличаются.

Index Template позволяет в частности определять структуру документов в индексе (но не только структуру и в общем случае Index Template состоит из component templates), которая будет автоматически применяться к документам при создании новых индексов. Включает в себя как настройки самого индекса, так и условия для определения будет ли данный Index Template применяться к новому индексу.

Index и Index Template — это конструкты Elasticsearch.

Index Pattern идентифицирует один или несколько индексов Elasticsearch, которые вы видите в Kibana. Kibana ищет имена индексов, соответствующие указанному шаблону. Звездочка (*) в Index Pattern соответствует нулю или более символов. Например, шаблон myindex-* соответствует всем индексам, имена которых начинаются с myindex-, такие как myindex-1 и myindex-2. Таким образом, Index Pattern — это настройка, которая сообщает Kibana, как находить данные в индексах в Elasticsearch.

Index Pattern — это конструкт Kibana.


К слову, начиная с версии Kibana 8.x в интерфейсе больше не найти Index Pattern, теперь это Data View.
👍1
Из России ушли многие известные вендоры APM-решений. Вендоры ушли, а вопросы мониторинга производительности приложений остались. Да, есть решения с открытым исходным кодом, да какую-то часть задачи они закроют, но это не будет комплексным решением. Что же делать российской компании, оставшейся без APM-решения? Достаточно просто посмотреть по сторонам. Два слова: Elastic APM.

Он закрывает основные технологические стеки (Java, .NET, Go Python и другие) и поддерживает мониторинг с точки зрения конечного пользователя (он же EUM или End User Monitoring, а по-простому — JavaScript, встраиваемый в фронтэнд). Есть возможность параллельного сбора логов микросервисов, сбора метрик производительности, встроенной интеграции с OpenTelemetry, Jaeger и другими ништяками.

Обращаем внимание заинтересовавшихся, что этот функционал бесплатен. За исключением одной штуки — Service Map. Этот блок входит платиновую подписку и будет работать только за деньги (ну, или в рамках триалки).

Дополнительная полезная ссылка — How to Integrate Elastic APM Java Agent with Spring Boot
How to manage indexing with dynamic time-series data in Elasticsearch?

Про автоматизацию удаления документов.
Elastic Search Geo Point and Geo Shape Queries Explained

This story focuses on Geo-Spatial data manipulation similar to Postgis extension for PostgreSQL, Mongo DB, and Redis. In this article, we’ll look at Elasticsearch’s Geo queries, how you can set up mappings and indices, and provide you with some examples of how you can query your data.

Ссылка
👍1
Как выбрать правильное количество и объём шардов индекса Elasticsearch

Если производительность кластера оставляет желать лучшего, проверьте корректность настроек количества и объёма шардов. В нашей новой статье мы разобрались что там как и почему. Велкоме.

Пара объявлений:

Приглашаем на наш ближайший семинар-инструктаж по 8 версии Elastic, который состоится уже 20-22 июля. Подробности на этой странице.

Мы готовим новый семинар-инструктаж по OpenSearch. По вашему запросу можем выслать программу. Примерный период запуска курса август-сентябрь этого года. Вопросы к @galssoftware.
👍1
Вдогонку к вчерашнему посту.

Есть несколько способов уменьшить количество шардов:

1. Создавать time-series индексы с покрытие большего периода времени.

2. Удалять пустые или ненужные индексы.

3. Выполнять forcemerge индекса, если в него перестала вестись запись.

4. Выполнить shrink для индекса, уменьшив количество шард.

5. Комбинировать небольшие индексы в один при помощи reindex.
Important Syntax Updates of Elasticsearch 8 in Python

Если работаете с Elastic через python-библиотеку Elasticsearch, в 8 версии появились некоторые обновления.