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

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



Практические рекомендации по эксплуатации и безопасности
- Всегда заменяйте 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
Быстрая методология развёртывания (мини-подход)
- Подготовка хоста: обновление и базовые утилиты.
- Установка зависимостей: Java, MongoDB, Elasticsearch.
- Установка Graylog и начальная конфигурация (пароль, secret, bind).
- Поднятие сервисов и базовая проверка работоспособности.
- Настройка входов, потоков, алертов и панели Dashboards.
- Резервное копирование и контроль безопасности.
Когда этот подход не сработает
- Если у вас требование использовать 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.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента