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

Обновление NGINX-модулей Вебмониторэкс

Инструкция описывает способ обновления NGINX‑модулей Вебмониторэкс версии 4.x до версии 5.0. Используйте этот способ, если нода установлена по следующим инструкциям:

Требования

  • Доступ к аккаунту с ролью Администратор в Консоли управления Вебмониторэкс

  • Доступ виртуальной машины к Вебмониторэкс API по адресу api.webmonitorx.ru. Убедитесь, что доступ не ограничен файерволом

  • Доступ к репозиториям Вебмониторэкс https://wmx-public.gitlab.yandexcloud.net:5050

Порядок обновления

  • Если модули WAF‑ноды и постаналитики установлены на одном сервере, выполните шаги ниже.

  • Если модули WAF‑ноды и постаналитики установлены на разные серверы, сначала обновите модуль постаналитики, затем выполните шаги ниже для модуля WAF‑ноды.

Шаг 1: Обновите NGINX до последней стабильной версии

Обновите NGINX до последней стабильной версии, используя подходящую инструкцию:

DEB-дистрибутивы:

sudo apt update
sudo apt install nginx

RPM-дистрибутивы:

sudo yum update 
sudo yum install nginx

Если NGINX установлен из репозитория ОС, пропустите этот шаг. Версия NGINX будет обновлена позже вместе с модулями Вебмониторэкс.

Если в вашей инфраструктуре необходимо использовать другую версию NGINX, пожалуйста, напишите в техническую поддержку Вебмониторэкс для сборки модуля WAF для кастомной версии NGINX.

Шаг 2: Подключите новый репозиторий Вебмониторэкс WAF

Отключите предыдущий репозиторий Вебмониторэкс WAF и подключите новый, используя команды для подходящей платформы.

AlmaLinux, Rocky Linux или Oracle Linux 8.x

sudo yum remove -y webmonitorx-node-repo
sudo yum clean all
sudo tee /etc/yum.repos.d/webmonitorx-node.repo <<EOF
[webmonitorx-node_5.0]
name=Webmonitorx Node - 5.0
baseurl=https://repo.webmonitorx.ru/centos/webmonitorx-node/8/5.0/\$basearch
enabled=1
gpgcheck=0
repo_gpgcheck=1
gpgkey=https://repo.webmonitorx.ru/wmx.gpg
EOF

Debian и Ubuntu

  1. Удалите устаревший файл репозитория 4.x:

    sudo rm -f /etc/apt/sources.list.d/wallarm.list
    
  2. Импортируйте новый GPG-ключ безопасности:

    curl -fsSL https://repo.webmonitorx.ru/wmx.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/wmx-archive-keyring.gpg > /dev/null
    
  3. Подключите новый репозиторий версии 5.0:

    echo "deb [signed-by=/usr/share/keyrings/wmx-archive-keyring.gpg] https://repo.webmonitorx.ru/debian/webmonitorx-node bullseye/5.0/" | sudo tee /etc/apt/sources.list.d/wmx.list
    
    echo "deb [signed-by=/usr/share/keyrings/wmx-archive-keyring.gpg] https://repo.webmonitorx.ru/ubuntu/webmonitorx-node bionic/5.0/" | sudo tee /etc/apt/sources.list.d/wmx.list
    
    echo "deb [signed-by=/usr/share/keyrings/wmx-archive-keyring.gpg] https://repo.webmonitorx.ru/ubuntu/webmonitorx-node focal/5.0/" | sudo tee /etc/apt/sources.list.d/wmx.list
    
    echo "deb [signed-by=/usr/share/keyrings/wmx-archive-keyring.gpg] https://repo.webmonitorx.ru/ubuntu/webmonitorx-node jammy/5.0/" | sudo tee /etc/apt/sources.list.d/wmx.list
    

Шаг 3: Остановите старые службы Вебмониторэкс

Перед переходом на новую архитектуру остановите все работающие службы версии 4.x. Это предотвратит конфликты блокировки баз данных и файлов.

sudo systemctl stop wallarm wallarm-tarantool wallarm-appstructure collectd wallarm-collectd

Удалите старые системные задачи планировщика (в 5.0 их заменил единый процесс supervisord) и сбросьте конфигурацию демона:

sudo rm -f /etc/cron.d/wallarm*
sudo systemctl reload cron     
sudo pkill -f "wallarm-common" || true     
sudo pkill -f "syncnode|sync-ip-lists" || true
sudo systemctl reload crond     
sudo pkill -f "wallarm-common" || true     
sudo pkill -f "syncnode|sync-ip-lists" || true

Шаг 4: Обновите пакеты Вебмониторэкс WAF

Имена пакетов в версии 5.0 изменились. Выполните явную установку новых пакетов wnode и модуля NGINX. Пакетный менеджер автоматически заменит ими старые компоненты.

sudo apt update     
sudo apt install nginx wnode nginx-module-wnode     
sudo apt autoremove -y --purge
sudo apt update     
sudo apt install wnode libnginx-mod-http-wnode     
sudo apt autoremove -y --purge
sudo yum makecache     
sudo yum install nginx wnode nginx-module-wnode     
sudo yum autoremove -y
sudo yum makecache
sudo yum install wnode nginx-mod-http-wnode
sudo yum autoremove -y

Очистите устаревшие конфигурации загрузки модулей во избежание конфликтов NGINX:

sudo rm -f /usr/share/nginx/modules/mod-http-wallarm.conf
sudo rm -f /etc/nginx/modules-available/mod-http-wallarm.conf
sudo rm -f /etc/nginx/modules-enabled/50-mod-http-wallarm.conf

Шаг 5: Обновите конфигурацию загрузки модуля NGINX (кроме NGINX из ОС)

NGINX из репозитория ОС (distro-nginx)

Пропустите этот шаг для NGINX из репозитория ОС. Если вы используете NGINX из стандартного дистрибутива операционной системы, новый модуль подключится автоматически.

Для NGINX stable имя динамического модуля изменилось. Откройте конфигурационный файл /etc/nginx/nginx.conf и замените директиву load_module:

Было:

load_module modules/ngx_http_wallarm_module.so;

Стало:

load_module modules/ngx_http_wnode_module.so;

Шаг 6: Зарегистрируйте ноду заново

После перехода на единую архитектуру (все компоненты теперь хранятся в /opt/wallarm) необходимо заново создать конфигурационный файл node.yaml и выполнить синхронизацию баз данных с облаком.

Выполните команду с вашим токеном ноды:

sudo -u wallarm /opt/wallarm/usr/share/wallarm-common/register-node -t <ВАШ_ТОКЕН> -H api.webmonitorx.ru

Шаг 7: Перезапустите NGINX и службы Вебмониторэкс

В версии 5.0 все процессы управляются единым сервисом wallarm.

sudo systemctl restart wallarm
sudo systemctl restart nginx