20210414 12:00 更新:
实际使用后发现,通过以下方式在新服务器上运行的sentry会继承旧服务器的所有配置,包括DSN在内等等所有,连IP地址也一样,比如旧服务器的DSN为’http://b1708471ae224e44abbfd9d4a2b6e357@10.11.102.1:9000/3’,则新的依旧为这个,即使你的IP已经变了,甚至新建的project的DSN中IP仍旧为旧服务器的IP!!!
所以以下方式不能用来跨服务器备份导入,解决办法还在摸索中
20210414 14:46 更新:
经过几个小时的不懈努力,终于找到解决办法了!!!
首先,通过https://github.com/getsentry/onpremise/issues/184#issuecomment-494289944这条回复,解决了DSN中IP为旧服务器IP的问题
# 在onpremise目录下
>>> vim sentry/config.yml
# 添加如下内容,[ip]替换为你的服务器IP
system.url-prefix: 'http://[ip]:9000'
# 重新build
>>> docker-compose build
# 重新up
>>> docker-compose down
>>> docker-compose up -d
然后,通过https://github.com/getsentry/onpremise/issues/805#issuecomment-761229867这条回复,解决无法接收event的问题
# 在onpremise目录下
>>> vim relay/config.yml
# 添加如下内容,[ip]替换为你的服务器IP
relay:
upstream: "http://[ip]:9000/"
# 重新build
>>> docker-compose build
# 重新up
>>> docker-compose down
>>> docker-compose up -d
最后,通过sentry命令行工具测试以下能不能接收到event
>>> export SENTRY_DSN='http://0c4e3ae4089d4bd1951e926aac9a838c@ip:9000/2'
>>> sentry-cli send-event -m "Hello from Sentry"
20210414 10:00
由于之前部署sentry的服务器资源有限,故需要将其迁移至新的服务器
官方有说明文档,有两种数据备份方式
- 快速备份
使用sentry提供的export命令,备份只包括配置数据,而不包括历史event数据 - 完整备份
将’sentry-'开头的所有容器进行备份,这种备份方式能备份所有历史event数据
由于历史数据没什么用了,我选择快速备份,但在用官方的快速备份命令时,导入过程一直报错
>>> docker-compose run --rm -T web import /home/backup.json
Creating sentry_onpremise_web_run ... done
Usage: sentry import [OPTIONS] SRC
Try 'sentry import --help' for help.
Error: Invalid value for 'SRC': Could not open file: backup.json: No such file or directory
ERROR: 2
导出配置
>>> cd onpremise
>>> docker-compose run --rm -T -e SENTRY_LOG_LEVEL=CRITICAL web export > backup.json
# 将backup.json移动至新服务器
>>> scp backup.json root@xx.xx.xx.xx:/home
导入配置
# 进入新服务器
>>> ssh root@xx.xx.xx.xx
# 将backup.json导入容器中
>>> docker cp /home/backup.json sentry_onpremise_web_1:/home/backup.json
# 进入web所在容器
>>> docker exec -i -t sentry_onpremise_web_1 /bin/bash
# 导入backup.json
>>> sentry import /home/backup.json
# 显示如下内容表示导入成功
00:40:47 [INFO] sentry.plugins.github: apps-not-configured