Стриминг логов
Как работает стриминг логов, как его подключить, куда и в каком формате можем отправлять данные.
|
Функционал не представлен в UI и подключается по запросу. Доступен только для режима защиты Антибот. |
Что за функционал
Стриминг логов — это передача логов системы защиты в вашу инфраструктуру в реальном времени.
Как работает. По каждому запросу к вашему веб-ресурсу система формирует лог из 20 параметров. Она сразу отправляет этот лог в выбранную точку приёма — например, в ваш Kafka-кластер или на rsyslog-приёмник.
Кому пригодится. Тем, кто хочет хранить логи за долгий период, загружать их в SIEM или другие системы мониторинга, объединять с логами из других источников, а также настраивать собственные дашборды и алерты.
Особенности
-
Поддерживается защищённая передача логов по TLS и mTLS.
-
Можно подключить только для режима защиты Антибот. Для режима Анти-DDoS такой возможности нет.
-
Это именно стриминг, а не архивная выгрузка. Отправка происходит в реальном времени, буферизация не поддерживается: если в момент отправки лог не был доставлен, позже он уже не придёт.
Куда и как можем отправлять логи
Доступна отправка в следующие точки приёма:
-
Kafka — в формате JSON.
-
rsyslog-приёмник — в формате syslog. Поддерживаемые протоколы: UDP, TCP, TCP + TLS, TCP + mTLS.
-
Нестандартная точка приёма — по запросу готовы обсудить кастомную схему, например отправку в S3-совместимое хранилище на вашей стороне.
|
Обычно стараемся отправлять логи по публичной сети. Если наши сети где-то граничат с вашими, по договорённости возможна отправка по стыку — то есть по внутреннему сетевому соединению, а не через интернет. |
Формат логов
Можем отправлять логи в двух форматах: JSON и syslog. Примеры ниже.
{
"sid": 29201,
"datetime": 1774275547619,
"scheme": "https",
"host": "example.com",
"remote_addr": "203.0.113.42",
"request": "POST /api/example-endpoint HTTP/2.0",
"referrer": "https://example.com/",
"user_agent": "ExampleApp|4.103.0|Android|16|Example Device",
"cookie": "device_id=example-device-id; wafv=human; theme=dark",
"forwarded_for": "198.51.100.24",
"uniq_id": "8Jd0WBgEkqM3",
"score": "human",
"action": "pass",
"reason": "mobile_app",
"profile_name": "example_profile",
"type": "script",
"ja3": "d06ad0468c9ca5743014ff08b66bfc83",
"geo": "RU",
"asn": 64500,
"subnet": "203.0.113.0/24"
}
<134> 2026-03-23T13:55:33Z cdm2 servicepipe-test[1748630]: 29201,1774275547619,https,example.com,203.0.113.42,POST /api/example-endpoint HTTP/2.0,https://example.com/,ExampleApp|4.103.0|Android|16|Example Device,device_id=example-device-id; wafv=human; theme=dark,198.51.100.24,8Jd0WBgEkqM3,human,pass,mobile_app,example_profile,script,d06ad0468c9ca5743014ff08b66bfc83,RU,64500,203.0.113.0/24
|
Эти примеры содержат все возможные поля лога. При подключении вы сами выбираете, какие из них включать в отгрузку, а какие — нет. |
Описание полей
| Поле | Что значит | Пример в JSON | Пример в syslog |
|---|---|---|---|
|
ID вашего ресурса, к которому был сделан запрос |
|
|
|
Точное время, когда система защиты получила запрос (Unix timestamp в миллисекундах) |
|
|
|
Схема URL (по какому протоколу клиент обращался к ресурсу)
|
|
|
|
Имя хоста, к которому был адресован запрос |
|
|
|
IP-адрес источника запроса |
|
|
|
Стартовая строка HTTP-запроса: метод, путь и версия HTTP |
|
|
|
Значение HTTP-заголовка Referer |
|
|
|
Значение HTTP-заголовка User-Agent |
|
|
|
Значение HTTP-заголовка Cookie |
|
|
|
Значение заголовка X-Forwarded-For |
|
|
|
Уникальный ID запроса, присвоенный нашей системой |
|
|
|
Класс, присвоенный источнику запроса по результатам анализа
|
|
|
|
Действие, которое система применила к запросу
|
|
|
|
Причина, по которой система применила данный
|
|
|
|
Если к запросу было применено пользовательское правило, в значении будет его ID. Если к запросу не было применено пользовательское правило, в значении будет название сработавшего профиля. Профилем называется набор настроек фильтрации. Это внутренняя служебная переменная: мы группируем настройки защиты вашего ресурса в отдельные профили и присваиваем им названия сами. |
|
|
|
Тип запрашиваемого контента (статический или динамический)
|
|
|
|
Хэш JA3-отпечатка |
|
|
|
Страна источника запроса, определённая по IP |
|
|
|
Номер автономной системы, которой принадлежит IP-адрес источника |
|
|
|
Подсеть, которой принадлежит IP-адрес источника |
|
|
Подключить стриминг
1. Напишите в техподдержку или вашему менеджеру
Скажите, что хотите подключить стриминг логов.
2. Пришлите нам данные для подключения
Для записи в Kafka пришлите:
-
адреса и порты брокеров;
-
имя топика, куда нужно писать логи;
-
если подключение идёт через TLS — пришлите CA (Certificate Authority) сертификат в формате PEM, с которым мы будем подключаться к вам;
-
если подключение идёт через mTLS — пришлите CA (Certificate Authority) сертификат и пару сертификат+ключ в формате PEM, с которыми мы будем подключаться к вам;
-
если у вас включена авторизация — создайте для нас учётную запись и передайте пару логин-пароль.
Если доступ к Kafka ограничен файрволом, откройте его для наших адресов. Они опубликованы здесь: https://servicepipe.ru/ipv4.
Для записи по rsyslog пришлите:
-
адрес;
-
порт;
-
тег;
-
протокол: TCP, UDP, TCP + TLS или TCP + mTLS;
-
если используется TCP с TLS — пришлите CA (Certificate Authority) сертификат в формате PEM, с которым мы будем подключаться к вам;
-
если используется TCP с mTLS — пришлите CA (Certificate Authority) сертификат и пару сертификат+ключ в формате PEM, с которыми мы будем подключаться к вам.
|
Мы готовы обсудить и кастомные варианты — например, отгрузку логов в S3-совместимое хранилище. Если для вас это актуально, напишите персональному менеджеру. |
3. Отправьте список полей, которые вам нужны
Укажите, какие поля хотите получать в логах. Полный список можно посмотреть в разделе Описание полей логов выше.
|
Если для вас важно сэкономить место в хранилище, советуем не включать поле cookie без необходимости: оно может непредсказуемо увеличивать объём логов. |
4. Дождитесь готовности конфигурации
Нам нужно немного времени, чтобы настроить всё для стриминга логов. Настройка производится в рабочие часы. Как будет готово, мы сразу сообщим.
5. Подтвердите подключение услуги
После вашего подтверждения запустим отправку логов.