Перейти к содержанию

Настройка и работа с сервисом статистики

Для получения статистики о работе WAF‑ноды используйте директиву Валарм wallarm_status, которая прописывается в конфигурационном файле NGINX.

Настройка сервиса статистики

Важно

Крайне рекомендуется настраивать сервис статистики в отдельном конфигурационном файле wallarm‑status.conf и не использовать директиву wallarm_status в других файлах, которые вы используете при настройке NGINX, так как это может быть небезопасно.

Также крайне не рекомендуется изменять существующие строки конфигурации wallarm-status по умолчанию, так как это может привести к нарушению работы по выгрузке данных метрик в облако Валарм.

При использовании директивы статистика может отдаваться в json формате или в формате, совместимом с prometheus.
Использование:

wallarm_status [on|off] [format=json|prometheus];

Info

Директива может настраиваться на уровнях server, location.

При настройке конфигурации с директивой wallarm_status вы можете указать IP‑адреса, с которых можно выполнять запрос статистики.
По умолчанию доступ запрещен отовсюду, за исключением IP‑адресов 127.0.0.1 и ::1, позволяющих выполнять запрос только с сервера, где установлен Валарм.

Пример безопасной конфигурации сервиса статистики WAF‑ноды (файл wallarm‑status.conf) приведен ниже:

server {
  listen 127.0.0.8:80;
  server_name localhost;

  allow 127.0.0.0/8;         # Доступ открыт только для loopback-адресов сервера с WAF‑нодой 
  deny all;                  

  wallarm_mode off;
  access_log off;

  location /wallarm-status {
    wallarm_status on;
  }
}

Директива listen

Обратите внимание, что при изменении IP‑адреса директивы listen (в приведенном примере 127.0.0.8) на какой-либо другой, необходимо будет согласовать с новым IP‑адресом настройки мониторинга WAF‑ноды.

Кроме того может понадобиться добавление (изменение) директивы allow, разрешающей доступ не только с loopback-адресов, как в приведенном конфигурационном файле.

Чтобы разрешить выполнение запроса с другого сервера, добавьте в конфигурации инструкцию allow с IP‑адресом нужного сервера, например:

allow 10.41.29.0;

Работа с сервисом статистики

Для получения статистики WAF‑ноды выполните запрос с одного из разрешенных IP‑адресов (см. выше):

curl http://127.0.0.8/wallarm-status

В результате вы получите ответ вида:

{ "requests":0,"attacks":0,"blocked":0,"abnormal":0,"tnt_errors":0,"api_errors":0,
"requests_lost":0,"segfaults":0,"memfaults":0,"softmemfaults":0,"time_detect":0,"db_id":46,
"lom_id":16767,"proton_instances": { "total":1,"success":1,"fallback":0,"failed":0 },
"stalled_workers_count":0,"stalled_workers":[] }

Параметры ответа:

  • requests: количество запросов, которые были обработаны WAF‑нодой;

  • attacks: количество зафиксированных атак;

  • blocked: количество заблокированных запросов;

  • abnormal: количество запросов, которые расценены как нетипичные для приложения;

  • requests_lost: количество запросов, которые не были проанализированы в постаналитике или переданы в API. Для этих запросов учитываются параметры блокировок, но они не видны в интерфейсе и не учитываются в статистических и поведенческих проверках. Включает в себя tnt_errors и api_errors;

  • tnt_errors: количество запросов, анализ которых на постаналитике завершился ошибкой. Для этих запросов учитываются параметры блокировок, но они не видны в интерфейсе и не учитываются в статистических и поведенческих проверках;

  • api_errors: количество запросов, которые не были переданы в API для дальнейшего анализа. Учитывается только при работе в режиме "без локальной постаналитики". Для этих запросов учитываются параметры блокировок, но они не видны в интерфейсе;

  • segfaults: количество проблем, приведших к аварийному завершению воркер‑процесса;

  • memfaults: количество ситуаций, когда был достигнут предел размера виртуальной памяти;

  • time_detect: суммарное время, потраченное на анализ запросов;

  • db_id: версия используемой proton.db;

  • lom_id: версия используемого ЛОМ;

  • proton_instances: информация о парах proton.db + ЛОМ:

    • total: количество пар proton.db + ЛОМ;
    • success: количество успешно загруженных пар proton.db + ЛОМ;
    • fallback: количество пар proton.db + ЛОМ, загруженных из последних сохраненных файлов;
    • failed: количество пар proton.db + ЛОМ, которые не были инициализированы и работают в режиме «не анализировать»;
  • stalled_workers_count: количество воркеров, которые обрабатывают запрос дольше, чем установленное временное ограничение (значение директивы wallarm_stalled_worker_timeout);

  • stalled_workers: список идентификаторов воркеров, которые обрабатывают запрос дольше, чем установленное временное ограничение (значение директивы wallarm_stalled_worker_timeout), и количество затраченного ими времени на обработку запроса.

Данные всех счетчиков накапливаются с момента запуска NGINX. В случае если Валарм был установлен в готовую инфраструктуру с NGINX, сервер NGINX должен быть перезапущен для запуска Валарм.