December 26, 2025

Создание системы мониторинга Logstash с использованием Prometheus и Grafana (пошаговое руководство)

Это перевод оригинальной статьи Building a Logstash Monitoring Stack with Prometheus and Grafana (Step-by-Step Guide).

Перевод сделан специально для телеграм-канала Мониторим ИТ. Подписывайтесь! Там еще больше полезных постов о мониторинге.

Когда вы работаете со сложными пайплайнами, управляемыми Logstash, наблюдаемость — это не опция, а необходимость. Без мониторинга небольшое изменение конфигурации или перегруженный input могут привести к тому, что ваши логи и метрики начнут тихо накапливаться, что нанесёт ущерб нижестоящим системам. Эта статья поможет создать стек мониторинга Logstash с использованием Prometheus, Grafana и prometheus-logstash-exporter, чтобы вы всегда знали, как работают ваши конвейеры Logstash.

Постановка проблемы

Logstash — мощный инструмент для сбора, преобразования и передачи данных. Однако по мере роста объемов данных могут возникать такие проблемы, как:

  • Внезапные падения пропускной способности
  • Увеличение задержки пайплайна
  • Утечки памяти в JVM или чрезмерное накопление мусора (GC)
  • Высокая загрузка CPU приводит к потере сообщений.

Эти проблемы часто остаются незамеченными до тех пор, пока ваш пайплайн данных не перестанет работать должным образом. Цель этого стека мониторинга — обеспечить видимость показателей производительности Logstash в режиме реального времени, чтобы вы могли быстро обнаруживать, диагностировать и устранять проблемы.

Почему необходим мониторинг?

Мониторинг имеет решающее значение для поддержания работоспособности инфраструктуры данных. Вот почему:

  • Оптимизация производительности: выявление медленных пайплайнов или фильтров, влияющих на пропускную способность.
  • Планирование ресурсов: анализ тенденций использования памяти и процессора для эффективного распределения ресурсов.
  • Устранение неполадок: выявление узких мест до того, как они повлияют на критически важную для бизнеса аналитику.
  • Надежность: обеспечение бесперебойной работы и предотвращение потери данных в периоды высокой нагрузки.

Инструменты, используемые в этом стеке

Данная конфигурация использует несколько инструментов с открытым исходным кодом, которые бесперебойно взаимодействуют друг с другом:

Logstash

  • Что это: конвейер обработки данных, который получает данные из множества источников, преобразует их и отправляет в такие целевые системы, как Elasticsearch или Kafka.
  • Зачем это нужно: это ключевой компонент стека ELK, но его внутренние метрики (такие как скорость обработки событий, размер очереди, показатели JVM) должны быть открыты для внешнего мониторинга.

Prometheus

  • Что это: база данных временных рядов, предназначенная для мониторинга и оповещения.
  • Почему используется: Prometheus собирает метрики от экспортеров и эффективно их хранит. Он позволяет выполнять гибкие запросы с использованием PromQL и поддерживает оповещения.

Prometheus-logstash-exporter

  • Что это: небольшой сервис, который получает метрики из API мониторинга Logstash и предоставляет их в формате Prometheus.
  • Почему используется: Prometheus не может напрямую опрашивать Logstash, поэтому этот экспортер устраняет эту проблему.

Grafana

  • Что это: платформа для визуализации данных, предназначенная для создания дашбордов и аналитических отчетов.
  • Почему используется: Grafana подключается к Prometheus и предоставляет многофункциональные дашборды для визуализации метрик, тенденций и аномалий Logstash.

Docker и Docker Compose

  • Что это: инструменты для контейнеризации и оркестрации приложений.
  • Почему их используют: они упрощают развёртывание — одной командой запускаются все компоненты (Prometheus, экспортер, Grafana) в изолированных контейнерах.

Настройка проекта

Клонируйте репозиторий:

git clone https://github.com/yash22091/logstash-monitoring-stack.git
cd logstash-monitoring-stack/ls-monitor

Если у вас zip-архив:

unzip logstash-monitor.zip && cd logstash-monitor/ls-monitor

Конфигурация окружения

Скопируйте пример файла окружения:

cp .env.example .env

Настройте переменные среды:

LS_HOST=172.17.0.1  # IP of host running Logstash (avoid 127.0.0.1)
LS_PORT=9600
EXPORTER_PORT=9304
PROM_PORT=9090
GRAFANA_PORT=3001
GF_ADMIN_USER=admin
GF_ADMIN_PASSWORD=admin

Обзор Docker Compose

Файл docker-compose.yml определяет три контейнера:

  1. prometheus-logstash-exporter — подключается к Logstash и предоставляет доступ к метрикам.
  2. Prometheus — собирает данные каждые 15 секунд.
  3. Grafana — предоставляет дашборды для визуализации данных.

Запустите стек:

docker compose --env-file .env up -d

Получите доступ к пользовательским интерфейсам:

LoginScreen

Логин:admin / admin
Затем система попросит изменить пароль по умолчанию

Импорт дашборда Grafana

Для визуализации данных:

  1. Перейдите в Grafana → Dashboards → Import
  2. Введите ID дашборда: 17918
  3. Нажмите Load → выберите Prometheus как источник данных → Import
Импорт
Выберите источник данных

если это не происходит автоматически

Затем установите:

  • job = logstash
  • instance = logstash-exporter:9304

Вы увидите дашборды для:

  • Частота событий (input, filtered, output)
  • Использование JVM Heap
  • Статистика сбора мусора (GC)
  • Использование CPU и задержка пайплайнов
Общий
Использование JVM
Краткий обзор событий
Трубопровод
Фильтры конвейера

Как это работает

Logstash (9600) → prometheus-logstash-exporter (9304) → Prometheus (9090) → Grafana (3001)
  • Экспортер использует API мониторинга Logstash для сбора данных.
  • Prometheus получает метрики от экспортера.
  • Grafana визуализирует эти метрики в режиме реального времени.

Устранение неполадок

Экспортер не работает? Проверьте, что LS_HOST — не 127.0.0.1.

Grafana не отображает данные?

  • Откройте Prometheus → Status → Targets → убедитесь, что все они активны.
  • Выполните:
curl http://localhost:9304/metrics | head

Конфликты портов? Отредактируйте .env и перезапустите стек.

Варианты использования и сценарии

Этот набор идеально подходит для:

  • Мониторинга производительности и пропускной способности пайплайнов Logstash в боевой среде.
  • Dev-сред — быстрый тест изменений конфигурации и визуализация эффекта.
  • Реагирование на инциденты — устранить неполадки медленной загрузки данных или заблокированных пайплайнов.
  • Планирование ресурсов — отслеживайте тренды, прежде чем масштабировать окружение.

Он легковесный, полностью контейнеризированный и может быть расширен другими экспортерами (например, Elasticsearch, Node Exporter или Alertmanager).

Заключение

Этот набор инструментов мониторинга превращает мониторинг Logstash из догадок в получение ценной информации. Сочетание Prometheus, Grafana и Docker дает вам следующие преимущества:

  • Полную видимость состояния пайплайнов.
  • Раннее выявление проблем с производительностью
  • Простая настройка и воспроизводимость.

Независимо от того, используете ли вы кластеры ELK или автономные экземпляры Logstash, эта настройка гарантирует, что ваши конвейеры обработки данных будут работать быстро, стабильно и надежно.

Подписывайтесь на телеграм-канал Мониторим ИТ, там еще больше полезной информации о мониторинге!