Получение метрик¶
Выгрузка метрик напрямую из collectd¶
Вы можете напрямую выгружать метрики, собранные collectd, в инструменты, которые поддерживают работу с потоком данных в формате collectd.
Внимание
Все дальнейшие действия необходимо выполнять с правами суперпользователя (например, root).
Выгрузка метрик с помощью плагина Network¶
Настройте и подключите плагин Network к collectd:
-
Создайте в директории
/etc/collectd/collectd.conf.d/файл конфигурации для плагина с расширением.conf(например,export-via-network.conf) и следующим содержимым:LoadPlugin network <Plugin "network"> Server "Server IPv4/v6 address or FQDN" "Server port" </Plugin>Согласно этому конфигурационному файлу, плагин будет запускаться при старте
collectd, работать в режиме клиента и пересылать данные о метриках WAF‑ноды на указанный сервер. -
Настройте сервер, который будет принимать данные от collectd-клиента. Необходимые шаги по настройке зависят от выбранного сервера (примеры:
collectd, InfluxDB).
Работа с плагином Network
Плагин Network работает с использованием протокола UDP (см. документацию плагина). Убедитесь, что на сервере разрешена работа по протоколу UDP.
-
Перезапустите сервис
collectd, выполнив команду, соответствующую операционной системе, на которой установлена WAF‑нода:sudo service wallarm-collectd restartsudo systemctl restart wallarm-collectd.service
Пример
Вы можете ознакомиться с примером выгрузки метрик с помощью плагина Network в InfluxDB с последующей визуализацией метрик в Grafana.
Выгрузка метрик с помощью write‑плагина collectd¶
Для того, чтобы настроить выгрузку метрик с помощью write‑плагина collectd, обратитесь к документации соответствующего плагина.
Пример
Для получения базовых сведений об использовании write‑плагинов, вы можете ознакомиться с примером выгрузки метрик в Graphite с последующей визуализацией метрик в Grafana.
Выгрузка метрик с помощью утилиты collectd-nagios¶
Для выгрузки метрик с помощью этого способа:
-
Установите утилиту
collectd-nagiosна хост с WAF‑нодой, выполнив одну из следующих команд (для WAF‑ноды, установленной на Linux):sudo apt install --no-install-recommends collectd-utilssudo yum install collectd-utilsОбраз Docker
Образ Docker c WAF‑нодой уже содержит в себе предустановленную утилиту
collectd-nagios. -
Убедитесь, что у вас есть возможность запускать эту утилиту с повышенными правами либо от имени пользователя суперпользователя (например,
root), либо с помощьюsudoпутем добавления необходимых пользователей в файлsudoersс директивойNOPASSWD.Работа с Docker‑контейнером
При вызове утилиты
collectd-nagiosиз Docker‑контейнера с WAF‑нодой повышение прав не требуется. -
Подключите и настройте плагин
UnixSockдля передачи метрикcollectdчерез сокет домена Unix. Для этого создайте файл/etc/collectd/collectd.conf.d/unixsock.confсо следующим содержимым:LoadPlugin unixsock <Plugin unixsock> SocketFile "/var/run/wallarm-collectd-unixsock" SocketGroup "root" SocketPerms "0770" DeleteSocket true </Plugin> -
Перезапустите сервис
collectd, выполнив команду, соответствующую операционной системе, на которой установлена WAF‑нода:sudo service wallarm-collectd restartsudo systemctl restart wallarm-collectd.service -
Получите значения требуемых метрик, выполнив следующую команду:
/usr/bin/collectd-nagios -s /var/run/wallarm-collectd-unixsock -n <название метрики без указания имени хоста> -H <полное доменное имя хоста с WAF‑нодой, на котором запускается утилита>docker exec <имя контейнера> /usr/bin/collectd-nagios -s /var/run/wallarm-collectd-unixsock -n <название метрики без указания имени хоста> -H <идентификатор контейнера>Получение идентификатора контейнера Docker
Вы можете узнать значение идентификатора контейнера, выполнив команду
docker ps(см. столбец «CONTAINER ID»).
Настройка порогов для утилиты collectd-nagios
При необходимости вы можете указать диапазон значений, при которых утилита collectd-nagios будет возвращать статус WARNING или CRITICAL с помощью параметров -w и -c (подробная информация доступна в документации утилиты).
Примеры вызова утилиты:
-
Чтобы получить значение метрики
curl_json-wallarm_nginx/gauge-abnormalна Linux‑хостеnode.example.localс WAF‑нодой, необходимо выполнить следующую команду:/usr/bin/collectd-nagios -s /var/run/wallarm-collectd-unixsock -n curl_json-wallarm_nginx/gauge-abnormal -H node.example.local -
Чтобы получить значение метрики
curl_json-wallarm_nginx/gauge-abnormal(на момент вызоваcollectd-nagios) для WAF‑ноды, запущенной в Docker‑контейнере с именемwallarm-nodeи с идентификатором95d278317794, необходимо выполнить следующую команду:docker exec wallarm-node /usr/bin/collectd-nagios -s /var/run/wallarm-collectd-unixsock -n curl_json-wallarm_nginx/gauge-abnormal -H 95d278317794
Примеры
Для получения базовых сведений об использовании утилиты collectd-nagios, вы можете ознакомиться с примерами выгрузки метрик:
Отправка уведомлений от collectd¶
Уведомления настраиваются в файле:
/etc/collectd/wallarm-collectd.conf.d/traps.conf
/etc/collectd.d/traps.conf
Общее описание работы уведомлений доступно здесь.
Подробное описание процесса настройки уведомлений доступно здесь.
Возможные методы для отправки уведомлений:
-
NSCA и NSCA-ng,
-
SNMP TRAP,
-
почтовые сообщения,
-
собственные скрипты.