Получение метрик¶
Выгрузка метрик напрямую из 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 collectd restart
sudo systemctl restart collectd
Пример
Вы можете ознакомиться с примером выгрузки метрик с помощью плагина Network в InfluxDB с последующей визуализацией метрик в Grafana.
Выгрузка метрик с помощью write‑плагина collectd
¶
Для того, чтобы настроить выгрузку метрик с помощью write‑плагина collectd
, обратитесь к документации соответствующего плагина.
Пример
Для получения базовых сведений об использовании write‑плагинов, вы можете ознакомиться с примером выгрузки метрик в Graphite с последующей визуализацией метрик в Grafana.
Выгрузка метрик с помощью утилиты collectd‑nagios
¶
Для выгрузки метрик с помощью этого способа:
-
Установите утилиту
collectd‑nagios
на хост с WAF‑нодой, выполнив одну из следующих команд (для WAF‑ноды, установленной на Linux):sudo sudo apt install --no-install-recommends collectd-utils
sudo 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/collectd-unixsock" SocketGroup "root" SocketPerms "0770" DeleteSocket true </Plugin>
-
Перезапустите сервис
collectd
, выполнив команду, соответствующую операционной системе, на которой установлена WAF‑нода:sudo service collectd restart
sudo systemctl restart collectd
-
Получите значения требуемых метрик, выполнив следующую команду:
/usr/bin/collectd-nagios -s /var/run/collectd-unixsock -n <название метрики без указания имени хоста> -H <полное доменное имя хоста с WAF‑нодой, на котором запускается утилита>
docker exec <имя контейнера> /usr/bin/collectd-nagios -s /var/run/collectd-unixsock -n <название метрики без указания имени хоста> -H <идентификатор контейнера>
Получение идентификатора контейнера Docker
Вы можете узнать значение идентификатора контейнера, выполнив команду
docker ps
(см. столбец «CONTAINER ID»).
Настройка порогов для утилиты collectd‑nagios
При необходимости вы можете указать диапазон значений, при которых утилита collectd‑nagios
будет возвращать статус WARNING
или CRITICAL
с помощью параметров -w
и -c
(подробная информация доступна в документации утилиты).
Примеры вызова утилиты:
-
Чтобы получить значение метрики
curl_json-wallarm_nginx/gauge-attacks
на Linux‑хостеnode.example.local
с WAF‑нодой, необходимо выполнить следующую команду:/usr/bin/collectd-nagios -s /var/run/collectd-unixsock -n curl_json-wallarm_nginx/gauge-attacks -H node.example.local
-
Чтобы получить значение метрики
curl_json-wallarm_nginx/gauge-attacks
(на момент вызоваcollectd‑nagios
) для WAF‑ноды, запущенной в Docker‑контейнере с именемwallarm-node
и с идентификатором95d278317794
, необходимо выполнить следующую команду:docker exec wallarm-node /usr/bin/collectd-nagios -s /var/run/collectd-unixsock -n curl_json-wallarm_nginx/gauge-attacks -H 95d278317794
Примеры
Для получения базовых сведений об использовании утилиты collectd‑nagios
, вы можете ознакомиться с примерами выгрузки метрик:
Отправка уведомлений от collectd
¶
Уведомления настраиваются в файле:
/etc/collectd/conf.d/traps.conf
/etc/collectd.d/traps.conf
Общее описание работы уведомлений доступно здесь.
Подробное описание процесса настройки уведомлений доступно здесь.
Возможные методы для отправки уведомлений:
-
NSCA и NSCA-ng,
-
SNMP TRAP,
-
почтовые сообщения,
-
собственные скрипты.