Раздел 40 · Elasticsearch и ELK

Что такое Elasticsearch и стек ELK

junior~10 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

В прошлом уроке мы увидели, что LIKE не годится для поиска: не понимает форм слов, опечаток, порядка и важности. Для поиска придумали специальные системы. Самая распространённая из них Elasticsearch. Познакомимся с ней и с её окружением, а в конце урока выполним первый настоящий поисковый запрос.

Библиотека и сервер

В основе Elasticsearch лежит Lucene, библиотека на Java для полнотекстового поиска. Lucene умеет главное: разбирать текст на слова, строить индекс и быстро искать по нему с оценкой релевантности. Но это именно библиотека: её надо встроить в свою программу, и работает она на одной машине.

Elasticsearch, появившийся в 2010 году, превратил Lucene в сервер:

  • общается по HTTP: запросы и ответы это JSON, работать можно из любого языка и даже из curl;
  • хранит не тексты, а документы JSON: блюдо с названием, ценой, тегами и рестораном;
  • раскладывает данные по нескольким машинам и держит копии на случай сбоя;
  • сам строит индексы, сам их сливает и обслуживает.

Поэтому про Elasticsearch говорят: распределённый поисковый и аналитический движок поверх Lucene.

Где он работает

  • Поиск по сайту и приложению. Каталог товаров, блюд, объявлений, статей. Именно это нужно «Гонцу».
  • Логи. Миллионы строк логов со всех серверов в одном месте с поиском по любому слову. Об этом вторая половина раздела.
  • Метрики и мониторинг. Время ответа сервисов, ошибки, нагрузка.
  • Безопасность. Поиск подозрительных событий в журналах доступа.
  • Аналитика поверх поиска. «Сколько найденных блюд в каждой кухне», «средняя цена найденного» считаются тем же запросом.

урок из курса

Урок из курса «Elasticsearch и ELK». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.