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

Установка Graylog 2 на Debian 9

• 6 min read • DevOps • Обновлено 22 Nov 2025
Установка Graylog на Debian 9
Установка Graylog на Debian 9

Важно: перед началом убедитесь, что у вас есть резервные копии и доступ к консоли сервера. Локальные команды выполняйте от root или через sudo.

Скриншот: обзор Graylog на сервере

Graylog — бесплатный и открытый инструмент управления логами на базе Java, Elasticsearch и MongoDB. Он собирает, индексирует и анализирует системные журналы из централизованного места. С помощью Graylog удобно мониторить SSH-входы, обнаруживать подозрительную активность и отлаживать приложения. Graylog предоставляет мощный язык запросов, систему оповещений, конвейер обработки данных для трансформации и расширяемость через REST API и плагины.

Краткое определение ключевых компонентов:

  • Elasticsearch — поисковый движок, хранит все сообщения и обеспечивает поиск.
  • MongoDB — хранит конфигурации и метаданные.
  • Graylog server — принимает сообщения, обрабатывает их и предоставляет веб-интерфейс для анализа.

Подготовка и требования

  • Сервер с Debian 9 (Stretch).
  • Минимум 4 ГБ оперативной памяти рекомендуется для небольших установок.
  • Статический IP-адрес, в примерах используется 192.168.0.187.

Примечание: при развёртывании в продакшн увеличьте ресурсы, используйте кластер Elasticsearch и настройте резервирование данных.

1. Установка необходимых пакетов

Перед началом установите Java 8 и вспомогательные пакеты. Не все пакеты доступны в стандартном репозитории Debian 9, поэтому добавим backports.

Сначала войдите как root и создайте файл:

nano /etc/apt/sources.list.d/backport.list

Добавьте строку:

deb http://ftp.debian.org/debian stretch-backports main

Сохраните файл и обновите систему:

apt-get update -y  
apt-get upgrade -y

Затем установите нужные пакеты:

apt-get install apt-transport-https openjdk-8-jre-headless uuid-runtime pwgen -y

После установки можно переходить к MongoDB.

2. Установка MongoDB

MongoDB нужна для хранения конфигурации и метаинформации Graylog. В Debian 9 её можно установить из стандартного репозитория:

apt-get install mongodb-server -y

После установки MongoDB перейдите к установке Elasticsearch.

3. Установка Elasticsearch

Elasticsearch хранит лог-сообщения и обеспечивает быстрый поиск. В Debian 9 Elasticsearch версии 2.x нужно подключить отдельно.

Добавьте GPG-ключ:

wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -

Создайте файл репозитория:

nano /etc/apt/sources.list.d/elasticsearch.list

Вставьте:

deb https://packages.elastic.co/elasticsearch/2.x/debian stable main

Обновите и установите Elasticsearch:

apt-get update -y
apt-get install elasticsearch -y

Измените основной конфиг:

nano /etc/elasticsearch/elasticsearch.yml

Внесите изменения (пример для одиночного узла с IP 192.168.0.187):

cluster.name: graylog
network.host: 192.168.0.187
discovery.zen.ping.timeout: 10s
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["192.168.0.187:9300"]

Запустите и включите сервис:

systemctl start elasticsearch  
systemctl enable elasticsearch

Проверка состояния кластера:

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

Ожидаемый ответ содержит поле “status” со значением “green” в рабочем одиночном кластере. Если статус “yellow” или “red”, проверьте конфигурацию и логи Elasticsearch.

Важно: версии Elasticsearch и Graylog должны быть совместимы. Для Graylog 2.2 используются соответствующие версии Elasticsearch 2.x.

4. Установка Graylog

Добавьте репозиторий Graylog и установите пакет:

wget https://packages.graylog2.org/repo/packages/graylog-2.2-repository_latest.deb  
dpkg -i graylog-2.2-repository_latest.deb
apt-get update -y  
apt-get install graylog-server -y

После установки необходимо задать password_secret и хэш пароля root (sha256). Для генерации секретов используйте:

pwgen -N 1 -s 96

Пример вывода (сохраните это значение в надёжном месте):

TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyC

Генерация sha256 для пароля администратора:

echo -n youradminpassword | sha256sum

Пример вывода (это хэш пароля):

e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750ee

Теперь отредактируйте конфигурационный файл Graylog:

nano /etc/graylog/server/server.conf

