Гид по технологиям

Установка Graylog 3.1 на Debian 10

• 7 min read • Инфраструктура • Обновлено 20 Nov 2025
Graylog 3.1 на Debian 10 — пошаговая установка
Graylog 3.1 на Debian 10 — пошаговая установка

Схема логирования: Graylog, Elasticsearch, MongoDB и источники логов

Graylog — бесплатный и открытый инструмент управления логами, построенный на Java, Elasticsearch и MongoDB. Он собирает, индексирует и анализирует серверные логи как централизованно, так и из распределённых источников. Graylog предлагает мощный язык запросов, алерты, конвейер обработки (processing pipeline) для трансформации данных, REST API и плагины для расширения функциональности.

В момент создания этого руководства официального гида по Graylog v3.1 для Debian 10 не было, поэтому ниже — практическая инструкция из 9 шагов, проверенная в типичном окружении.

Краткий план установки

  • Шаг 1: Обновить систему и добавить backports
  • Шаг 2: Установить Java (headless) 11
  • Шаг 3: Установить утилиты (gnupg, wget)
  • Шаг 4: Установить MongoDB 4.2 (хранилище конфигурации)
  • Шаг 5: Установить Elasticsearch-OSS 6.x (индексация логов)
  • Шаг 6: Установить Graylog 3.1
  • Шаг 7: Настроить Graylog (пароль, secret, bind, timezone, publish URI)
  • Шаг 8: Протестировать подключение и ввод логов
  • Шаг 9: Войти в веб-интерфейс

Пререквизиты

  • Минимальная чистая установка Debian 10 (Buster)
  • Рекомендуемые ресурсы: минимум 4 ГБ RAM, 2 ядра CPU, ~20 ГБ дискового пространства (зависит от объёма логов)
  • Пример учётных данных по умолчанию в этом руководстве: пароль KataLaluan, secret SecretRahsiaSecreta — обязательно замените при продакшн-развёртывании
  • root-доступ. Используйте su -, чтобы получить полноценную среду root (Debian изменил поведение su — используйте su -)

Важно: перед развертыванием в продакшне спланируйте хранение индексов, ретеншен и SLA (SLA/SLI). В небольших тестовых окружениях можно использовать одну VM, в продакшне — разделять узлы Elasticsearch и Graylog.

Пояснения по архитектуре (одной строкой)

  • MongoDB: хранит конфигурацию Graylog и метаданные.
  • Elasticsearch-OSS 6.x: индексирует и хранит сообщения логов.
  • Graylog-server: принимает потоки логов (inputs), обрабатывает, отправляет в Elasticsearch и предоставляет веб-интерфейс.

Шаг 1: Обновление системы и подключение backports

Настроим репозитории и обновим систему:

cat > /etc/apt/sources.list << EOF  
deb http://ftp.debian.org/debian/ buster main contrib non-free  
deb http://security.debian.org/debian-security buster/updates main contrib non-free  
deb http://ftp.debian.org/debian/ buster-updates main contrib non-free  
deb http://ftp.debian.org/debian buster-backports main contrib non-free  
EOF  
apt -y update  
apt -y dist-upgrade

Примечание: перед dist-upgrade убедитесь, что у вас есть резервные копии и что критичные сервисы могут быть временно недоступны.

Шаг 2: Установка headless Java 11

Graylog и Elasticsearch — Java-приложения, поэтому требуется JDK/JRE. В Debian 10 Java 11 доступна в стандартных репозиториях:

apt -y install apt-transport-https default-jdk

Проверить версию:

java -version

Шаг 3: Установка полезных утилит

Установим GnuPG и wget для работы с ключами и загрузки пакетов:

apt -y install gnupg wget

Шаг 4: Установка MongoDB 4.2

Добавим официальный репозиторий MongoDB и установим пакет mongodb-org:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 4B7C549A058F8B6B  
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/latest-mongodb.list  
apt -y update  
apt install -y mongodb-org

Включим и запустим сервис:

systemctl enable mongod.service  
systemctl start mongod.service

Совет по безопасности: в продакшне включите аутентификацию MongoDB и ограничьте доступ по сети (разрешать соединения только с локального хоста или с внутренних IP-кластеров).

Шаг 5: Установка Elasticsearch-OSS 6.x

Graylog 3.1 совместим с Elasticsearch 6.x; 7.x ещё не поддерживается для этой версии Graylog. Добавим ключ и репозиторий Elasticsearch-OSS:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -  
echo "deb https://artifacts.elastic.co/packages/oss-6.x/apt stable main" | tee -a /etc/apt/sources.list.d/latest-elastic-6.x.list  
apt -y update  
apt -y install elasticsearch-oss

