【Sentry运维】基于Docker部署的Sentry数据备份与导入以及问题修复

32 篇文章 1 订阅
9 篇文章 1 订阅

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

在这里插入图片描述
参考:
https://blog.csdn.net/leirace/article/details/90975960

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在群晖Docker部署Sentry的步骤: 1. 在Docker中搜索Sentry镜像并下载。 2. 创建一个Docker容器并将Sentry镜像安装在其中。在创建容器时,需要将主机的/dev目录挂载到容器的/dev目录中,以便容器可以访问主机上的USB设备。 3. 配置Sentry。可以通过编辑配置文件或使用Sentry的Web界面来完成配置。 4. 启动Sentry容器并访问Web界面。 下面是具体的步骤: 1. 打开Docker并搜索Sentry镜像。可以在Docker的“映像”选项卡中搜索Sentry。 2. 创建一个Docker容器并将Sentry镜像安装在其中。在创建容器时,需要将主机的/dev目录挂载到容器的/dev目录中,以便容器可以访问主机上的USB设备。可以使用以下命令创建容器: ```shell docker run -d --name sentry -p 9000:9000 --restart always -v /dev:/dev sentry ``` 这将创建一个名为“sentry”的容器,并将Sentry镜像安装在其中。容器将在端口9000上运行,并且将主机的/dev目录挂载到容器的/dev目录中。 3. 配置Sentry。可以通过编辑配置文件或使用Sentry的Web界面来完成配置。可以使用以下命令进入容器: ```shell docker exec -it sentry bash ``` 然后可以编辑配置文件或使用Sentry的Web界面来完成配置。 4. 启动Sentry容器并访问Web界面。可以使用以下命令启动容器: ```shell docker start sentry ``` 然后可以在Web浏览器中访问Sentry的Web界面,地址为:http://<主机IP地址>:9000。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值