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

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

Выгрузка метрик напрямую из 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‑нода:

    service collectd restart
    
    systemctl restart collectd
    

Пример

Вы можете ознакомиться с примером выгрузки метрик с помощью плагина Network в InfluxDB с последующей визуализацией метрик в Grafana.

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

Для того, чтобы настроить выгрузку метрик с помощью write‑плагина collectd, обратитесь к документации соответствующего плагина.

Пример

Для получения базовых сведений об использовании write‑плагинов, вы можете ознакомиться с примером выгрузки метрик в Graphite с последующей визуализацией метрик в Grafana.

Выгрузка метрик с помощью утилиты collectd‑nagios

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

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

    apt install --no-install-recommends collectd-utils
    
    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/collectd-unixsock"
        SocketGroup "root"
        SocketPerms "0770"
        DeleteSocket true
    </Plugin>
    
  4. Перезапустите сервис collectd, выполнив команду, соответствующую операционной системе, на которой установлена WAF‑нода:

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

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

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

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