Настроим имя кластера:

sed -i "s/#cluster.name: my-application/cluster.name: graylog-application/g" /etc/elasticsearch/elasticsearch.yml

Включим и запустим Elasticsearch:

systemctl enable elasticsearch.service  
systemctl start elasticsearch.service

Проверка статуса кластера:

curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

Замечание: в продакшне используйте выделенные узлы данных и мастер-узлы, настройте heap_size (Xms/Xmx) и мониторинг.

Шаг 6: Установка Graylog 3.1

Скачиваем пакет репозитория Graylog, добавляем и устанавливаем сервер:

cd /tmp/  
wget https://packages.graylog2.org/repo/packages/graylog-3.1-repository_latest.deb  
dpkg -i graylog-3.1-repository_latest.deb  
apt -y update

Установка пакета:

apt -y install graylog-server

Шаг 7: Конфигурация Graylog

  1. Сгенерируйте SHA256 хэш пароля администратора (в примере используется KataLaluan):
echo 'KataLaluan' | tr -d '\n' | sha256sum | cut -d" " -f1
  1. Добавьте хэш в конфигурационный файл сервера Graylog. В примере в конфиг подставляется заранее вычисленная сумма:
sed -i "s/^root_password_sha2 =\$/root_password_sha2 = a25d2f6605c9e27f182d39b66a8b527eb7f2360e52b2ccc7614f8ac24e472bef/g" /etc/graylog/server/server.conf
  1. Установите password_secret (минимум 16 символов):
sed -i "s/^password_secret =\$/password_secret = SecretRahsiaSecreta/g" /etc/graylog/server/server.conf
  1. Разрешите внешний доступ к веб-интерфейсу (по умолчанию привязан к 127.0.0.1):
sed -i "s/^#http_bind_address = 127.0.0.1:9000/http_bind_address = 0.0.0.0:9000/g" /etc/graylog/server/server.conf
  1. Установите часовой пояс сервера (пример — Asia/Kuala_Lumpur):
sed -i "s/#root_timezone = UTC/root_timezone = Asia\/Kuala_Lumpur/g" /etc/graylog/server/server.conf
  1. Запустите и включите сервис Graylog:
systemctl enable graylog-server.service  
systemctl start graylog-server.service
  1. Если сервер находится за роутером/балансировщиком, пропишите публикуемый URI (http_publish_uri), чтобы уведомления и ссылки в интерфейсе использовали корректный адрес:
sed -i '/http_publish_uri =/c\http_publish_uri = http://graylog.howtoforge.com:9000/' /etc/graylog/server/server.conf

Важно: замените пароли и secret на надёжные значения, не храните их в открытом доступе и используйте менеджеры секретов.

Шаг 8: Тестирование Graylog

Установим вспомогательные утилиты и отправим тестовое сообщение UDP:

apt -y install netcat curl

Отправка простого сообщения на локальный input (пример UDP 9099):

echo "Hello Graylog, let's be friends." | nc -w 1 -u 127.0.0.1 9099

Проверка статуса Elasticsearch и кластера:

curl -X GET http://localhost:9200  
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'

Просмотр логов Graylog в реальном времени:

tail -f /var/log/graylog-server/server.log

Совет: если сообщения не появляются, проверьте inputs в веб-интерфейсе Graylog и соответствие портов/протоколов.

Шаг 9: Вход в веб-интерфейс

Откройте браузер и перейдите по одному из URL:

  • http://:9000/
  • http://:9000/
  • http://:9000/

Примеры:

По умолчанию пользователь admin, пароль — KataLaluan (из примера). Зайдя в GUI, создайте входы (Inputs), настройте потоки (Streams), извлечения (Extractors) и правила в processing pipelines.

Страница входа Graylog с полями логина и пароля

Конфигурация входов и потока сообщений в Graylog

Главная панель Graylog после первого входа: поисковые запросы, панели и потоки

Практические рекомендации по эксплуатации и безопасности

  • Всегда заменяйте root-пароль и password_secret на случайные значения, храните в безопасном менеджере секретов.
  • Ограничьте доступ к Elasticsearch и MongoDB: по умолчанию слушайте на localhost или примените firewall/ACL.
  • Используйте TLS/SSL для веб-интерфейса Graylog (nginx/добавочный reverse proxy) и для ElasticSearch, если трафик проходит по сети.
  • Мониторьте использование памяти JVM (heap) у Elasticsearch и Graylog; задавайте Xms/Xmx согласно объёму данных.
  • Регулярно планируйте политики удаления индексов (index lifecycle / curator) для контроля дискового пространства.

