Мы уже знаем, зачем нужны централизованные логи и какие вопросы они закрывают. Теперь познакомимся с набором программ, который чаще всего для этого ставят. Его называют ELK, а в последние годы Elastic Stack.
Три буквы
Название сложилось из первых букв трёх программ компании Elastic:
- Elasticsearch хранит события и ищет по ним. С ним мы провели всю первую часть раздела.
- Logstash принимает поток событий из разных источников, разбирает строки на поля, обогащает их и отправляет дальше. Его конфиг мы уже писали, начиная с урока про pipeline.
- Kibana показывает: поиск в Discover, графики, дашборды, алерты.
Потом к ним добавились Beats, маленькие агенты на серверах, которые читают файлы логов и метрики. Получилось четыре компонента, и аббревиатура перестала отражать набор, поэтому Elastic стала называть его Elastic Stack. Но слово ELK так и прижилось.
Кто за что отвечает
| Шаг | Компонент | Что делает |
|---|---|---|
| сбор | Filebeat, Metricbeat, Elastic Agent | читает файлы и метрики на сервере, отправляет дальше |
| обработка | Logstash или ingest pipeline Elasticsearch | разбирает строки, правит время, добавляет поля, отбрасывает шум |
| хранение | Elasticsearch | индексирует и хранит события, ищет и считает агрегации |
| анализ | Kibana | поиск, графики, дашборды, алерты |
Не каждый проект ставит все четыре. Если логи уже в JSON, Filebeat отправляет их прямо в Elasticsearch, и Logstash не нужен. Простую обработку может сделать сам Elasticsearch при записи: ingest pipeline умеет grok, date и geoip. Logstash нужен, когда источников много и обработка сложная: условия, обогащение из справочников, несколько выходов.
Есть ещё вариант с буквой F: EFK, где вместо Logstash стоит Fluentd или Fluent Bit. Так часто делают в Kubernetes, об этом отдельный урок.
урок из курса
Урок из курса «Elasticsearch и ELK». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.