Вставьте или измените параметры, как в примере ниже (сохраните ваши password_secret и root_password_sha2):

is_master = true
node_id_file = /etc/graylog/server/node-id
########past-your-password-secret-here#########
password_secret = TRXbNPoW4gGC8BN8Gzl4wH3jtfLoi06WCJqia18UtYyPaNLx4r8U7jUPRlIJHoGGxrCjZVqAvW2DcueI6N1zHoy2bKEWLyyC
root_username = admin
#######past-your-root-hash-password-here##########
root_password_sha2 = e3c5925aa22abdfa18cf197a7b218fcad31acb6409d2e2dbebae807d3a9750ee
root_timezone = UTC
plugin_dir = /usr/share/graylog-server/plugin
rest_listen_uri = http://0.0.0.0:9000/api/
rest_enable_cors = true
web_listen_uri = http://0.0.0.0:9000/
rotation_strategy = count
elasticsearch_max_docs_per_index = 20000000
elasticsearch_max_number_of_indices = 7
retention_strategy = delete
elasticsearch_shards = 4
elasticsearch_replicas = 1
elasticsearch_index_prefix = graylog
allow_leading_wildcard_searches = true
allow_highlighting = false
elasticsearch_cluster_name = graylog
elasticsearch_discovery_zen_ping_unicast_hosts = 192.168.0.187:9300
elasticsearch_http_enabled = false
elasticsearch_network_host = 0.0.00
elasticsearch_discovery_initial_state_timeout = 3s
elasticsearch_analyzer = standard
output_batch_size = 500
output_flush_interval = 1
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
processbuffer_processors = 5
outputbuffer_processors = 3
processor_wait_strategy = blocking
ring_size = 65536
inputbuffer_ring_size = 65536
inputbuffer_processors = 2
inputbuffer_wait_strategy = blocking
message_journal_enabled = true
message_journal_dir = /var/lib/graylog-server/journal
async_eventbus_processors = 2
lb_recognition_period_seconds = 3
alert_check_interval = 60
mongodb_uri = mongodb://localhost/graylog
mongodb_max_connections = 1000
mongodb_threads_allowed_to_block_multiplier = 5
content_packs_dir = /usr/share/graylog-server/contentpacks
content_packs_auto_load = grok-patterns.json
proxied_requests_thread_pool_size = 32

Сохраните файл и запустите Graylog:

systemctl start graylog-server  
systemctl enable graylog-server

5. Настройка брандмауэра

Веб-интерфейс Graylog слушает порт 9000. В примере используется UFW.

Установите UFW (если нужно):

apt-get install ufw -y
ufw enable
ufw allow 9000
ufw status

Примечание: в продакшн окружении вместо открытия порта на всю сеть используйте правила для конкретных подсетей, VPN или обратный прокси (nginx/HAProxy) с SSL.

6. Доступ к веб-интерфейсу и приём логов

Откройте в браузере URL http://192.168.0.187:9000. На странице входа используйте логин admin и пароль, соответствующий root_password_sha2, который вы сгенерировали.

Вход в интерфейс Graylog

После входа вы увидите панель управления и подсказки по началу работы.

Подготовка к работе в Graylog

Добавим вход (Input) для приёма syslog UDP:

  1. Перейдите System -> Inputs.
  2. Выберите Syslog UDP и нажмите Launch new input.
  3. Заполните Title, Port (например, 8514), Bind address и нажмите Save.

Добавление источника логов

Детали источника логов

Теперь Graylog будет принимать системные логи по порту 8514.

На клиенте настройте rsyslog для пересылки логов на Graylog. Отредактируйте /etc/rsyslog.conf:

nano /etc/rsyslog.conf

Добавьте:

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 8514
$template GRAYLOGRFC5424,"%protocol-version% %timestamp:::date-rfc3339% %HOSTNAME% %app-name% %procid% %msg%\n"
*.* @192.168.0.187:8514;GRAYLOGRFC5424

Сохраните и перезапустите rsyslog:

systemctl restart rsyslog

Через несколько секунд сообщения начнут появляться в Graylog. В разделе Sources вы увидите системные логи и попытки входа по SSH.

Мониторинг попыток входа по SSH

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

Важно: логи могут содержать персональные данные. Убедитесь в соответствии с политиками конфиденциальности и GDPR, при необходимости анонимизируйте PII.

