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

Работа с метриками WAF‑ноды в Zabbix

Перейдите в браузере по адресу http://10.0.30.30, чтобы попасть на страницу логина веб‑интерфейса Zabbix. Войдите в веб‑интерфейс, используя стандартные логин (Admin) и пароль (zabbix).

Для мониторинга метрик WAF‑ноды node.example.local выполните следующие действия:

  1. Создайте новый хост. Для этого выполните следующие действия:

    1. Перейдите на вкладку Configuration → Hosts и нажмите не кнопку Create host.
    2. Введите полное доменное имя хоста в поле Host name (node.example.local).
    3. Выберите группу, куда требуется поместить создаваемый хост, в поле Groups (например, можно использовать предопределенную группу «Linux servers»).
    4. Введите IP‑адрес хоста с WAF‑нодой (10.0.30.5) в группе параметров Agent interfaces. Необходимо оставить значение порта по умолчанию (10050).

      Подключение с помощью доменного имени

      При необходимости вы можете настроить использование доменного имени хоста для подключения к Zabbix‑агенту. Для этого измените соответствующие параметры требуемым образом.

    5. Настройте прочие параметры, если это необходимо.

    6. Убедитесь, что поставлена галочка Enabled.
    7. Завершите процесс создания хоста, нажав на кнопку Add.

    Создание хоста Zabbix

  2. Добавьте метрики, мониторинг которых необходимо осуществлять на хосте. Для добавления единичной метрики выполните следующие действия:

    1. Щелкните по имени созданного хоста node.example.local в списке хостов на вкладке Configuration → Hosts.
    2. На открывшейся странице с данными хоста перейдите на вкладку Items и нажмите на кнопку Create item.
    3. Введите имя метрики в поле Name (например, «Вебмониторэкс NGINX Requests»).
    4. Значение параметров Type, Host interface и Type of information оставьте без изменения.
    5. Введите ключевое имя метрики (так, как оно указано в UserParameter= в конфигурации Zabbix‑агента, например, wallarm_nginx-gauge-abnormal) в поле Key.
    6. При необходимости настройте частоту обновления значения метрики и другие требуемые параметры.
    7. Убедитесь, что поставлена галочка Enabled.
    8. Завершите процесс добавления метрики, нажав на кнопку Add.

    Добавление метрики

  3. Настройте визуализацию добавленной метрики. Для этого:

    1. Нажмите на логотип Zabbix в левом верхнем углу веб‑интерфейса, чтобы перейти к дашборду.
    2. Нажмите на кнопку Edit dashboard для того, чтобы внести изменения в дашборд:

      1. Добавьте виджет, нажав на кнопку Add widget.
      2. Выберите требуемый тип виджета (например, «Plain Text») из выпадающего списка Type.
      3. Введите любое подходящее имя в поле Name.
      4. Добавьте необходимую метрику в список Items (созданную ранее «Вебмониторэкс NGINX Attacks»).
      5. Убедитесь, что поставлены галочки Show text as HTML и Dynamic Items.
      6. Завершите процесс добавления виджета, нажав на кнопку Add.

      Добавление виджета с метрикой

    3. Сохраните внесенные в дашборд изменения, нажав на кнопку Save changes.

  4. Проверьте работу мониторинга:

    1. Убедитесь, что текущее количество запросов в виджете Zabbix совпадает с выводом wallarm-status на WAF‑ноде:

      1. Используйте команду curl http://127.0.0.8/wallarm-status, если используются настройки WAF‑ноды по умолчанию.
      2. Если мониторинг настроен иначе, см. файл конфигурации /etc/nginx/conf.d/wallarm-status.conf.
        Вывод команды будет аналогичен выводу ниже:
        ```
        {"requests":0,"attacks":0,"blocked":0,"abnormal":0,"tnt_errors":0,"api_errors":0,"requests_lost":0,"segfaults":0,"memfaults":0,"softmemfaults":0,"time_detect":0,"db_id":46,"custom_ruleset_id":4,"proton_instances": { "total":2,"success":2,"fallback":0,"failed":0 },"stalled_workers_count":0,"stalled_workers":[] }
        ```
        

      Просмотр значения метрики

    2. Выполните тестовую атаку на приложение, защищенное WAF‑нодой. Для этого можно выполнить команду curl с вредоносным запросом к приложению или выполнить этот запрос в браузере.

      Пример

      curl -I “http://node.example.local/?id='or+1=1--a-<script>prompt(1)</script>'”
      
    3. Убедитесь, что счетчик запросов увеличился как в выводе wallarm-status, так и в виджете Zabbix:

      {"requests":64,"attacks":16,"blocked":0,"abnormal":64,"tnt_errors":0,"api_errors":0,"requests_lost":0,"segfaults":0,"memfaults":0,"softmemfaults":0,"time_detect":0,"db_id":46,"custom_ruleset_id":4,"proton_instances": { "total":2,"success":2,"fallback":0,"failed":0 },"stalled_workers_count":0,"stalled_workers":[] }
      

Теперь в дашборде Zabbix отображаются значения метрики curl_json-wallarm_nginx/gauge-abnormal WAF‑ноды node.example.local.