Содержание статьи
- Обновление Graylog
- Создаем потоки (Streams): разделяем логи по смыслу
- Создаем потоки в Windows и Linux
- Шаг 1. Переходим к управлению потоками
- Шаг 2. Создаем новый поток
- Декодируем логи auditd для Graylog
- Какие поля извлекаем
- Ставим и запускаем декодер
- Настраиваем отображение декодированных событий
- Сохраняем поисковые шаблоны
- Алерты
- Готовим почтовый ящик Mail.ru
- Пошаговая настройка email-уведомлений в Graylog
- Создаем условие алерта (Event Definition) для Linux и Windows
- Готовим условие для Linux
- Создаем алерт для Linux
- Проверяем алерт для Linux
- Готовим условие для Windows
- Создаем алерт для Windows
- Проверяем алерт для Windows
- Что показала проверка
- Что дальше?
В статье «Серый кардинал мира логов» я показывал, как развернуть сервер Graylog 5.2, установить Java, MongoDB и OpenSearch и настроить базовый сбор логов с хостов под управлением Linux и Windows.
Логи из auditd, rsyslog, Sysmon и Winlogbeat в моей домашней лаборатории начали стекаться на центральный сервер. Теперь мой «серый кардинал» тихо сидит в локальной сети и собирает все необходимое. Но это только начало. Сегодня превратим Graylog из простого сборщика логов в активного помощника.
Дальше ты научишься:
- создавать потоки (streams) — выделять в отдельные ленты события с конкретных серверов, ошибки определенных типов и подозрительную активность;
-
настраивать алерты (alerts) — включать уведомления по электронной почте о важных событиях, например о десятке неудачных логинов за минуту или внезапном появлении слова
errorв логах ядра.
Я продолжаю работать в домашней лаборатории на хостах с Windows, Linux и macOS, но все примеры универсальны. Можешь выбрать любой дистрибутив Linux — их бесчисленное множество.
С момента публикации прошло больше полугода. За это время я набил немало шишек, но справился и теперь хочу показать тебе результат, который поможет добиться цели без лишних ошибок.
Обновление Graylog
Раньше я использовал Graylog 5.2, но сейчас уже вышла версия 7.1.3. Ее я и установил, предварительно сохранив копию конфига /. Это важно: в нем хранятся параметры взаимодействия компонентов системы и данные для доступа к веб‑интерфейсу. Позже мы дополним конфиг — я расскажу, что и зачем в него добавить. Будет интересно!
Обновить сам Graylog можно так же, как и другие пакеты для Linux. Есть два пути:
- Если в списке зеркал репозиториев указан репозиторий Graylog, ты сможешь автоматически обновлять ПО до последней версии.
- Другой вариант — скачать пакет и установить его вручную.
Я выбрал второй путь — и не потому, что доступ к зеркалу пакетов из России ограничен. Я предпочитаю обновляться вручную, устанавливая пакет из скачанного файла. Не буду подробно описывать процесс: ты и сам прекрасно знаешь, как это делается.
На что стоит обратить внимание? Прежде всего — на совместимость версий ПО в стеке Graylog. Судя по информации, которую разработчики опубликовали в открытом доступе, для полноценной работы Graylog 7.1 нужны компоненты определенных версий, перечисленные на скриншоте ниже.

У меня в системе как раз установлена версия 2.19.5.

И MongoDB 7.0.32.

Я скачал пакет Graylog 7.1.3 — на момент подготовки финального варианта это была последняя версия актуальной мажорной ветки. Затем распаковал пакет, заменил / своей сохраненной копией и открыл веб‑интерфейс.

Особых изменений я не заметил, но появились и новинки. Мы разберемся, как они работают и как ими пользоваться.
Создаем потоки (Streams): разделяем логи по смыслу
Что же такое потоки? Представь, что наш сервер — это одна сетевая папка, куда сбрасываются логи. Никто их не сортирует: все лежит в одном месте. Но хотелось бы распределять логи в зависимости от предпочтений. При этом на уровне системы все, по сути, останется как прежде.
Логи поступают на определенные порты, то есть во входы. Непонятно? Не паникуй, сейчас все объясню.
Теперь все логи стекаются в одно место. Открой раздел Search — и увидишь сплошной поток сообщений: системные события, ошибки приложений и записи аудита безопасности. В такой каше сложно ориентироваться, особенно когда источников становится все больше.

Именно для этого в Graylog предусмотрены потоки (Streams). Поток — логическая группа сообщений, объединенных по заданным правилам. По сути, это фильтр, который автоматически раскладывает входящие логи по разным «папкам». Все сообщения по‑прежнему хранятся в одном индексе OpenSearch, но в интерфейсе Graylog ты можешь переключаться между потоками и работать только с нужными логами.
По умолчанию в системе есть три потока: все события, все системные события и поток по умолчанию. При базовом развертывании активен только поток по умолчанию, а остальные нужно настраивать вручную. Как видишь, именно так система выглядит из коробки.

Зачем нужны потоки?
- Удобство работы — тебе не придется каждый раз составлять сложные поисковые запросы, чтобы отделить логи Windows от логов Linux, а события безопасности — от отладочных сообщений. Ты настраиваешь поток, и в него попадают только сообщения, которые соответствуют заданным критериям.
- Безопасность и разграничение доступа — для каждого потока можно задать свои права доступа. Например, в проде администраторы баз данных будут видеть только логи своих СУБД, а команда безопасности — только события аутентификации.
- Алерты и уведомления — для каждого потока можно настроить свои уведомления. Например, ты можешь создать правило: если за пять минут в потоке «События безопасности» произошло десять неудачных попыток входа, отправить алерт в Telegram или по другому каналу связи.
- Визуализация — дашборды можно строить на основе потоков или глобального поиска. С помощью потоков ты создашь отдельные панели мониторинга для разных задач.
Как это работает?
Создавая поток, ты задаешь одно или несколько правил. Каждое из них проверяет указанное поле сообщения. Если сообщение соответствует всем правилам по логике И, оно попадает в поток. Чтобы использовать логику ИЛИ, объедини правила в группу.
В зависимости от настроек правила могут быть очень гибкими:
- равенство поля заданному значению (
source);== "web-server-01" - наличие подстроки (
messageсодержитOut);of memory - сравнение чисел (
event_id >);= 4624 - проверка по регулярным выражениям
- и многие другие условия. Выбор зависит от твоих предпочтений.
Что у нас есть сейчас? Я уже настроил получение событий с хостов Windows и Linux. Это два типа событий, которые поступают на разные входы сервера. Теперь в потоках нужно видеть:
- Windows Logs — все сообщения от Winlogbeat и Sysmon, только с хостов Windows.
- Linux Logs — сообщения с моих хостов Linux, полученные по Syslog через UDP. Позже я переименовал этот поток.
- Security Events — события аутентификации и доступа с
event_id4624, 4625, 4648 и так далее. Сюда попадают события с хостов Windows и РЕД ОС — попробуем объединить их для общего анализа. - Errors — сообщения со словами
errorилиcriticalсо всех хостов.
Начнем с двух базовых потоков — для Windows и Linux. Позже мы настроим для каждой группы свои алерты и дашборды. Разберемся с потоками — дальше будет проще: они помогут разделить всю мешанину данных, которая прилетает на сервер.
Создаем потоки в Windows и Linux
Открываем веб‑интерфейс Graylog — по умолчанию он доступен на порте 9000 — и входим с учетной записью admin.

Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
