// Engineering Log
Централизованное логирование: Часть 4 — Graylog
Опубликовано 22.09.2026
// Быстрый маршрут
Эта статья относится к теме Деплой и стабильная работа.
Graylog — платформа для централизованного управления логами. В отличие от ELK, который собирают из отдельных компонентов, Graylog изначально сделан как единая система: приём, обработка, маршрутизация, хранение, поиск, оповещения и разграничение доступа настраиваются в одном веб-интерфейсе.
Лицензия и редакции
Бесплатная редакция называется Graylog Open. С версии 4.0 (2021 год) все её выпуски распространяются под Server Side Public License (SSPL). Эта лицензия основана на GPL, но дополнительно требует раскрывать исходный код сервиса, если программа предоставляется как облачная услуга. OSI её открытой не признаёт, поэтому точнее называть Graylog Open продуктом с доступным исходным кодом.
Для компании, которая разворачивает Graylog для своих логов, SSPL ограничений не создаёт. Помимо Open есть платные редакции с дополнительными функциями — архивами, расширенным аудитом, функциями для расследования инцидентов безопасности.
Компоненты
- Graylog Server — приём сообщений, обработка, веб-интерфейс, пользователи, потоки, оповещения.
- MongoDB — хранит конфигурацию, пользователей и метаданные, но не сами логи. Graylog 7.0 требует MongoDB не ниже 7.0.
- Хранилище логов — поисковый движок, в котором индексируются сообщения:
- Graylog Data Node — предпочтительный вариант: управляемый самим Graylog узел на основе OpenSearch. Graylog берёт на себя его настройку, сертификаты и обновления;
- самостоятельно управляемый OpenSearch — если кластер уже есть или нужен полный контроль. Поддержка OpenSearch 1.x в Graylog 7.0 объявлена устаревшей и будет удалена в 8.0;
- Elasticsearch — начиная с Graylog 7.0 использование Elasticsearch объявлено устаревшим и будет полностью удалено в Graylog 8.0. Для новых установок его выбирать не стоит.
- Graylog Sidecar — лёгкий агент управления: из интерфейса Graylog он настраивает и запускает сборщики логов на серверах, например Filebeat или NXLog.
Как проходят сообщения
- Входы (Inputs). Graylog принимает данные по syslog (UDP/TCP), в формате GELF, через Beats, по HTTP и другим протоколам.
- Извлечение и конвейеры. Экстракторы и конвейеры обработки (Pipelines) разбирают сообщения на поля, отбрасывают лишнее, добавляют метаданные.
- Потоки (Streams). Правила распределяют сообщения по потокам: логи веб-серверов, журналы безопасности, логи конкретного приложения. Для каждого потока задаются свой набор индексов, срок хранения и права доступа.
- Хранение. Сообщения индексируются в Data Node или OpenSearch.
- Поиск, дашборды, оповещения. Всё — в одном интерфейсе.
GELF
Graylog Extended Log Format — формат сообщений в JSON, который снимает ограничения классического syslog: нет жёсткого лимита на длину, поля передаются явно. Библиотеки GELF есть для большинства языков, а Docker умеет отправлять вывод контейнеров в GELF штатным драйвером логирования. Минимальное сообщение:
{
"version": "1.1",
"host": "web-01",
"short_message": "payment failed",
"level": 3,
"_service": "payments",
"_order_id": 1842
}Дополнительные поля начинаются с подчёркивания; level — уровень важности в нумерации syslog (3 — ошибка).
Конвейеры обработки
Правило конвейера пишется на простом языке и срабатывает для сообщений, подходящих под условие. Пример: разобрать строку ключ=значение и удалить исходное поле:
rule "parse key-value"
when
has_field("message") && contains(to_string($message.message), "=")
then
set_fields(key_value(to_string($message.message)));
endПравила объединяются в этапы, этапы — в конвейер, а конвейер подключается к нужным потокам.
Установка
Официальный способ для знакомства и небольших установок — Docker Compose. В репозитории Graylog2/docker-compose есть готовые файлы для редакции Open: три сервиса — MongoDB, Data Node и Graylog. Перед запуском задаются секрет для шифрования паролей и хеш пароля администратора; для хранения данных нужны отдельные тома для каждого из трёх сервисов. Для рабочей среды документация описывает установку из пакетов и кластер из нескольких узлов.
Совместимость версий Graylog, MongoDB и OpenSearch описана в матрице совместимости в документации. Сверяйтесь с ней перед каждым обновлением: мажорные версии Graylog регулярно повышают минимальные требования.
Достоинства
- Единая система. Приём, обработка, хранение, поиск и оповещения настраиваются в одном месте.
- Потоки и права. Удобно разделить логи по командам и задать разный доступ.
- Конвейеры обработки без отдельного Logstash.
- Data Node снимает с администратора большую часть работы по обслуживанию OpenSearch.
- Sidecar — централизованное управление сборщиками на серверах.
Недостатки
- Несколько компонентов. MongoDB, Data Node и Graylog Server нужно обновлять согласованно.
- Визуализация проще, чем в Kibana или OpenSearch Dashboards.
- Лицензия SSPL для бесплатной редакции и часть функций только в платных.
- Ресурсы. Под хранилищем по-прежнему поисковый движок с полнотекстовым индексом.
Типичные ошибки
- Новая установка на Elasticsearch. В Graylog 8.0 поддержку уберут, и придётся мигрировать.
- Устаревшая MongoDB. После обновления до Graylog 7.0 сервер не пройдёт проверку при запуске, если MongoDB ниже 7.0.
- Syslog по UDP для важных логов. UDP не гарантирует доставку; для журналов безопасности лучше TCP с TLS или GELF по TCP.
- Всё в одном потоке. Без разделения на потоки нельзя задать разные сроки хранения и права доступа.
Когда выбирать Graylog
Graylog подходит небольшим и средним командам, которым нужна готовая система логов с разграничением доступа, правилами обработки и оповещениями, но не хочется собирать и настраивать стек из отдельных компонентов. Если важнее всего экономия ресурсов и логи нужны рядом с метриками Prometheus, стоит посмотреть на Loki.
// Похожая задача
Если у вас похожая ситуация
Эта статья относится к одной из рабочих тем. Можно продолжить чтение по теме, перейти на главную, чтобы понять, чем я занимаюсь, или сразу открыть услуги.
Тема статьи
Деплой и стабильная работа
Docker, CI/CD, релизы, мониторинг, observability и разбор инцидентов.
Часто с этим приходят
- Настроить деплой без ручных действий и хаоса
- Подключить мониторинг, алерты и базовую observability
- Разобрать инциденты и стабилизировать production
// Следующий шаг
Если вам нужна не только статья, а помощь по этой теме, удобнее сразу перейти в услугу. Главная и подборка материалов остаются рядом.
Открыть услуги// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related