Elasticsearch: краткое описание и подборка материалов

Elasticsearch (ES) — это распределенный поисковой и аналитический движок, построенный на основе Apache Lucene. Предоставляет открытый и гибкий интерфейс для хранения, поиска и анализа данных в реальном времени. Условно говоря, ES — это документоориентированная NoSQL БД и гугл одновременно.
Elasticsearch является частью стека ELK (Elasticsearch, Logstash и Kibana).
- Logstash собирает, обрабатывает и передает данные из различных источников в хранилище, такое как ES. Поддерживает различные источники данных и форматы логов.
- Elasticsearch индексирует и анализирует собранные данные и производит поиск в них.
- Kibana предназначена для работы с логами, поддерживает гибкий и сложный поиск по логам. Так же в Kibana можно строить дашборды, отчёты и визуализировать данные.
- Beats — легковесные агенты для отправки логов в ES. Они более примитивны, чем Logstash, т.к. только собирают и отправляют данные, без преобразований.
Архитектура Elasticsearch
Elasticsearch распределенная:
- Данные хранятся в виде JSON-документов.
- Эти документы индексируются для быстрого поиска.
- Каждый индекс разбивается на шарды для распределения их по узлам кластера, что позволяет балансировать нагрузку. Кластер состоит из одного или нескольких узлов, объединенных в единое целое для совместной работы.
Как работает ES?
- Данные отправляются в ES в виде документов JSON с помощью API или инструментов приема, например, Logstash.
- ES автоматически сохраняет исходный документ и добавляет ссылку на него в индекс кластера, включая возможность поиска.
- Следом можно найти и извлечь документ, используя API Elasticsearch.
- Также для визуализации данных и создания интерактивных панелей управления можно задействовать Kibana.
Применение ES
- Мониторинг и логирование. Хранение, поиск и анализ логов для отслеживания работы приложений, системы, серверов.
- Аналитика и BI. Поиск, фильтрация, агрегация, анализ больших объемов данных в реальном времени для выявления паттернов, создания отчетов. Например, компании в финансовой сфере используют ES для анализа данных о транзакциях, инвестициях и рынке.
- Поисковые системы. Используется для быстрого и точного поиска. Например, платформы соцсетей используют ES для быстрого поиска, фильтрации и сортировки контента. Или интернет-магазины для поиска товаров. Также у ES есть возможность поиска и анализа данных на основе геолокации.
Преимущества ES
- Быстрый поиск и агрегация данных. Обеспечивает мгновенный доступ к данным и эффективный поиск за счет распределенной архитектуры, индексации и возможности добавлять новые узлы в кластер.
- Отказоустойчивость. Достигается благодаря распределению данных и запросов между различными узлами кластера и шардами. В случае проблем ES автоматически восстанавливает реплики и данные.
- Масштабируемость и гибкость. ES можно масштабировать горизонтально без потери производительности. Кластеры ES могут расширяться и сжиматься в зависимости от потребностей с помощью добавления новых узлов.
- Экосистема ELK. Входит в стек ELK, предоставляя комплексное решение для обработки, хранения и визуализации данных.
Недостатки ES
- Сложность конфигурации. Настройка и управление ES может быть сложным для новичков, т.к. содержит множество параметров и настроек.
- Управление ресурсами. Управление памятью, диском и другими ресурсами может быть сложным из-за использования обратных индексов. Неоптимальная конфигурация может привести к недостаточной производительности.
Подборка поле зных материалов по Elasticsearch
📄 Статьи
- Простыми словами про ES от Яндекса
- Про Elasticsearch от Amazon
- Подробнее про архитектуру ES
- Основы работы с ES
- О ELK простыми словами
- Про стек ELK, преимущества и недостатки
- Подробнее про стек ELK
- Наш пост про Kibana и Graphana
- Как уст ановить и настроить ELK
- Цикл статей по ELK
✏️ Кейсы
- Как Тинькофф делали речевую аналитику с ElasticSearch
- Как работает поиск в Озоне
- Распределенное логирование и трассировка для микросервисов
- Как в ЦИАН укрощали терабайты логов
- Проблемы с Кросс-кластерным поиском в Elasticsearch
- 7 петабайт логов в Elastic
Альтернативы Elasticsearch
- Manticore — альтернатива Эластику на C++ с 21-летней историей
- Clickhouse в качестве замены ELK, Big Query и TimescaleDB
⏯ Видео и вебинары
- Цикл коротких видео про ES
- Что такое ELK за 10 минут
- Вебинар по Kibana
- [Elasticsearch] Все об индексах и шардах (index & shard)