Настройка и работа с сервисом статистики¶
Для получения статистики о работе 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‑ноды (файл /etc/nginx/conf.d/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;
disable_acl "on"; # Проверка источников запросов отключена, IP-адреса из черного списка могут обратиться к сервису wallarm-status. https://docs.webmonitorx.ru/admin-ru/configure-parameters-ru/#disable_acl
access_log off;
location ~/wallarm-status$ {
wallarm_status on;
}
}
Изменение директивы listen
Обратите внимание, что при изменении IP‑адреса директивы listen
(в приведенном примере 127.0.0.8
), необходимо также изменить следующие настройки:
- Согласовать с новым IP‑адресом настройки мониторинга WAF‑ноды. Для этого необходимо указать новый IP‑адрес в файле
/etc/collectd/wallarm-collectd.conf.d/nginx-wallarm.conf
- Добавить (изменить) директиву
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,"blocked_by_acl":0,"abnormal":0,"tnt_errors":0,
"api_errors":0,"requests_lost":0,"overlimits_time":0,"segfaults":0,"memfaults":0,
"softmemfaults":0,"proton_errors":0,"time_detect":0,"db_id":73,"lom_id":102,"custom_ruleset_id":102,
"db_apply_time":1598525865,"lom_apply_time":1598525870,"custom_ruleset_apply_time":1598525870,
"proton_instances": { "total":3,"success":3,"fallback":0,"failed":0 },"stalled_workers_count":0,
"stalled_workers":[],"ts_files":[{"id":102,"size":12624136,"mod_time":1598525870,
"fname":"\/etc\/wallarm\/custom_ruleset"}],"db_files":[{"id":73,"size":139094,"mod_time":1598525865,
"fname":"\/etc\/wallarm\/proton.db"}] }
Параметры ответа:
-
requests
: количество запросов, которые были обработаны WAF‑нодой -
attacks
: количество зафиксированных атак -
blocked
: количество заблокированных запросов. В параметре учитываются как запросы с признаками атак, так и запросы, отправленные с IP‑адресов из черного списка -
blocked_by_acl
: количество запросов, которые были заблокированы, так как IP‑адрес запроса добавлен в черный список -
abnormal
: количество запросов, которые расценены как нетипичные для приложения -
requests_lost
: количество запросов, которые не были проанализированы в постаналитике или переданы в API. Для этих запросов учитываются параметры блокировок, но они не видны в интерфейсе и не учитываются в статистических и поведенческих проверках. Включает в себяtnt_errors
иapi_errors
-
overlimits_time
: количество атак типа Превышение лимита вычислительных ресурсов, обнаруженных WAF‑нодой -
tnt_errors
: количество запросов, анализ которых на постаналитике завершился ошибкой. Для этих запросов учитываются параметры блокировок, но они не видны в интерфейсе и не учитываются в статистических и поведенческих проверках -
api_errors
: количество запросов, которые не были переданы в API для дальнейшего анализа. Учитывается только при работе в режиме "без локальной постаналитики". Для этих запросов учитываются параметры блокировок, но они не видны в интерфейсе -
segfaults
: количество проблем, приведших к аварийному завершению воркер‑процесса -
memfaults
: количество ситуаций, когда был достигнут предел размера виртуальной памяти -
time_detect
: суммарное время, потраченное на анализ запросов -
db_id
: версия используемой proton.db -
lom_id
: поддержка параметра скоро прекратится, используйтеcustom_ruleset_id
-
custom_ruleset_id
(до версии ноды 3.6 —lom_id
): версия сборки индивидуального набора правил -
db_apply_time
: Unix‑время последнего обновления файла proton.db -
lom_apply_time
: поддержка параметра скоро прекратится, используйтеcustom_ruleset_apply_time
-
custom_ruleset_apply_time
(до версии ноды 3.6 —lom_apply_time
): Unix‑время последнего обновления файла с индивидуальным набором правил -
proton_instances
: информация о парах proton.db + ЛОМ: -
stalled_workers_count
: количество воркеров, которые обрабатывают запрос дольше, чем установленное временное ограничение (значение директивыwallarm_stalled_worker_timeout
) -
stalled_workers
: список идентификаторов воркеров, которые обрабатывают запрос дольше, чем установленное временное ограничение (значение директивыwallarm_stalled_worker_timeout
), и количество затраченного ими времени на обработку запроса -
ts_files
: информация о файле ЛОМ:id
: версия используемого ЛОМsize
: размер файла ЛОМ в байтахmod_time
: Unix‑время последнего обновления файла ЛОМfname
: путь к файлу ЛОМ
-
db_files
: информация о файле proton.db:id
: версия используемого proton.dbsize
: размер файла proton.db в байтахmod_time
: Unix‑время последнего обновления файла proton.dbfname
: путь к файлу proton.db
-
startid
: случайный уникальный идентификатор WAF‑ноды.
Данные всех счетчиков накапливаются с момента запуска NGINX. В случае если Вебмониторэкс был установлен в готовую инфраструктуру с NGINX, сервер NGINX должен быть перезапущен для запуска Вебмониторэкс.