OpenReplay 管理
CLI 有助于管理 OpenReplay 实例的基本方面,例如重启或重新安装服务、访问组件的日志,或者只是检查后端服务的状态。
使用 -h 选项运行 CLI:
openreplay -h
并查看所有可用选项的列表:
___ ____ _
/ _ \ _ __ ___ _ __ | _ \ ___ _ __ | | __ _ _ _
| | | | '_ \ / _ \ '_ \| |_) / _ \ '_ \| |/ _` | | | |
| |_| | |_) | __/ | | | _ < __/ |_) | | (_| | |_| |
\___/| .__/ \___|_| |_|_| \_\___| .__/|_|\__,_|\__, |
|_| |_| |___/
[INFO]
Usage: openreplay [ -h | --help ]
[ -s | --status ]
[ -i | --install DOMAIN_NAME ]
[ -u | --upgrade ]
[ -U | --deprecated-upgrade /path/to/old_vars.yaml]
[ -r | --restart ]
[ -R | --Reload ]
[ -c | --cleanup N (in days) ]
[ -e | --edit ]
[ -p | --install-packages ]
[ -l | --logs SERVICE ]
Services: alerts assets assist chalice
db ender frontend heuristics
http integrations nginx-controller
peers sink sourcemapreader storage
OpenReplay 后端依赖以下组件/服务:
| 服务 | 描述 |
|---|---|
| http | 摄取事件和会话录制 |
| sink | 从流式管道(企业版为 Redis 或 Kafka)读取数据并插入到临时存储(NFS) |
| storage | 将临时会话录制文件移动到对象存储服务 |
| assets | 用于缓存资源(CSS、字体和图标)以正确渲染录制内容 |
| db | 读取和写入各种数据库(企业版为 Postgres + ClickHouse) |
| ender | 在用户会话处于非活动状态或断开连接时终止会话 |
| chalice | 为前端提供服务的 API |
| alerts | 当任何性能指标达到用户设置的阈值时发送通知(电子邮件、slack、应用内、webhook) |
| integrations | 从受支持的第三方 API(Sentry、Elastic、GitHub、Jira 等)推送和拉取数据 |
- 检查 OpenReplay 的健康状态
openreplay -s
- 检查服务日志
openreplay -l <service name>
增加服务容量
Section titled 增加服务容量可以通过覆盖默认的 cpu/内存分配值来增加任何服务的容量。后者在安装过程中根据您的实例容量确定,应该能满足大多数安装的需求。
如果您的流量很大且机器配置很高,只需运行 openreplay -e 文件并覆盖服务的资源。在下面的示例中,我们针对 http worker 进行操作。但这可以对任何服务(即 sink、storage、postgresql、redis 等)进行,方法是取消注释并更新下面的代码块。如果您需要为多个服务执行此操作,只需复制并重命名/更新相同的代码块(注意重复)。
http:
resources:
limits:
cpu: 4096m
memory: 8192Mi
requests:
cpu: 1024m
memory: 2056Mi
最后,重新安装该服务以使新的限制生效(您的数据不会丢失):
openreplay -R
升级 PostgreSQL
Section titled 升级 PostgreSQL以下是将 PostgreSQL 升级到 1.16 或更高版本的说明:
-
在持久卷中创建数据库转储:
如果您使用的是标准安装,请执行以下命令来创建数据库转储:
注意:您可以预期数据将以 3:1 的比例被压缩(例如:如果您有 15G 的 postgres 数据,那么在转储中将为 5G)。因此请确保您有足够的磁盘空间。
kubectl -n db exec -it postgresql-0 -- /bin/bash -c 'PGPASSWORD=$POSTGRES_PASSWORD PGUSER=postgres pg_dumpall -v > /bitnami/postgresql/dumpall.sql' -
删除现有的数据目录:
kubectl -n db exec -it postgresql-0 -- /bin/bash -c 'rm -rf /bitnami/postgresql/data' -
将 PostgreSQL StatefulSet 缩放为零以停止当前的 pod:
kubectl scale sts postgresql --replicas=0 -n db -
将 PostgreSQL 镜像更新到 16.3.0 或更高版本:
kubectl set image statefulset/postgresql postgresql=bitnamilegacy/postgresql:16.3.0-debian-12-r9 -n db -
将 StatefulSet 缩放回一个以启动更新后的 pod:
kubectl scale sts postgresql --replicas=1 -n db -
确保 pod 正在运行且缩放操作已完成:
kubectl get pod -n db -l app.kubernetes.io/name=postgresql -
从转储中恢复数据库:
kubectl -n db exec -it postgresql-0 -- /bin/bash -c 'PGPASSWORD=$POSTGRES_PASSWORD PGUSER=postgres psql -f /bitnami/postgresql/dumpall.sql' -
升级完成后,您可以从 PostgreSQL pod 中删除转储文件:
kubectl -n db exec -it postgresql-0 -- /bin/bash -c 'rm /bitnami/postgresql/dumpall.sql'
卸载 OpenReplay
Section titled 卸载 OpenReplay运行以下命令来卸载 OpenReplay:
sudo k3s-uninstall.sh
所有配置都存储在 /var/lib/openreplay/ 中。
sudo rm -rf /var/lib/openreplay