Введение в работу мониторинга¶
Вы можете мониторить состояние WAF‑ноды с помощью предоставляемых нодой метрик. Их сбор осуществляется collectd
, установленным на каждой ноде.
collectd
предоставляет несколько способов передачи данных, что позволяет направить поток метрик во множество систем мониторинга для контроля состояния WAF‑нод Вебмониторэкс.
Необходимость мониторинга¶
Отказ или нестабильная работа модуля Вебмониторэкс могут привести к полному или частичному отказу в обслуживании пользовательских запросов к защищаемому WAF‑нодой приложению.
Отказ или нестабильная работа модуля постаналитики может привести к недоступности следующей функциональности:
-
Выгрузка данных об атаках в облако Вебмониторэкс. В результате этого атаки перестанут отображаться на портале Вебмониторэкс.
-
Обнаружение поведенческих атак (см. «брутфорс»).
-
Получение сведений о структуре защищаемого приложения.
Вы можете осуществлять мониторинг как модуля Вебмониторэкс, так и модуля постаналитики (в том числе, если он установлен отдельно).
Формы мониторинга
Все документы, описывающие настройку мониторинга WAF‑ноды, пригодны для настройки мониторинга:
- Отдельно развернутого модуля Вебмониторэкс.
- Отдельно развернутого модуля постаналитики.
- Совместно развернутых модулей Вебмониторэкс и постаналитики.
Необходимые условия для работы мониторинга¶
Для функционирования мониторинга требуется, чтобы:
-
NGINX отдавал статистику работы WAF‑ноды (
wallarm_status on
), -
нода находилась в режиме
monitoring
/block
.
По умолчанию статистика доступна по адресу http://127.0.0.8/wallarm-status
.
Если вы настроили отображение статистики так, чтобы для этого использовался нестандартный адрес, вам необходимо внести этот адрес в файл конфигурации collectd
в параметр URL
. Расположение этого файла зависит от типа вашего дистрибутива:
/etc/collectd/wallarm-collectd.conf.d/nginx-wallarm.conf
/etc/collectd.d/nginx-wallarm.conf
Если используется нестандартный IP‑адрес или порт для Tarantool, необходимо внести эту информацию в файл настроек Tarantool. Расположение этого файла зависит от типа вашего дистрибутива:
/etc/collectd/collectd.conf.d/wallarm-tarantool.conf
/etc/collectd.d/wallarm-tarantool.conf
Если на системе с WAF‑нодой установлен SELinux, убедитесь, что он настроен или отключен. В этом руководстве для упрощения предполагается, что SELinux отключен.
Вид метрик¶
Как выглядят метрики collectd
¶
Метрики collectd
имеют следующий вид:
host/plugin[-plugin_instance]/type[-type_instance]
Где:
-
host
— полное доменное имя хоста (англ. Fully Qualified Domain Name, FQDN), для которого получается метрика. -
plugin
— имя плагина, с помощью которого получается метрика. -
-plugin_instance
— инстанс плагина, если он есть. -
type
— тип значения метрики. Допустимые типы:counter
,derive
,gauge
.
Подробная информация о типах значения доступна здесь.
-
-type_instance
— инстанс типа (тип инстанса эквивалентен величине, метрику для которой мы хотим получить), если он есть.
Полная расшифровка иерархии в имени метрики доступна здесь.
Как выглядят метрики collectd
, специфичные для Вебмониторэкс¶
На WAF‑ноде используется collectd
, собирающий метрики, специфичные для Вебмониторэкс.
Метрики для NGINX с модулем Вебмониторэкс, собираемые collectd
, имеют следующий вид:
host/curl_json-wallarm_nginx/type-type_instance
Метрики для модуля постаналитики, собираемые collectd
, имеют следующий вид:
host/wallarm-tarantool/type-type_instance
Примеры метрик
Для хоста node.example.local
с WAF‑нодой:
-
Метрика, описывающая количество зафиксированных атак:
node.example.local/curl_json-wallarm_nginx/gauge-attacks
-
Метрика, описывающая задержку экспорта в Tarantool в секундах:
node.example.local/wallarm-tarantool/gauge-export_delay
Полный список метрик, которые могут использоваться для мониторинга, доступен здесь.
Способы получения метрик¶
Вы можете собрать метрики с WAF‑ноды несколькими способами:
-
С помощью выгрузки данных напрямую из
collectd
.Такую выгрузку можно настроить следующим образом:
-
С помощью плагина Network для
collectd
.Этот плагин позволяет
collectd
выгружать метрики с WAF‑ноды на серверcollectd
или в базу данных InfluxDB.InfluxDB
Может использоваться для агрегации метрик, поступающих от
collectd
и других источников данных, с их последующей визуализацией (например, с помощью системы мониторинга Grafana). -
С помощью одного из write‑плагинов для
collectd
.Например, плагин
write_graphite
позволяет передавать собранные данные в Graphite.Graphite
Может использоваться в качестве источника данных для систем мониторинга и визуализации (например, Grafana).
Этот способ получения метрик поддерживается WAF‑нодами, которые:
- развернуты в облаках Google Cloud;
- установлены на Linux для платформ NGINX/NGINX Plus и Kong.
-
-
С помощью выгрузки данных утилитой
collectd-nagios
.Эта утилита получает значение заданной метрики от
collectd
(на момент вызова утилиты) и представляет его в Nagios‑совместимом формате.Этим способом вы можете выгружать метрики с WAF‑ноды в системы мониторинга Nagios или Zabbix.
Этот способ поддерживается всеми вариантами WAF‑нод.
-
С помощью отправки уведомлений от
collectd
при достижении заданного порогового значения какой-либо метрикой.Этот способ получения метрик поддерживается всеми вариантами WAF‑нод.