· 16 мин чтения

Rsyslog + Graylog: централизованный сбор логов для корпоративной сети

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. 15+ лет я расследую инциденты в клиентских инфраструктурах — взломы, утечки, сбои, внутренний саботаж. И знаете, что объединяет 90% случаев? Логи либо не велись, либо велись локально на взломанном сервере, либо хранились по два дня. Когда к вам приходит оперативник с запросом за прошлый квартал — ответить нечем. Централизованный лог-сервер закрывает эту проблему на порядок. Расскажу, как мы строим такую систему на rsyslog и Graylog.

Что даёт централизованный сбор логов

У нас на практике Graylog-сервер решает пять задач одновременно:

Архитектура: Graylog + OpenSearch + MongoDB

Стандартная связка состоит из трёх компонентов:

Для небольшой компании всё ставится на одну виртуалку 8 vCPU / 32 ГБ RAM / 1 ТБ SSD. Для 500+ источников событий разносим: 1 нода Graylog, 3 ноды OpenSearch с шардированием, 1 нода MongoDB ReplicaSet.

Установка Graylog 5.2 на Ubuntu 24.04

apt update && apt install -y openjdk-17-jre-headless apt-transport-https gnupg curl

# MongoDB 6
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | gpg --dearmor -o /usr/share/keyrings/mongo.gpg
echo "deb [signed-by=/usr/share/keyrings/mongo.gpg] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" > /etc/apt/sources.list.d/mongodb.list

# OpenSearch 2
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | gpg --dearmor -o /usr/share/keyrings/opensearch.gpg
echo "deb [signed-by=/usr/share/keyrings/opensearch.gpg] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" > /etc/apt/sources.list.d/opensearch.list

# Graylog 5.2
wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb
dpkg -i graylog-5.2-repository_latest.deb

apt update && apt install -y mongodb-org opensearch graylog-server

Настройка OpenSearch

# /etc/opensearch/opensearch.yml
cluster.name: graylog
node.name: graylog-node1
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
network.host: 127.0.0.1
discovery.type: single-node
plugins.security.disabled: true
action.auto_create_index: false

# /etc/opensearch/jvm.options — для 32 ГБ RAM
-Xms8g
-Xmx8g

systemctl enable --now opensearch

Настройка Graylog-сервера

# /etc/graylog/server/server.conf
password_secret = $(pwgen -N 1 -s 96)
root_password_sha2 = $(echo -n "AdminPassword" | sha256sum | awk '{print $1}')
http_bind_address = 0.0.0.0:9000
http_publish_uri = https://logs.corp.example.ru/
elasticsearch_hosts = http://127.0.0.1:9200
mongodb_uri = mongodb://localhost/graylog
elasticsearch_version = 7
allow_leading_wildcard_searches = true

systemctl enable --now graylog-server

Открываем http://server:9000, логинимся admin/AdminPassword и начинаем настройку входящих данных — Inputs.

Настройка rsyslog-клиентов на Linux

На Graylog создаём Input типа Syslog UDP 514 или TCP 1514. На каждом Linux-сервере в /etc/rsyslog.d/99-graylog.conf:

# Отправка всех логов в Graylog
*.* @@logs.corp.example.ru:1514;RSYSLOG_SyslogProtocol23Format

# Альтернатива — через GELF для структурированных полей
module(load="omgelf")
action(
  type="omgelf"
  target="logs.corp.example.ru"
  port="12201"
  protocol="tcp"
)

systemctl restart rsyslog

Сбор логов Windows

Для Windows ставим NXLog Community Edition или Winlogbeat. Я обычно беру NXLog — он умеет и Syslog, и GELF, и работает стабильно на Windows Server 2016-2025.

# C:\Program Files\nxlog\conf\nxlog.conf

  Module im_msvistalog
  Query \
          \
            \
            \
            \
          \
        



  Module om_tcp
  Host logs.corp.example.ru
  Port 1514
  Exec to_syslog_bsd();



  Path eventlog => graylog

Стримы, алерты и доступы

В Graylog я всегда настраиваю минимум четыре стрима:

СтримФильтрАлерты
Windows Security Eventssource_type:eventlog AND channel:SecurityEventID 4625 > 5 за минуту
SSH Loginsprogram:sshdFailed password > 3 с одного IP
Firewall Dropsfacility:local4Новый blocked_ip из whitelist
App Errorslevel:ERROR OR CRITICALРост в 3 раза за 10 минут

Доступы — по ролям: админы видят всё, HR-отдел только свой журнал, ИБ — отдельный стрим с аудитом admin-действий.

Retention: как и сколько хранить

В Graylog индексы режутся по времени или размеру. Типовая конфигурация у нас — Index Set с ротацией каждые 24 часа и хранением 90 индексов. После этого индексы закрываются, через 180 дней физически удаляются. Для compliance ФЗ-152 храним минимум 12 месяцев.

Реальный кейс: инцидент с шифровальщиком

В декабре 2025 к нам обратилась строительная компания. Ночью в воскресенье Ransomware зашифровала файловый сервер. Ни один локальный лог не остался — шифровальщик стёр event log. Но мы за год до этого поставили у них Graylog, и все события Windows летели туда. За 40 минут мы восстановили картину:

Благодаря точной хронологии заказчик смог сдать материалы в полицию, восстановиться из offsite-бэкапов и закрыть уязвимость. Graylog-сервер у них стоит на Dell R640 с Xeon Platinum 8280, 128 ГБ RAM, 4 ТБ NVMe в дата-центре МТС. Стоимость развёртывания и года обслуживания составила 410 000 ₽.

Типовые ошибки

Централизованные логи для вашей сети

Развернём Graylog-сервер, подключим Linux и Windows источники, настроим стримы, алерты, retention и долгосрочное хранение под требования ФЗ-152. Срок — 5-10 рабочих дней.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы по Rsyslog и Graylog

Зачем компании централизованный сбор логов?
Расследование инцидентов, аудит, compliance. Без логов — нельзя понять, что произошло.
Graylog или ELK — что выбрать?
Для безопасности и аудита — Graylog. Для анализа приложений — ELK.
Сколько места занимают логи?
50 ПК + 5 серверов — 3-8 ГБ/сутки. 90 дней — 600-1500 ГБ.
Как собирать логи с Windows?
NXLog или Winlogbeat — отправка по GELF/Syslog.
Нужен ли SIEM, если есть Graylog?
Graylog — лог-менеджмент. SIEM: Wazuh, TheHive, Graylog Enterprise.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.