Upgrade Notes 23.02-23.05
backup
Выполните резервное копирование базы данных до начала обновления!
Алгоритм обновления
- Полная остановка всех сервисов webitel
- Обновление Debian Linux и обновление приложений Webitel до v23.05
- Миграция базы данных с версии PostgreSQL 14 на 15
- Миграция базы данных с версии Webitel v23.02 на v23.05 (2 разных варианта)
- Перезапуск всех сервисов после обновления до Webitel v23.05
Полная остановка всех сервисов webitel:
systemctl stop webitel-api webitel-app webitel-uac messages-bot messages-srv \ engine call_center storage flow_manager rabbitmq-server consul \ freeswitch ngcp-rtpengine-daemon opensips grafana-server nginx
Обновление Debian Linux и обновление приложений Webitel до v23.05. Вам необходимо запросить доступ к репозиториям с Webitel у вашего менеджера.
WBTU=webitel_repo_user WBTP=webitel_repo_password wget --http-user=$WBTU --http-password=$WBTP -O /usr/share/keyrings/webitel-repo.gpg http://deb.webitel.com/webitel-repo.gpg echo "machine http://deb.webitel.com login $WBTU password $WBTP" > /etc/apt/auth.conf.d/webitel.conf echo "deb [signed-by=/usr/share/keyrings/webitel-repo.gpg] http://deb.webitel.com/debian `lsb_release -sc` main" > /etc/apt/sources.list.d/webitel.list echo "deb [signed-by=/usr/share/keyrings/webitel-repo.gpg] http://deb.webitel.com/debian `lsb_release -sc` 23.05-releases" >> /etc/apt/sources.list.d/webitel.list echo "deb https://deb.sipwise.com/spce/mr11.3.1 bullseye main" > /etc/apt/sources.list.d/rtpengine.list wget https://deb.sipwise.com/spce/ngcp-keyring-latest.deb && \ sudo dpkg -i ngcp-keyring-latest.deb && \ rm ngcp-keyring-latest.deb apt purge webitel-www apt update && apt upgrade
Миграция базы данных с версии PostgreSQL 14 на 15
sudo -u postgres psql webitel -qxc "ALTER EXTENSION timescaledb UPDATE;" apt install postgresql-15 webitel-postgresql-15 timescaledb-2-postgresql-15 timescaledb-tune --quiet --yes systemctl stop postgresql su postgres cd /tmp /usr/lib/postgresql/15/bin/pg_upgrade \ --old-datadir "/etc/postgresql/14/main" \ --new-datadir "/etc/postgresql/15/main" \ --old-bindir "/usr/lib/postgresql/14/bin" \ --new-bindir "/usr/lib/postgresql/15/bin" exit
Проверьте конфигурационные файлы нового PostgreSQL. Только после проверки, можете приступать к удалению старой и запуску новой версии PostgreSQL:
apt purge postgresql-14 webitel-postgresql-14 timescaledb-2-postgresql-14 systemctl restart postgresql sudo -u postgres /usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages
Миграция базы данных с версии Webitel v23.02 на v23.05
В данном релизе были внесены изменения в тип данных таблицы истории.
Если у вас больше 1 млн. звонков в истории, рекомендуем включить hypertable для статистики звонков. Обратите внимание, что необходимо будет наличие на диске с базой данных свободного места не меньше чем текущий размер базы данных.
- Миграция базы данных с версии Webitel v23.02 на v23.05 с небольшим количеством архивных звонков (около 500 тыс.)
su postgres cd ~ wget https://git.webitel.com/projects/WEP/repos/postgres/raw/migration/23.02-23.05.sql psql webitel -f 23.02-23.05.sql rm 23.02-23.05.sql exit
- Миграция базы данных с версии Webitel v23.02 на v23.05 с большим количеством архивных звонков (1 млн. и больше)
su postgres cd ~ # Выносим текущую статистику в отдельную таблицу wget https://git.webitel.com/projects/WEP/repos/postgres/raw/migration/23.02-23.05/1.save_call_history.sql psql webitel -f 1.save_call_history.sql # Миграция схемы базы данных на версию 23.05 wget https://git.webitel.com/projects/WEP/repos/postgres/raw/migration/23.02-23.05.sql psql webitel -f 23.02-23.05.sql # Включаем поддержку hypertable для статистики звонков wget https://git.webitel.com/projects/WEP/repos/postgres/raw/migration/23.02-23.05/2.hypertable.sql psql webitel -f 2.hypertable.sql rm 23.02-23.05.sql 1.save_call_history.sql 2.hypertable.sql exit
Вы можете продолжить процесс обновления. Старую статистику будем переносить после завершения обновления.
Обновите либо сведите конфигурационный файл nginx (если он был изменен вручную):
apt install webitel-auth-app webitel-admin-app webitel-agent-workspace webitel-supervisor-workspace \ webitel-flow-diagram webitel-history webitel-audit-app webitel-web-widget curl https://git.webitel.com/projects/WEP/repos/nginx/raw/default \ -o /etc/nginx/sites-available/default.orig vimdiff /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default.orig nginx -t
Перезапуск всех сервисов после обновления до Webitel v23.05
systemctl restart consul systemctl restart postgresql systemctl restart rabbitmq-server systemctl restart webitel-app webitel-uac webitel-api engine \ messages-srv flow_manager messages-bot call_center storage \ freeswitch ngcp-rtpengine-daemon opensips grafana-server nginx
После завершения процесса обновления, если у вас большая статистика и вы обновлялись с включением hypertable, тогда можете запустить процесс переноса старой статитики:
su postgres cd ~ # Перенос старых звонков wget https://git.webitel.com/projects/WEP/repos/postgres/raw/migration/23.02-23.05/3.migrate_calls.sql psql webitel -f 3.migrate_calls.sql # Каждый запуск скрипта переносит данные за 1 месяц. Запускаем до тех пор, пока скрипт не вернет 0. # После того, как вы убедились, что все старые данные доступны из интерфейса History, а скрипт возвращает 0, удаляем временную таблицу psql -c "DROP table call_center.cc_calls_history_old;" rm 3.migrate_calls.sql exit