部署到 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,否则 OpenReplay 后端服务根本无法启动。因此,我们建议至少使用n2-standard-2(或同等配置——请注意e2-standard-2已知在部署过程中会出现问题),这对于低/中等流量来说已经足够。如果你预期会有高流量,则应在此基础上进行扩展。 - 将启动盘更改为 Ubuntu 20.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 才能运行。这是必需的,否则跟踪器根本不会开始记录。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 服务提供商),并创建一个指向该负载均衡器 IP 的 A Record(该 IP 可在 Load Balancing 控制台中找到)。
最后,通过取消注释 /var/lib/openreplay/vars.yaml 中 ingress-nginx 部分下的以下行,来启用 use-forwarded-headers:
ingress-nginx: &ingress-nginx
controller:
config:
use-forwarded-headers: true
现在一切就绪,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)来创建账户。