Перейти к содержанию

Получение метрик

Выгрузка метрик напрямую из collectd

Вы можете напрямую выгружать метрики, собранные collectd, в инструменты, которые поддерживают работу с потоком данных в формате collectd.

Внимание

Все дальнейшие действия необходимо выполнять с правами суперпользователя (например, root).

Выгрузка метрик с помощью плагина Network

Настройте и подключите плагин Network к collectd:

  1. Создайте в директории /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‑ноды на указанный сервер.

  2. Настройте сервер, который будет принимать данные от collectd-клиента. Необходимые шаги по настройке зависят от выбранного сервера (примеры: collectd, InfluxDB).

Работа с плагином Network

Плагин Network работает с использованием протокола UDP (см. документацию плагина). Убедитесь, что на сервере разрешена работа по протоколу UDP.

  1. Перезапустите сервис 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

Для выгрузки метрик с помощью этого способа:

  1. Установите утилиту collectd-nagios на хост с WAF‑нодой, выполнив одну из следующих команд (для WAF‑ноды, установленной на Linux):

    sudo apt install --no-install-recommends collectd-utils
    
    sudo yum install collectd-utils
    

    Образ Docker

    Образ Docker c WAF‑нодой уже содержит в себе предустановленную утилиту collectd-nagios.

  2. Убедитесь, что у вас есть возможность запускать эту утилиту с повышенными правами либо от имени пользователя суперпользователя (например, root), либо с помощью sudo путем добавления необходимых пользователей в файл sudoers с директивой NOPASSWD.

    Работа с Docker‑контейнером

    При вызове утилиты collectd-nagios из Docker‑контейнера с WAF‑нодой повышение прав не требуется.

  3. Подключите и настройте плагин 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>
    
  4. Перезапустите сервис collectd, выполнив команду, соответствующую операционной системе, на которой установлена WAF‑нода:

    sudo service wallarm-collectd restart
    
    sudo systemctl restart wallarm-collectd.service
    
  5. Получите значения требуемых метрик, выполнив следующую команду:

    /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,

  • почтовые сообщения,

  • собственные скрипты.