[Документация Yandex Cloud](../../index.md) > [Yandex Smart Web Security](../index.md) > [Концепции](index.md) > Логирование

# Логирование

Smart Web Security позволяет записывать и анализировать данные о запросах и правилах, которые сработали для этих запросов. Эти данные помогают настраивать защиту и разбирать инциденты.

Для записи логов доступны два варианта:

* логирование через Smart Web Security;
* логирование через L7-балансировщик Application Load Balancer, к которому подключен профиль безопасности.

Информация в этом разделе относится к логированию через Smart Web Security. Этот вариант предоставляет больше возможностей для анализа, чем логирование через Application Load Balancer. Запись запросов через L7-балансировщик описана в разделе [Настроить логирование через Application Load Balancer](../operations/configure-logging-alb.md).

В логах содержится информация об HTTP-запросах, которые обработал сервис Smart Web Security. Можно записывать только запросы, которые были заблокированы с вердиктом `DENY` или отправлены на капчу с вердиктом `CAPTCHA`. Дополнительно можно записывать часть легитимных запросов с вердиктом `ALLOW`. Чтобы уменьшить объем логов, укажите долю таких запросов — от 1 до 100 процентов.

Smart Web Security передает логи в формате JSON. Каждая запись лога содержит следующие структурные блоки: 

