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.
Эти два понятия переплетаются в среде 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
Он закрывает основные технологические стеки (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.
Ссылка
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.
Если производительность кластера оставляет желать лучшего, проверьте корректность настроек количества и объёма шардов. В нашей новой статье мы разобрались что там как и почему. Велкоме.
Пара объявлений:
Приглашаем на наш ближайший семинар-инструктаж по 8 версии Elastic, который состоится уже 20-22 июля. Подробности на этой странице.
Мы готовим новый семинар-инструктаж по OpenSearch. По вашему запросу можем выслать программу. Примерный период запуска курса август-сентябрь этого года. Вопросы к @galssoftware.
gals.software
Блог Gals Software | Как выбрать правильное количество шардов индекса Elasticsearch
Увеличиваем производительность Elasticsearch путём выбора корректного количества нардов в индексе
👍1
Вдогонку к вчерашнему посту.
Есть несколько способов уменьшить количество шардов:
1. Создавать time-series индексы с покрытие большего периода времени.
2. Удалять пустые или ненужные индексы.
3. Выполнять forcemerge индекса, если в него перестала вестись запись.
4. Выполнить shrink для индекса, уменьшив количество шард.
5. Комбинировать небольшие индексы в один при помощи reindex.
Есть несколько способов уменьшить количество шардов:
1. Создавать time-series индексы с покрытие большего периода времени.
2. Удалять пустые или ненужные индексы.
3. Выполнять forcemerge индекса, если в него перестала вестись запись.
4. Выполнить shrink для индекса, уменьшив количество шард.
5. Комбинировать небольшие индексы в один при помощи reindex.
Important Syntax Updates of Elasticsearch 8 in Python
Если работаете с Elastic через python-библиотеку Elasticsearch, в 8 версии появились некоторые обновления.
Если работаете с Elastic через python-библиотеку Elasticsearch, в 8 версии появились некоторые обновления.
Elasticsearch сводит иерархию объектов к парам ключ/значение, потому что в Lucene нет понятия внутренних объектов, как в JSON. Это означает, что нельзя запросить каждый объект независимо от других объектов в массиве. Рассмотрим приведенный ниже пример:
{ "users: [{ "name": "Гена", "age": 26}, { "name": "Вася", "age": 32 }] }
Этот массив объектов хранится так:
{ "users.name": ["Гена", "Вася"], "users.age": [32, 26] }
Массив содержит два пользовательских объекта со свойствами name и age. Когда этот массив хранится в Lucene, все значения свойства в объектах добавляются в виде массива в одно поле — в данном случае поля с именами users.name и users.age. При этом связи между свойствами теряются.
В новой статье в нашем блоге разобрались какие бывают типы данных в Elasticsearch.
{ "users: [{ "name": "Гена", "age": 26}, { "name": "Вася", "age": 32 }] }
Этот массив объектов хранится так:
{ "users.name": ["Гена", "Вася"], "users.age": [32, 26] }
Массив содержит два пользовательских объекта со свойствами name и age. Когда этот массив хранится в Lucene, все значения свойства в объектах добавляются в виде массива в одно поле — в данном случае поля с именами users.name и users.age. При этом связи между свойствами теряются.
В новой статье в нашем блоге разобрались какие бывают типы данных в Elasticsearch.
gals.software
Типы данных Elasticsearch
В этой статье разберемся какие типы данных бывают в Elasticsearch и чем они отличаются
Производительность Elasticsearch может сильно снизиться, если нода вдруг начнет скидывать данные из памяти в своп на диск. Elasticsearch можно настроить, чтобы этого избежать. В этой статье подробности настройки.
👍3
Пару-тройку месяцев назад Elastic ограничил доступ к своему репозиторию из России. Вопрос, конечно, решается при помощи VPN, но есть вариант и попроще - зеркало Яндекс Cloud.
https://mirror.yandex.ru/mirrors/elastic/
https://mirror.yandex.ru/mirrors/elastic/
👍6👎4
Небольшая статья про использование на стороне filebeat процессора set. Если нужно присвоить значение полю по некоему условию, то set — лучший выбор. В статье в качестве примера рассказывается про интеграцию с Wazuh, но использовать такой метод можно где угодно.
В этой статье собраны примеры запросов в Elasticsearch. Статья поможет выбрать оптимальный способ формирования запроса.
42 Elasticsearch Query Examples – Hands-on Tutorial
42 Elasticsearch Query Examples – Hands-on Tutorial
Напоминаем, что уже 20-22 июля мы проведем семинар-инструктаж по Elastic Stack 8. Места ещё есть. Семинар проводится в удалённом формате через Zoom.
Это хорошая возможность быстро освоить популярное решение и начать его эффективно использовать как можно скорее. Если вы знакомы с Elastic не первый месяц или даже год, то велика вероятность, что также узнаете много нового.
Стоимость участия 50 000 рублей. Оплатить можно картой на сайте или по счёту.
Подробности и программа инструктажа на этой странице.
Вопросы можно задать @galssoftware или в форме обратной связи по ссылке выше.
Это хорошая возможность быстро освоить популярное решение и начать его эффективно использовать как можно скорее. Если вы знакомы с Elastic не первый месяц или даже год, то велика вероятность, что также узнаете много нового.
Стоимость участия 50 000 рублей. Оплатить можно картой на сайте или по счёту.
Подробности и программа инструктажа на этой странице.
Вопросы можно задать @galssoftware или в форме обратной связи по ссылке выше.
gals.software
Gals Software | Elastic Stack | Обучение
Обучение работе с ElasticSearch 8, Logstash 8, Kibana 8 (Elastic Stack 8)
👍2
Будьте осторожны с grok-фильтрами в Logstash. Гораздо экономичнее по ресурсам использовать json-фильтр.
В этой статье на Медиуме несколько лайфхаков использования Logstash.
В этой статье на Медиуме несколько лайфхаков использования Logstash.
Medium
Best practices for Logstash
Most of us, working with elastic stack has come to the point where we have to make optimizations in matter of getting better indexing…
Arkime — opensource NTA решение, которое парсит и складывает трафик в Elasticsearch и pcap’ы. Это позволяет анализировать сетевой трафик из веб-интерфейса, что очень и очень удобно. Для безопасников предусмотрена интеграция c Suricata – Arkime умеет сопоставлять алерт с сессией и отображать это в интерфейсе.
В этой статье описание работы с Arkime.
@elasticstack_ru
В этой статье описание работы с Arkime.
@elasticstack_ru
В этой статье про методику борьбы со всплесками нагрузки на кластер Elasticsearch, которую реализовал у себя сервис по продаже авто TrueCar.
В TrueCar мы стараемся максимально упростить процесс покупки автомобиля. Важно иметь актуальный список транспортных средств, чтобы покупатели автомобилей могли видеть, что доступно, а что нет, поэтому мы постоянно обновляем данные в хранилище. Массовое обновление списка мы запускаем несколько раз в день: обновляем цену, рейтинг и доступность авто для покупки.
Обновление происходит либо путем прямых обновлений через веб-приложение, либо с помощью задания Hadoop, которое обрабатывает данные на предмет изменений в цене и доступности. Наш кластер Elasticsearch работал очень хорошо для поиска, но мы заметили, что нагрузка на инфру резко возросла во время выполнения задания по обновлению каталога в момент, когда сайт находился на пике ежедневного трафика. Чтобы поддерживать кластер в пригодном для использования состоянии, нам пришлось снизить скорость индексации кластера. Без снижения скорости индексации загрузка CPU узлов кластера увеличилась с 15 до 80 процентов, а показатели GC увеличились в пять раз, что привело к ошибкам 503 Service Unreachable для любых служб TrueCar, которые отправляли запросы к кластеру Elasticsearch.
В 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
Ссылка на видео.
Исходные данные:
⚡️ 105 нод в облаке AWS
⚡️ 127 индексов
⚡️ 700 шардов
⚡️ 3,7 млрд документов
⚡️ 26 Тб данных
Проблемы с текущей инсталляцией:
⚡️ много ненужных полей в документах
⚡️ большой объем шарда (150Гб)
⚡️ большой объём индекса (500 млн документов)
⚡️ невозможно изолировать данные без даунтайма
⚡️ сложно выполнить реиндексацию (reindex api не было в версии 1.7), когда ⚡️ нужно увеличить количество primary shards
⚡️ дата ноды часто отключались из-за проблем с JVM
Ссылка на видео.