Рекомендации безопасности:

  • Не используйте открытый HTTP в продакшн: настройте обратный прокси (nginx) с TLS и автологиификацией.
  • Ограничьте доступ к портам Elasticsearch и MongoDB только для сервисов внутри защищённой сети.
  • Регулярно меняйте и храните password_secret в защищённом хранилище (Vault/ключевые менеджеры).
  • Включите ротацию и хранение индексов по политикам, чтобы контролировать рост дискового пространства.
  • Настройте оповещения для аномалий (неудачные входы, маршрутизация логов и др.).

Альтернативные подходы и совместимость

Если вы планируете современное развёртывание, рассмотрите:

  • Использование Graylog более новых версий (поддерживаемые версии требуют совместимого Elasticsearch).
  • Переход на Elasticsearch 6.x/7.x требует Graylog 3.x и выше.
  • В контейнерах: разверните Graylog, Elasticsearch и MongoDB в Docker/Kubernetes с явной конфигурацией хранилищ и ресурсов.

Модель принятия решений (эвристика):

  • Малые инсталляции (до нескольких ГБ логов в сутки): одноузловой стек.
  • Средние/крупные системы: отдельные кластеры Elasticsearch и реплики MongoDB.
  • Критические системы: HA для Graylog и резервирование индексов Elasticsearch.

Проверка приёмки и тест-кейсы

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

  • Веб-интерфейс Graylog доступен по http://:9000 и требует аутентификации.
  • Elasticsearch отвечает на /_cluster/health со статусом green или yellow (зависит от реплик).
  • Graylog принимает сообщения через созданный Input (проверить через rsyslog).
  • Логи появляются в поиске и можно построить простой поиск по hostname и уровню severity.

Тесты:

  1. Отправить тестовое сообщение с клиента и убедиться, что запись появилась в Graylog в течение 30 секунд.
  2. Проверить, что создание alert’а (например, по числу неудачных логинов) срабатывает.
  3. Изменить password_secret на некорректный — Graylog не стартует; восстановить корректный — сервис поднимается.

Рольовые чек-листы

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

  • Проверить доступность портов 9000, 8514, 9300.
  • Проверить состояние сервисов (systemctl status).
  • Контролировать диск/IO Elasticsearch.

Инженер приложений:

  • Настроить отправку логов приложение → rsyslog → Graylog.
  • Написать grok-паттерны для структурирования логов.

Оператор безопасности:

  • Настроить оповещения по неудачным входам и подозрительной активности.
  • Проверять аномальные spike’и в логах.

Мини-руководство по откату/инцидентам

Если Graylog не стартует после изменения server.conf:

  1. Проверить логи: journalctl -u graylog-server -b.
  2. Откатить последние изменения server.conf или восстановить из резервной копии.
  3. Убедиться, что MongoDB и Elasticsearch работают.
  4. Перезапустить Graylog: systemctl restart graylog-server.

Краткая методология развёртывания (SOP)

  1. Подготовка сервера и сетевых правил.
  2. Установка Java и вспомогательных пакетов.
  3. Установка MongoDB → Elasticsearch → Graylog.
  4. Генерация password_secret и root_password_sha2.
  5. Настройка Graylog и запуск сервиса.
  6. Открытие необходимых портов и добавление Inputs.
  7. Настройка отправки логов с клиентов.
  8. Валидация данных и настройка оповещений.

Когда это не подходит

Контраргументы и ограничения:

  • Для очень больших объёмов логов (терабайты в день) может потребоваться специализированный кластер Elasticsearch и сложная архитектура хранения.
  • Если требуется полностью управляемое решение с минимальным управлением инфраструктурой, стоит рассмотреть облачные сервисы логирования.

Краткая сводка

Поздравляем — вы установили и сконфигурировали Graylog 2 на Debian 9. Вы можете централизованно собирать и анализировать логи, настраивать оповещения и расширять функционал через плагины и REST API.

Дополнительные ресурсы: официальная документация Graylog — http://docs.graylog.org/en/2.2/pages/getting_started.html

Если у вас остались вопросы или нужно помочь с настройкой конкретных парсеров/grok-паттернов, оставьте комментарий.

Важно: храните секреты и пароли в безопасном месте и применяйте TLS в продакшн-среде.


Ключевые выводы:

  • Graylog собирает логи с клиентов и индексирует их в Elasticsearch.
  • MongoDB хранит конфигурацию Graylog.
  • Для продакшн используется TLS, ограничение доступа и резервирование данных.
Поделиться: 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 быстро