1. Системные поля лога — служебная информация системы мониторинга. Для анализа значимо только одно поле `time` — время появления события в защищаемой системе с точностью до наносекунды.
1. Блок `labels` (метки) — набор пар `<имя>=<значение>` для идентификации лога и быстрой фильтрации по различным срезам. Поля верхнего уровня также могут использоваться для фильтрации.
1. Блок `message` — краткое текстовое сообщение лога в формате [Unicode](https://wikipedia.org/wiki/Unicode).
4. Блок `meta` — метаинформация о запросе. Подробные параметры сработавших правил и параметры запроса.
   
Описание полей логов SWS приведено в таблице ниже. 

## Содержимое логов {#log-contents}

#|
|| **Поле** | **Описание** ||
|| `client_ip` | IP-адрес клиента, от которого поступил HTTP-запрос. ||
|| `request_time` | Время поступления запроса. ||
|| `alb_id` | Идентификатор балансировщика, через который пришел запрос. ||
|| `alb_request_id` | Значение HTTP-заголовка `X-Request-ID` в запросе клиента. ||
|| `unique_key` | Внутренний идентификатор запроса. ||
|| `http_version` | Версия протокола HTTP. ||
|| `http_method` | Метод HTTP-запроса — `POST` или `GET`. ||
|| `http_host` | Имя хоста, указанное в HTTP-запросе. ||
|| `http_path` | Путь в HTTP-запросе. ||
|| `http_queries` | Параметры запроса, переданные в URL после знака вопроса. ||
|| `headers` | Заголовки HTTP-запроса. ||
|| `security_profile_id` | Идентификатор профиля безопасности. ||
|| `security_profile_name` | Имя профиля безопасности. ||
|| `module_type` | [Модуль SWS](index.md), который принял окончательное решение по запросу. Возможные значения: `RULE_CONDITION`, `SMART_PROTECTION`, `WAF`, `ARL` или `DEFAULT` ([базовое правило по умолчанию](rules.md#base-rules) в профиле безопасности). ||
|| `action` | Действие, которое было применено к запросу: `ALLOW`, `DENY` или `CAPTCHA`. ||
|| `matched_rule_name` | Имя сработавшего правила.
Имя `sws_service_rule` соответствует [сервисному правилу](rules.md#service-rule), которое может блокировать трафик при атаках. ||
|| `dry_run_matched_rule_name` | Имя сработавшего правила, которое находится в режиме **Только логирование (dry run)**. В этом режиме действие к запросу не применяется, но информация о срабатывании записывается в логи. ||
|| `matched_rule_verdict` | Ожидаемое действие (вердикт), которое было применено правилом к запросу. Возможные значения: `ALLOW`, `DENY` или `CAPTCHA`. ||
|| `dry_run_matched_rule_verdict` | Ожидаемое действие, которое было бы применено правилом к запросу, но в режиме **Только логирование (dry run)** не применяется. Возможные значения: `ALLOW`, `DENY` или `CAPTCHA`. ||
|| `waf_profile_id` | Идентификатор профиля WAF, если он используется в правиле. ||
|| `dry_run_waf_profile_id` | Идентификатор профиля WAF в режиме dry run. ||
|| `waf_profile_name` | Имя профиля WAF, если он используется в правиле. ||
|| `dry_run_waf_profile_name` | Имя профиля WAF в режиме dry run. ||
|| `waf_applied_rule_set_id` | Идентификатор набора правил, который принял окончательное решение в профиле WAF. Возможные значения: идентификатор определенного набора или `ALL` (если был включен флаг `match_all_rule_sets`). ||
|| `dry_run_waf_applied_rule_set_id` | Идентификатор набора правил, который принял окончательное решение в профиле WAF в режиме dry run. ||
|| `waf_rule_sets_ids` | Идентификаторы всех наборов правил, которые включены в профиль WAF. ||
|| `dry_run_waf_rule_sets_ids` | Идентификаторы всех наборов правил, которые включены в профиль WAF в режиме dry run. ||
|| `waf_matched_rules` | Сработавшие правила в профиле WAF. У этого поля есть вложенные поля. ||
||
* `score` | Уровень аномальности, полученный при проверке запроса профилем WAF. ||
|| 
* `rule_id` | Идентификатор правила WAF, которое добавлено в профиль безопасности. ||
|| 
* `rule_set_id` | Идентификатор набора правил этого правила WAF. ||
|| 
* `rule_group_id` | Идентификатор группы этого правила WAF. ||
|| 
* `data` | Все значения из полей `matched_data_variable`, `matched_data_key`, `matched_data_value` ||
|| 
* `message` | Имя правила из набора правил WAF ||
|| 
* `matched_data_variable` | Параметр запроса, в котором обнаружена аномалия (угроза) ||
|| 
* `matched_data_key` | Название параметра запроса, в котором обнаружена аномалия ||
|| 
* `matched_data_value` | Значение параметра запроса, в котором обнаружена аномалия ||
|| 
* `is_blocking_rule` | Является ли правило блокирующим ||
|| `dry_run_waf_matched_rules` | Сработавшие правила в профиле WAF в режиме dry run. Вложенные поля аналогичны `waf_matched_rules`. ||
|| `waf_matched_exclusion_rules` | Список правил-исключений, которые сработали в профиле WAF. ||
|| 
* `exclusion_rule_name` | Имя исключающего правила. ||
|| 
* `excluded_rule_ids` | Идентификаторы правил из наборов правил, которые добавлены в это правило-исключение. ||
|| `dry_run_waf_matched_exclusion_rules` | Список правил-исключений, которые сработали в профиле WAF в режиме dry_run. Вложенные поля аналогичны `waf_matched_exclusion_rules`. ||
|| `arl_profile_id` | Идентификатор профиля ARL. ||
|| `arl_profile_name` | Имя профиля ARL. ||
|| `arl_verdict` | Ожидаемое действие (вердикт), которое применено к запросу профилем ARL: `ALLOW`, `DENY` или `CAPTCHA`. ||
|| `arl_applied_quota_name` | Имя правила в профиле ARL, которое приняло окончательное решение по запросу. ||
|| `arl_matched_quotas` | Список правил в профиле ARL, которые сработали для запроса. ||
|| 
* `quota_name` | Имя правила ARL. ||
|| 
* `allowed` | Разрешаются ли запросы в этом правиле. ||
|| 
* `dry_run` | Включен ли режим dry run в правиле. ||
|| 
* `priority` | Приоритет правила. ||
|| 
* `counter` | Состояние счетчика правил. ||
|| 
* `requests` | Количество запросов, подходящих под условия правила. ||
|| 
* `period` | Период, за который считается количество запросов. ||
|| 
* `limit` | Лимит запросов. ||
|| 
* `ban_period` | Временной период, в течение которого считаются запросы для достижения лимита. ||
|| `dry_run_exceeded_quota_names` | Имена правил ARL, для которых зарегистрировано превышение количества запросов в режиме dry run. ||
|| `bot_score` | Оценка запроса на роботизированность, по уровню от `0` (человек) до `100` (бот). ||
|| `bot_name` | Имя бота. ||
|| `bot_category` | Категория бота по его назначению или характеру действий. ||
|| `verified_bot` | Признак верификации бота (`true` или `false`). ||
|| `ja3` | [Отпечаток](botes.md#fingerprint) SSL/TLS‑соединения по методу [JA3](https://github.com/salesforce/ja3). ||
|| `ja4` | Отпечаток SSL/TLS‑соединения по методу [JA4](https://github.com/FoxIO-LLC/ja4). ||
|#

Чтобы анализировать логи Smart Web Security, составьте запросы с нужными полями и их комбинациями. Примеры готовых запросов приведены в разделе [Примеры готовых фильтров для логов](../operations/configure-logging.md#filtration).

## Использование логов при настройке защиты {#log-uses}

Чтобы работа Smart Web Security не повлияла на доступность вашего сервиса, но при этом обеспечивался достаточный уровень защиты:

1. Включите логирование в профиле безопасности.
1. Переведите все правила в режим **Только логирование**.
1. Проверяйте по логам, что трафик фильтруется правильно.
1. После проверки отключите режим **Только логирование**.

При каждом изменении или добавлении новых правил для профилей безопасности, WAF и ARL включайте режим **Только логирование**. Активируйте правило только после того, как логи подтвердят его корректную работу.

#### Полезные ссылки {#see-also}

* [Настроить логирование через Smart Web Security](../operations/configure-logging.md)
* [Базовая настройка защиты в Smart Web Security](../tutorials/sws-basic-protection.md)