Содержание статьи
- Архитектура и требования
- Необходимые компоненты
- Java 17
- MongoDB
- OpenSearch
- Настраиваем opensearch.yml
- Виртуальная память
- Настраиваем OpenSearch
- Ставим и настраиваем Graylog
- Готовим агенты
- Для Linux
- Ставим и настраиваем auditd
- Настраиваем rsyslog в Linux
- Настраиваем Sysmon и Winlogbeat в Windows
- Настраиваем прием логов на сервере Graylog
- Итоги
Варианты
- Datadog — платформа мониторинга как сервис (SaaS) для облачных приложений. Объединяет метрики, логи, трейсинг (APM), мониторинг пользовательских систем (RUM) в одной платформе. Очень популярна среди разработчиков.
- Dynatrace — продвинутый AI-powered-мониторинг всего стека приложений и инфраструктуры. Использует автоматическое и глубокое обнаружение зависимостей, искусственный интеллект для анализа событий (Davis AI), имеет высокую степень автоматизации.
- New Relic — платформа для наблюдения за производительностью приложений (APM) в режиме SaaS. Сильный инструмент для разработчиков, позволяющий проводить глубокий анализ работы кода, а также мониторинг браузеров и мобильных приложений.
- SolarWinds Orion Platform — продукты для мониторинга сетей (NPM), серверов и приложений (SAM). Предоставляют гибкие и настраиваемые дашборды, мощные отчеты и хорошие возможности для инженеров (недоступно в РФ).
- PRTG Network Monitor — универсальный мониторинг для сетей, серверов и приложений. Очень прост в установке и настройке, бесплатен до 100 сенсоров. Работает исключительно на Windows. Доступен тестовый доступ на 30 дней.
- ManageEngine OpManager — мониторинг сети и серверов. Хорошо интегрируется с другими продуктами ManageEngine для управления IT-инфраструктурой. Также доступен тестовый период на 30 дней.
Кроме того, есть специализированные решения для логов и трассировки, также приведу небольшой список.
- Elastic Stack (ELK Stack) — по факту является комбинацией Elasticsearch (для поиска и хранения), Logstash/Kafka (обработка), Kibana (визуализация результатов). Бесплатен с базовой лицензией. Можно рассматривать как стандарт для анализа и визуализации логов. Довольно мощный и гибкий.
- Splunk — коммерческая платформа для анализа машинных данных (логи, метрики, трассировка). Есть бесплатная версия с ограничением в 500 Мбайт данных в день. Среди достоинств — невероятно мощный язык запросов SPL и высокая производительность. Недоступна из РФ.
- Jaeger — распределенная трассировка для микросервисных архитектур (open source, от Cloud Native Computing Foundation). Jaeger помогает отслеживать запросы, проходящие через множество сервисов, и находить узкие места.
И тут возникает один из самых главных вопросов: как же выбрать необходимый инструмент?
- Для старта вполне подойдет Zabbix, Prometheus + Grafana, PRTG (бесплатно до 100 сенсоров).
- Для облачных и микросервисных приложений оптимальным может быть Prometheus + Grafana, Datadog, Dynatrace.
- Для сетевого мониторинга можно предложить LibreNMS, Zabbix, PRTG.
В репозиториях российского дистрибутива РЕД ОС доступно решение Graylog, и это, на мой взгляд, хорошая и мощная система централизованного сбора, анализа и хранения логов. Она позволяет собирать и сразу анализировать большие объемы журналов и сообщений от разных приложений, серверов и сетевых устройств. Graylog помогает оперативно выявлять проблемы, отслеживать инциденты информационной безопасности, мониторить производительность инфраструктуры и проводить детальное расследование происшествий.
Основные возможности Graylog:
- Сбор логов: поддерживается сбор логов через Syslog, TCP, UDP, HTTP, Kafka и другие протоколы и форматы.
- Анализ и фильтрация: есть мощный механизм фильтрации и поиска по собранным данным.
- Визуализация: инструменты визуализации данных, такие как графики и диаграммы.
- Алертинг: возможность настраивать уведомления и алерты при возникновении определенных условий.
- Масштабируемость: Graylog может масштабироваться горизонтально, поддерживая работу больших распределенных инфраструктур.
- Поддержка множества платформ: система совместима с Linux, Windows, Docker и Kubernetes.
Graylog требует установки и настройки нескольких компонентов для полноценной работы.
- Java 17 — обеспечивает совместимость и стабильность работы Graylog (рекомендуется использовать последнюю стабильную версию для обеспечения безопасности и производительности).
- MongoDB — база данных, которая используется в Graylog для хранения конфигурационных данных и метаданных.
- OpenSearch — поисковая и аналитическая система, которая позволяет обрабатывать большие объемы данных, предоставляя обширные возможности для поиска и анализа логов.
- Сервер Graylog — основной компонент, который собирает, обрабатывает и визуализирует логи.
Каждый из компонентов играет свою роль в общей системе управления логами. Graylog активно используют в компаниях разного масштаба для мониторинга ИТ‑инфраструктуры, выявления уязвимостей и улучшения процессов DevOps.
Я рассмотрю сбор логов на основе небольшой домашней лаборатории. Вот что в ней используется:
- Операционные системы: РЕД ОС 8.0 (Linux), Windows.
- Платформы: x86-64, ARM (Raspberry Pi 4/5). Да, Graylog успешно работает на ARM, что расширяет возможности развертывания.
- Ядро системы сбора и анализа логов: Graylog 5.2.
- База данных: MongoDB. Используется Graylog для хранения настроек и метаданных.
- Поисковый и аналитический движок: OpenSearch. Обеспечивает индексацию, хранение и быстрый поиск по логам.
Средства сбора логов на клиентах:
- В Linux: стандартный демон auditd для аудита событий безопасности и rsyslog для пересылки системных логов.
- В Windows: Sysmon для детального мониторинга системы и Winlogbeat как надежный агент для доставки событий из журналов Windows.
- Протоколы передачи данных: TCP (для надежной доставки событий от Winlogbeat) и UDP (для менее критичных системных логов с Linux-хостов).
Архитектура и требования
У меня собрана небольшая инфраструктура, которая включает в себя различные устройства.