Чек-листы по ролям

Администратор (инфраструктура):

  • Установить и обновить систему
  • Настроить бэкапы конфигурации (MongoDB + graylog-server.conf)
  • Настроить firewall и VPN
  • Настроить мониторинг состояния сервисов

Оператор (SRE):

  • Проверять логи Graylog и Elasticsearch ежедневно
  • Следить за ретеншеном индексов и свободным диском
  • Проверять алерты и исправлять нарушение SLA

Разработчик/Dev:

  • Создать подходящие входы (Inputs) и пайплайны для разбора логов
  • Писать извлечения и регулярные выражения для структурирования данных
  • Тестировать отправку логов из приложений в Graylog

Быстрая методология развёртывания (мини-подход)

  1. Подготовка хоста: обновление и базовые утилиты.
  2. Установка зависимостей: Java, MongoDB, Elasticsearch.
  3. Установка Graylog и начальная конфигурация (пароль, secret, bind).
  4. Поднятие сервисов и базовая проверка работоспособности.
  5. Настройка входов, потоков, алертов и панели Dashboards.
  6. Резервное копирование и контроль безопасности.

Когда этот подход не сработает

  • Если у вас требование использовать Elasticsearch 7.x — Graylog 3.1 несовместим с 7.x, потребуется либо откат Elasticsearch, либо переход на более новую версию Graylog.
  • Для высоконагруженных сред одной VM недостаточно: нужен кластер Elasticsearch и выделенные узлы Graylog.
  • Если ваши логи чувствительны с точки зрения защиты данных — требуется дополнительная настройка шифрования и контроля доступа.

Частые ошибки и устранение неполадок

  • Graylog не стартует: смотрите /var/log/graylog-server/server.log — там обычно есть сообщение об ошибке конфигурации или недоступности Elasticsearch/MongoDB.
  • Elasticsearch не поднимается: проверьте права на директории и настройки heap памяти в /etc/elasticsearch/jvm.options.
  • Нету данных в индексе: проверьте, что Input в Graylog активирован и сообщения действительно отправляются на указанный порт.

Примеры команд диагностики:

systemctl status graylog-server.service
journalctl -u graylog-server -f
curl -XGET 'http://localhost:9200/_cat/indices?v'

Безопасность и жёсткое усиление (рекомендации)

  • Используйте reverse proxy (nginx) с TLS перед Graylog и включите HTTP->HTTPS редирект.
  • Включите аутентификацию в MongoDB и сервисные учётные записи с минимально необходимыми правами.
  • Настройте ограничения сетевого доступа: MongoDB и Elasticsearch должны быть доступны только из доверенной сети.
  • Регулярно обновляйте пакеты и применяйте security-патчи.

Примеры тест-кейсов для приёмки

  • Установить сервисы с нуля по пошаговой инструкции и войти в GUI как admin.
  • Отправить UDP-пакет и убедиться, что сообщение появилось в индексе Graylog.
  • Проверить, что при остановке Elasticsearch Graylog логирует ошибку в /var/log/graylog-server/server.log.

Критерии приёмки:

  • Веб-интерфейс доступен по порту 9000 (через HTTPS в проде)
  • Graylog правильно сохраняет и индексирует тестовые сообщения
  • Elasticsearch в состоянии green/ или yellow (для single-node допустимо yellow, для production — green)

Короткая памятка по миграции и совместимости

  • Для Graylog 3.1 используйте Elasticsearch 6.x; при необходимости перейти на ES 7.x — обновляйте Graylog до совместимой версии.
  • При обновлении версии Graylog всегда делайте snapshot индексов и бэкап конфигов.

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

Ресурсы и следующие шаги

  • Изучите processing pipelines для тонкой обработки логов перед индексацией
  • Настройте дашборды и алерты по ключевым событиям
  • Внедрите политики хранения индексов и план по бэкапам

Итог

Мы прошли весь путь: подготовили Debian 10, установили Java, MongoDB 4.2, Elasticsearch-OSS 6.x и Graylog 3.1, выполнили базовую настройку и проверили работу системы. Для продакшна обязательно замените демонстрационные пароли, настройте TLS и ограничьте доступ к базам данных.

Если нужно, могу прислать шаблоны конфигураций nginx для SSL-terminating reverse proxy, пример pipeline для разбора nginx-логов или playbook Ansible для автоматизации развертывания.

Happy logging.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро