部署到 Google Cloud
OpenReplay 技术栈可以安装在单台机器上,而 Google Cloud 是一个理想的选择。
启动虚拟机
Section titled 启动虚拟机- 进入 ‘Compute Engine’ 控制台,并在左侧菜单栏中选择 ‘VM Instances’
- 点击 ‘Create Instance’
- 选择你偏好的 ‘region’ 和 ‘zone’
- 选择你的机器类型。最低配置要求为
2 vCPUs, 8 GB of RAM, 50 GB of storage,并基于 x86 架构,否则 OpenReplay 后端服务根本无法启动。因此,我们建议至少使用n2-standard-2(或同等配置——请注意,已知e2-standard-2在部署期间会出现问题),它足以应对低/中等流量。如果你预期会有高流量,则应在此基础上进行扩展。 - 将你的启动盘更改为 Ubuntu 24.04 LTS 或更高版本,然后选择 SSD persistent disk 作为启动盘类型,并将大小设置为 50 GB。
- 在 Firewall 中同时勾选 ‘Allow HTTP traffic’ 和 ‘Allow HTTPS traffic’
- 点击 ‘Create’
部署 OpenReplay
Section titled 部署 OpenReplay当你的实例处于 Running 状态后,点击 SSH 按钮连接到该实例,然后通过提供其将运行的域名来安装 OpenReplay(例如 DOMAIN_NAME=openreplay.mycompany.com):
sudo wget https://raw.githubusercontent.com/openreplay/openreplay/main/scripts/helmcharts/openreplay-cli -O /bin/openreplay
sudo chmod +x /bin/openreplay
openreplay -i DOMAIN_NAME
配置 TLS/SSL
Section titled 配置 TLS/SSLOpenReplay 处理敏感的用户数据,因此需要 HTTPS 才能运行。这是强制性的,否则 tracker 根本不会开始录制。dashboard 也是如此,没有 HTTPS,你将无法回放用户会话。
在 Google Cloud 中处理 SSL 最简单的方法是设置一个负载均衡器(Google Load Balancing),并让 OpenReplay 在其后面运行。另一种选择是生成或使用你自己的 SSL 证书,并将你的子域名(即 openreplay.mycompany.com)指向 OpenReplay 实例。以下将详细介绍这两种选择。
设置 Google 负载均衡器(选项 1)
Section titled 设置 Google 负载均衡器(选项 1)第一步是添加一个实例组,稍后负载均衡器会需要它:
- 进入 ‘Compute Engine’ > ‘Instance Groups’
- ‘Create Instance Group’ 并选择 New unmanaged instance group
- 选择你偏好的 ‘Location’,然后选择 ‘Network’ 并选择 OpenReplay 虚拟机实例
- 点击 ‘Create’
现在该创建负载均衡器了:
- 进入 ‘Network Services’ > ‘Load Balancing’
- ‘Create Load Balancer’ 并选择 HTTP(S) Load Balancing
- 选择 ‘From Internet to my VMs’,然后点击 ‘Continue’
- 从 ‘Backend configuration’ 开始,点击 ‘Backend services’ > ‘Create a backend service’
- 为 ‘Backend type’ 选择 Instance group。在 ‘Backends’ > ‘New backend’ 中,选择你之前创建的实例组,将端口设置为
80,然后点击 ‘Done’。 - 向下滚动到 ‘Health Check’ 并 ‘Create a health check’。为 ‘Protocol’ 选择 HTTP,将 ‘Port’ 设置为
80,然后将 ‘Request path’ 更改为/healthz。保留其他默认值,然后点击 ‘Save’。 - 点击 ‘Create’
- 在 ‘Frontend configuration’ 中,为 ‘Protocol’ 选择 HTTPS,然后在 ‘Certificate’ 中创建一个新证书(由 Google 管理)或使用你自己的证书。点击 ‘Done’。
- 检查后点击 ‘Create’
创建完成后,进入 Cloud DNS(或你的 DNS 服务提供商),并创建一条 A Record,使用负载均衡器的 IP(可在 Load Balancing 控制台中找到)指向它。
现在一切就绪,OpenReplay 应该可以在你刚刚设置的子域名上安全访问。你可以通过访问 /signup 页面(即 openreplay.mycompany.com/signup)来创建账户。
提供/生成你的 SSL 证书(选项 2)
Section titled 提供/生成你的 SSL 证书(选项 2)作为创建负载均衡器的替代方案,你可以提供(或生成)你自己的 SSL 证书。
-
首先,进入 Cloud DNS(或你的其他 DNS 服务提供商),并创建一条
A Record。使用你之前在安装步骤中提供的域名,并使用虚拟机的公网 IP(可在 Compute Engine 控制台中找到)将其指向该虚拟机。 -
如果你要提供自己的证书,请使用以下命令创建一个 SSL secret:
kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt"。
注意: 如果你没有证书,请使用 Let’s Encrypt 为你的子域名(安装期间提供的那个)生成一个可自动续期的证书。只需连接到 OpenReplay 实例,运行
cd /var/lib/openreplay/openreplay/scripts/helmcharts && bash certmanager.sh并按照步骤操作即可。
- 如果你希望启用 http 到 https 的重定向(推荐),请取消注释
/var/lib/openreplay/vars.yaml中ingress-nginx部分下的以下代码块:
ingress-nginx: &ingress-nginx
controller:
config:
ssl-redirect: true
force-ssl-redirect: true
值得一提的是,我们的 ingress-nginx 默认运行在 80|443 端口上,但如有需要,可以在 vars.yaml 中轻松更改:
ingress-nginx: &ingress-nginx
controller:
service:
ports:
http: 80
https: 443
- 最后,重新安装 OpenReplay NGINX:
openreplay -R
现在一切就绪,OpenReplay 应该可以在你的子域名上访问。你可以通过访问 /signup 页面(即 openreplay.mycompany.com/signup)来创建账户。