Схема такова: интернет приходит от провайдера сети, далее к роутеру подключен свитч, на который скоммутированы тестовые устройства, из них два — на Windows, остальные — на отечественном дистрибутиве РЕД ОС, который прекрасно себя чувствует на ARM. В моей тестовой домашней лаборатории пять устройств на x86-64, остальные — это Raspberry Pi 4 и 5.
Я не буду останавливаться на деталях установки операционной системы, а перейду непосредственно к основному материалу.
Итак, в нашей опытной инфраструктуре необходимо установить сервер сбора событий мониторинга Graylog и организовать отправку событий агентов на это устройство.
Необходимые компоненты
На официальной странице документации РЕД ОС, посвященной Graylog, указаны системные требования, а также дана подробная инструкция по установке. Мы повторим все эти шаги.

Для корректной работы Graylog нам нужно установить компоненты, представленные на схеме. Все команды выполняем от sudo или в сеансе root.
Java 17
Для установки в терминале выполняем команду
dnf install java-17-openjdk
Если установлено несколько версий, после установки выбираем подходящую.

Нам нужна версия 17. Возможность работы с другими версиями Java в документации не упомянута.
MongoDB
Алгоритм установки базы данных следующий.
Устанавливаем MongoDB:
dnf install mongodb-org
Перезагружаем настройки системных служб:
systemctl daemon-reload
Добавляем службу mongod в автозагрузку:
systemctl enable mongod --nowПроверяем статус службы mongod:
systemctl status mongod
В статусе должно отображаться active (.

OpenSearch
Для установки OpenSearch необходимо задать собственный пароль администратора, чтобы настроить демонстрационную конфигурацию безопасности.
env OPENSEARCH_INITIAL_ADMIN_PASSWORD=<сюда записываем пароль> dnf install opensearch
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
