Получение метрик¶
Выгрузка метрик напрямую из 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 restart
sudo 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-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/wallarm-collectd-unixsock" SocketGroup "root" SocketPerms "0770" DeleteSocket true </Plugin>
-
Перезапустите сервис
collectd
, выполнив команду, соответствующую операционной системе, на которой установлена WAF‑нода:sudo service wallarm-collectd restart
sudo 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,
-
почтовые сообщения,
-
собственные скрипты.