控制中心版本升级
2.34
介绍
本文档涉及 Paragon Active Assurance Control Center 从版本 2.34 升级到更高版本。
此次升级需要特殊程序,因为它涉及将 Ubuntu 操作系统从 16.04 升级到 18.04。该文档涵盖了两种场景:
- 将 Ubuntu 16.04(安装了控制中心)升级到 Ubuntu 18.04。
- 全新安装 Ubuntu 18.04,然后安装控制中心并将备份数据从旧控制中心实例传输到新实例。
其他升级请参见升级指南。
场景A:Ubuntu 16.04升级到Ubuntu 18.04
- 首先禁用 apache2 和 netrounds-callexecuter 服务: sudo systemctl disable apache2 netrounds-callexecuter
- 停止所有 Paragon Active Assurance 服务: sudo systemctl stop “netrounds-*” apache2 openvpn@netrounds
- 备份 Paragon Active Assurance 产品数据。
笔记: 这是《操作指南》备份产品数据一章中描述的备份过程,只是措辞更为简短。
运行以下命令:
# 备份 PostgreSQL 数据库 pg_dump –help pg_dump -h localhost -U netrounds netrounds > ncc_postgres.sql
# (或者,以二进制格式保存:)
# pg_dump -h localhost -U netrounds -Fc netrounds > ncc_postgres.binary
# 备份 OpenVPN 密钥 sudo tar -czf ncc_openvpn.tar.gz /var/lib/netrounds/openvpn
# 注意:请务必将它们存放在安全的地方。
# 备份RRD files(指标数据)
# 检查 file 压缩 RRD 之前的大小。使用 tar 命令不是
# 如果 RRD 大于 50 GB,则推荐;请参阅下面的注释。杜 -hs /var/lib/netrounds/rrd
sudo tar -czf ncc_rrd.tar.gz /var/lib/netrounds/rrd
笔记: pg_dump 命令将要求输入密码,该密码可以在 /etc/netrounds/netrounds.com 资助者“postgres 数据库”中找到。默认密码是“netrounds”。
笔记: 对于大型设置(> 50 GB),制作 RRD 的 tarball file可能需要太长时间,拍摄卷快照可能是一个更好的主意。执行此操作的可能解决方案包括:使用 file 支持快照的系统,或者如果服务器在虚拟环境中运行,则拍摄虚拟卷的快照。 - 使用提供的脚本 netrounds_2.35_validate_db.sh 检查数据库的完整性。
警告: 如果此脚本输出警告,请勿尝试第 5 页“下面”所述的数据库迁移过程。通过在以下地址提交票证联系瞻博网络支持: https://support.juniper.net/support/requesting-support (提供脚本的输出)以在继续升级之前解决数据库问题。
- 备份控制中心配置 files:
- /etc/apache2/sites-available/netrounds-ssl.conf
- /etc/apache2/sites-available/netrounds.conf
- /etc/netrounds/netrounds.conf
- /etc/netrounds/probe-connect.conf
- /etc/netrounds/restol.conf
- /etc/netrounds/secret_key
- /etc/netrounds/test-agent-gateway.yaml
- /etc/openvpn/netrounds.conf
例如amp乐:
须藤cp /etc/apache2/sites-available/netrounds-ssl.conf /etc/apache2/sites-available/netrounds-ssl.conf.old
- 将 Ubuntu 升级到版本 18.04。典型的升级过程如下(改编自 https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes):
• 在服务器系统上升级:
• 如果尚未安装,请安装update-manager-core。
• 确保 /etc/update-manager/release-upgrades 中的提示行设置为“lts”(以确保
操作系统升级到 18.04,即 16.04 之后的下一个 LTS 版本)。
• 使用命令sudo do-release-upgrade 启动升级工具。
• 按照屏幕上的说明进行操作。就 Paragon Active Assurance 而言,您可以始终保留默认值。 (当然,您可能会因为与 Paragon Active Assurance 无关的原因而需要做出不同的选择。) - Ubuntu 升级后,重新启动系统。然后执行以下步骤:
- 升级 PostgreSQL。
- 更新 PostgreSQL 数据库 file从版本 9.5 到版本 10: sudo pg_dropcluster 10 main –stop # 关闭服务器并完全删除集群#“main”版本 10(这为下一个命令中的升级#做准备) sudo pg_upgradecluster 9.5 main # 升级集群“main”版本9.5至最新#
available version (10) sudo pg_dropcluster 9.5 main # 完全删除集群“main”版本9.5 - 删除过时的 PostgreSQL 版本:
sudo apt purge postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5 - 更新 Paragon Active Assurance 包。
• 计算包含新控制中心版本的 tarball 的校验和,并验证其是否等于下载页面上提供的 SHA256 校验和:sha256sum paa-control-center_${CC_VERSION}.tar.gz
• 解压缩控制中心 tarball:export CC_VERSION= tar -xzf netrounds-control-center_${CC_VERSION}.tar.gz
• 安装新的控制中心软件包: sudo apt update sudo apt install ./netrounds-control-center_${CC_VERSION}/*.deb
• 删除过时的软件包:
笔记: 删除这些软件包至关重要。
# 测试代理精简版支持
sudo apt purge netrounds-agent-login
# 不支持的 jsonfield 包
sudo apt 删除 python-django-jsonfield - 在进行数据库迁移之前,您需要执行一些额外的步骤。转到此知识库文章,向下滚动到“操作”部分(如果已安装该版本),然后执行这些说明中的步骤 1 到 4。
笔记: 此时请勿执行步骤 5。
• 运行数据库迁移:
笔记: 在进行迁移之前,您必须确保第 2 页“上述”所述的数据库完整性检查完成且没有错误。
sudo ncc 迁移
ncc migrate 命令需要相当长的时间才能执行(许多分钟)。它应该打印以下内容(下面省略详细信息):
正在迁移数据库...
要执行的操作:
<…>
无需迁移即可同步应用程序:
<…>
运行迁移:
<…>
创建缓存表...
<…>
正在同步测试脚本...
- (可选)如果需要 ConfD,请更新 ConfD 包: tar -xzf netrounds-confd_${NCC_VERSION}.tar.gz sudo apt install ./netrounds-confd_${NCC_VERSION}\_all.deb
- 比较之前备份的配置 files 与新安装的,并手动合并两组内容 files(它们应该保留在相同的位置)。
- 启用 apache2、kafka 和 netrounds-callexecuter 服务: sudo systemctl enable apache2 kafka netrounds-callexecuter
- 启动 Paragon Active Assurance 服务:
sudo systemctl start –all “netrounds-*” apache2 kafka openvpn@netrounds - 要激活新配置,您还需要运行: sudo systemctl reload apache2
- 安装新的测试代理存储库:
TA_APPLIANCE_VERSION=
TA_APPLICATION_VERSION=
# 对于3.0之前的版本:
# 验证存储库的完整性(响应应该是“OK”)
shasum -c netrounds-test-agent_${TA_APPLIANCE_VERSION}_all.sha256
shasum -c netrounds-test-agent-application_${TA_APPLICATION_VERSION}.sha256.sum
# 对于 3.0 及更高版本:
# 计算存储库的校验和并验证它们是否匹配
# 下载页面提供的 SHA256 校验和 sha256sum paa-test-agent_${TA_APPLIANCE_VERSION}_all.deb sha256sum paa-test-agent-application_${TA_APPLICATION_VERSION}.tar.gz
# 开始安装 sudo apt-get install \ ./netrounds-test-agent_${TA_APPLIANCE_VERSION}_all.deb sudo cp netrounds-test-agent-application_${TA_APPLICATION_VERSION}.tar.gz \ /usr/lib/python2.7 /dist-packages/netrounds/static/test_agent/ - 由于在版本 2.35 中删除了对 Test Agent Lite 的支持,因此如果安装了旧的 Test Agent Lite 软件包,则应删除它们:
sudo rm -rf /usr/lib/python2.7/dist-packages/netrounds/static/test_agent/netrounds-test-agentlite*
笔记: 当您稍后升级到 3.x 时,必须首先运行以下命令:sudo apt-mark unhold python-django python-django-common
场景 B:全新安装 Ubuntu 18.04
- 在 Ubuntu 16.04 实例上,备份 Paragon Active Assurance 产品数据。
笔记: 这是《操作指南》“备份产品数据”一章中描述的备份过程,只是措辞更为简短。
运行以下命令:
# 备份PostgreSQL数据库
pg_dump –help pg_dump -h localhost -U netrounds netrounds > ncc_postgres.sql
# (或者,以二进制格式保存:)
# pg_dump -h localhost -U netrounds -Fc netrounds > ncc_postgres.binary
# 备份 OpenVPN 密钥 sudo tar -czf ncc_openvpn.tar.gz /var/lib/netrounds/openvpn
# 笔记: 请务必将它们存放在安全的地方。
# 备份RRD files(指标数据)
# 检查 file 压缩 RRD 之前的大小。使用 tar 命令不是
# 如果 RRD 大于 50 GB,则推荐;请参阅下面的注释。du -hs /var/lib/netrounds/rrd sudo tar -czf ncc_rrd.tar.gz /var/lib/netrounds/rrd
笔记: pg_dump 命令将要求输入密码,该密码可以在“postgres 数据库”下的 /etc/netrounds/netrounds.conf 中找到。默认密码是“netrounds”。
笔记: 对于大型设置(> 50 GB),制作 RRD 的 tarball file可能需要太长时间,拍摄卷快照可能是一个更好的主意。执行此操作的可能解决方案包括:使用 file 支持快照的系统,或者如果服务器在虚拟环境中运行,则拍摄虚拟卷的快照。 - 在 Ubuntu 16.04 实例上,备份控制中心配置 files:
• /etc/apache2/sites-available/netrounds-ssl.conf
• /etc/apache2/sites-available/netrounds.conf
• /etc/netrounds/netrounds.conf
• /etc/netrounds/probe-connect.conf
• /etc/openvpn/netrounds.conf
例如amp乐:
须藤cp /etc/apache2/sites-available/netrounds-ssl.conf /etc/apache2/sites-available/netrounds-ssl.conf.old
• 在 Ubuntu 16.04 实例上,备份许可证 file.
• 新实例至少需要满足与旧实例相同的硬件要求。
• 在新实例上,安装Ubuntu 18.04。我们推荐以下教程:
• https://ubuntu.com/tutorials/install-ubuntu-server
就 Paragon Active Assurance 而言,您可以始终保留默认值。 (当然,您可能会因为与 Paragon Active Assurance 无关的原因而需要做出不同的选择。)
- 安装 Ubuntu 18.04 后,重新启动系统。
- 建议使用以下磁盘分区,特别是对于快照备份(但由您作为用户决定):
• 建议的实验室设置分区:
• /:整个磁盘,ext4。
• 建议的生产设置分区:
• /:10% 的磁盘空间,ext4。
• /var:10% 的磁盘空间,ext4。
• /var/lib/netrounds/rrd:80% 的磁盘空间,ext4。
• 无加密 - 将时区设置为 UTC,例如amp文件如下: sudo timedatectl set-timezone Etc/UTC
• 将所有区域设置设置为en_US.UTF-8。
• 一种方法是手动编辑 file /etc/default/locale.conf前任amp乐:
LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LANGUAGE=en_US.UTF-8
• 确保 /etc/locale.gen 中未注释掉以下行: en_US.UTF-8 UTF-8
• 重新生成区域设置 file确保所选语言可用: sudo apt-get install locales sudo locale-gen - 确保以下端口上的流量允许进出控制中心:
• 入境:
• TCP 端口 443 (HTTPS): Web 界面
• TCP 端口 80 (HTTP): Web 接口(由 Speedtest 使用,重定向其他 URL到 HTTPS)
• TCP 端口 830:ConfD(可选)
• TCP 端口 6000:Test Agent 设备的加密 OpenVPN 连接
• TCP 端口 6800:加密 Web测试代理应用程序的套接字连接 - 出站:
• TCP 端口 25 (SMTP):邮件传送
• UDP 端口 162 (SNMP):发送警报的 SNMP 陷阱
• UDP 端口 123 (NTP):时间同步 - 安装NTP:
• 首先禁用timedatectl: sudo timedatectl set-ntp no
• 运行此命令:timedatectl 并验证 systemd-timesyncd.service 是否处于活动状态:否
• 现在您可以运行 NTP 安装: sudo apt-get install ntp
• 确保配置的 NTP 服务器可访问:ntpq -np
输出通常应该是用八进制表示的“全1”。 1 377 在输出中,NTP 服务器的“到达”值是一个八进制值,指示最后八个 NTP 事务的结果。如果所有八个都成功,则该值将为八进制 XNUMX(= 二进制 - 安装 PostgreSQL 并为控制中心设置用户: sudo apt-get update sudo apt-get install postgresql sudo -u postgres psql -c “使用加密密码‘netrounds’超级用户登录创建角色 netrounds;” sudo -u postgres psql -c“创建数据库netrounds所有者netrounds编码'UTF8'模板'template0';”
不建议使用外部 PostgreSQL 服务器。
• 安装并配置电子邮件服务器。
• 控制中心将向用户发送电子邮件:
• 当他们被邀请加入帐户时,
• 发送电子邮件警报时(即,如果为此目的使用电子邮件而不是 SNMP),以及
• 发送定期报告时。
• 运行命令 sudo apt-get install postfix
• 对于postfix 可以直接发送到目标电子邮件服务器的简单设置,您可以将邮件配置的常规类型设置为“Internet 站点”,并且系统邮件名称通常可以保留不变。
否则需要根据环境配置postfix。如需指导,请参阅 Ubuntu 官方文档: https://help.ubuntu.com/lts/serverguide/postfix.html.
• 在Ubuntu 18.04 实例上安装控制中心。
此过程还会安装 Paragon Active Assurance REST API。
export CC_VERSION= # 计算 tar 的校验和 file 并验证它是否等于 SHA256 0b11111111)。但是,当您刚刚安装 NTP 时,很可能少于 XNUMX 个 NTP
如果所有交易都已发生,则该值将较小:1、3、7、17、37、77 或 177 之一。
# 下载页面提供的校验和 sha256sum paa-control-center_${CC_VERSION}.tar.gz
# 解压 tarball tar -xzf netrounds-control-center_${CC_VERSION}.tar.gz
# 确保软件包是最新的 sudo apt-get update
# 开始安装 sudo apt-get install ./netrounds-control-center_${CC_VERSION}/*.deb - 停止所有 Paragon Active Assurance 服务: sudo systemctl stop “netrounds-*” apache2 openvpn@netrounds
- 恢复数据库备份: sudo -u postgres psql –set ON_ERROR_STOP=on netrounds < ncc_postgres.sql
- 在进行数据库迁移之前,您需要执行一些额外的步骤。转到此知识库文章,向下滚动到“操作”部分(如果已安装该版本),然后执行这些说明中的步骤 1 到 4。
笔记: 此时请勿执行步骤 5。
• 运行数据库迁移:
笔记: 这是一个敏感命令,在远程计算机上执行它时应小心。在这种情况下,强烈建议您使用 screen 或 tmux 等程序,以便即使 ssh 会话中断,迁移命令也将继续运行。 sudo ncc 迁移
ncc migrate 命令需要相当长的时间才能执行(许多分钟)。它应该打印以下内容(下面省略详细信息):
正在迁移数据库...
要执行的操作:
<…>
无需迁移即可同步应用程序:
<…>
运行迁移:
<…>
创建缓存表...
<…>
正在同步测试脚本...
• 使用scp 或其他工具将备份数据传输到18.04 实例。
• 恢复 OpenVPN 密钥:
# 删除任何现有的 OpenVPN 密钥
sudo rm -rf /var/lib/netrounds/openvpn
# 解压备份密钥 sudo tar -xzf ncc_openvpn.tar.gz -C /
• 恢复RRD 数据:
# 删除任何现有的 RRD sudo rm -rf /var/lib/netrounds/rrd
# 解压备份的 RRD sudo tar -xzf ncc_rrd.tar.gz -C /
• 比较备份的配置 files 与新安装的,并手动合并两组内容 files(它们应该保留在相同的位置)。
• 使用许可证激活产品许可证 file 取自旧实例:ncc license activate ncc_license.txt
• 启动 Paragon Active Assurance 服务: sudo systemctl start –all “netrounds-*” apache2 kafka openvpn@netrounds
• 要激活新配置,您还需要运行:
sudo systemctl 重新加载 apache2
• 安装新的测试代理存储库:
TA_APPLIANCE_VERSION=
TA_APPLICATION_VERSION=
# 对于3.0之前的版本:
# 验证存储库的完整性(响应应为“OK”) shasum -c netrounds-test-agent_${TA_APPLIANCE_VERSION}_all.sha256 shasum -c netrounds-test-agent-application_${TA_APPLICATION_VERSION}.sha256.sum
# 对于 3.0 及更高版本:
# 计算存储库的校验和并验证它们是否匹配
# 下载页面提供的 SHA256 校验和 sha256sum paa-test-agent_${TA_APPLIANCE_VERSION}_all.deb sha256sum paa-test-agent-application_${TA_APPLICATION_VERSION}.tar.gz
# 开始安装 sudo apt-get install \ ./netrounds-test-agent_${TA_APPLIANCE_VERSION}_all.deb sudo cp netrounds-test-agent-application_${TA_APPLICATION_VERSION}.tar.gz \
/usr/lib/python2.7/dist-packages/netrounds/static/test_agent/
• (可选)如果需要,请按照NETCONF 和YANG API 编排指南安装和配置ConfD。
笔记: 当您稍后升级到 3.x 时,必须首先运行以下命令: sudo apt-mark unhold python-django python-django-common
故障排除
启动 ConfD 时出现问题
如果升级后启动 ConfD 时遇到问题,请联系您的瞻博网络合作伙伴或当地的瞻博网络客户经理或销售代表以获得新的订阅。
启动 callexecuter 时出现问题
使用命令检查 callexecuter 日志
sudo Journalctl -xeu netrounds-callexecuter
您可能会看到如下错误:
Jun 03 09:53:27 myhost django-admin[6290]:错误 netrounds.manager.callexecuter 未处理
CallExecuter.run 中的异常 [name=netrounds.manager.callexecuter, thread=140364632504128,
进程=8238,funcName=句柄,le
Jun 03 09:53:27 myhost django-admin[6290]:回溯(最近一次调用):
六月 03 09:53:27 myhost django-admin[6290]: File “debian/tmp/usr/lib/python2.7/dist-packages/
netrounds/manager/management/commands/runcallexecuter.py”,第 65 行,句柄中
六月 03 09:53:27 myhost django-admin[6290]: File “debian/tmp/usr/lib/python2.7/dist-packages/
netrounds/manager/calldispatcher.py”,第 164 行,运行中
六月 03 09:53:27 myhost django-admin[6290]: File “debian/tmp/usr/lib/python2.7/dist-packages/
netrounds/manager/models.py”,第 204 行,等待
六月 03 09:53:27 myhost django-admin[6290]: File “debian/tmp/usr/lib/python2.7/dist-packages/netrounds/manager/models.py”,第 42 行,在 __unicode__ 中
Jun 03 09:53:27 myhost django-admin[6290]:AttributeError:'unicode'对象没有属性'iteritems'
所发生的情况是,在未确保 netrounds-callexecuter systemd 服务已停止并禁用的情况下升级了 netrounds-callexecuter*.deb 软件包。数据库处于错误状态;需要从备份中恢复,并且需要重复升级。执行以下操作来禁用和停止 netrounds-callexecuter 服务: sudo systemctl disable netrounds-callexecuter sudo systemctl stop netrounds-callexecuter
Web 服务器没有响应
使用命令 tail -n 50 /var/log/apache2/netrounds_error.log 检查 apache 日志
如果看到以下错误,则表示 Control Center 版本 2.34 在 Ubuntu 18.04 上运行,即 Control Center 尚未成功升级。解决方案是将控制中心升级到更高版本,如本文档中所述。
# 时间amps、pids 等在下面被剥离
目标 WSGI 脚本“/usr/lib/python2.7/dist-packages/netrounds/wsgi.py”无法作为 Python 模块加载。
处理 WSGI 脚本‘/usr/lib/python2.7/dist-packages/netrounds/wsgi.py’时发生异常。
回溯(最近一次调用最后一次):
File “/usr/lib/python2.7/dist-packages/netrounds/wsgi.py”,第 6 行,在 application = get_wsgi_application() 中
File “/usr/lib/python2.7/dist-packages/django/core/wsgi.py”,第 13 行,在 get_wsgi_application django.setup(set_prefix=False) 中
File “/usr/lib/python2.7/dist-packages/django/__init__.py”,第 27 行,在安装 apps.populate(settings.INSTALLED_APPS) 中
File “/usr/lib/python2.7/dist-packages/django/apps/registry.py”,第 85 行,填充 app_config = AppConfig.create(entry)
File “/usr/lib/python2.7/dist-packages/django/apps/config.py”,第 94 行,在 create module = import_module(entry) 中
File “/usr/lib/python2.7/importlib/__init__.py”,第 37 行,在 import_module __import__(name) 中
File “/usr/lib/python2.7/dist-packages/grappelli/dashboard/__init__.py”,第 1 行, from grappelli.dashboard.dashboards import *
File “/usr/lib/python2.7/dist-packages/grappelli/dashboard/dashboards.py”,第 14 行,来自 grappelli 的。仪表板导入模块
File “/usr/lib/python2.7/dist-packages/grappelli/dashboard/modules.py”,第 9 行,位于 from django.contrib.contenttypes.models import ContentType File “/usr/lib/python2.7/dist-packages/django/contrib/contenttypes/models.py”,第 139 行,在 类 ContentType(models.Model) 中:
File “/usr/lib/python2.7/dist-packages/django/db/models/base.py”,第 110 行,在 __new__ app_config = apps.get_ contains_ app_config(module) File “/usr/lib/python2.7/dist-packages/django/apps/registry.py”,第 247 行,在 get_contained_app_config self.check_apps_ready() 中 File “/usr/lib/python2.7/dist-packages/django/apps/registry.py”,第 125 行,在 check_apps_ready 中引发应用程序注册表未就绪(“应用程序尚未加载。”)
AppRegistryNotReady:应用程序尚未加载。
Paragon Active Assurance 服务重启失败
使用 sudo systemctl start –all “netrounds-*” apache2 openvpn@netrounds 重新启动 netrounds-* 服务会产生以下消息:
无法启动 netrounds-agent-ws-server.service:单元 netrounds-agent-ws-server.service 被屏蔽。
无法启动 netrounds-agent-daemon.service:单元 netrounds-agent-daemon.service 被屏蔽。
这意味着提到的服务在软件包删除过程中已被屏蔽,需要手动清理。清理流程如下图所示:
sudo apt-get purge netrounds-agent-login sudo find /etc/systemd/system -name “netrounds-agent-*.service” -delete sudo systemctl daemon-reload
Juniper Networks、Juniper Networks 徽标、Juniper 和 Junos 是 Juniper Networks, Inc. 在美国和其他国家/地区的注册商标。所有其他商标、服务标记、注册商标或注册服务标记均归其各自所有者所有。Juniper Networks 对本文档中的任何错误不承担任何责任。Juniper Networks 保留更改、修改、转让或以其他方式修订本出版物的权利,恕不另行通知。版权所有 © 2022 Juniper Networks, Inc. 保留所有权利。
文件/资源
![]() |
JUNIPER NETWORKS 升级控制中心版本 [pdf] 用户指南 从版本升级控制中心、从版本升级控制中心、从版本升级中心、从版本升级 |