- Published on
Host your sentry
sentry 私有化部署记录:
centos 7 docker: 20.10.12 docker-compose 1.29.2 pthon3 3.6.8
为啥要部署 sentry? 因为 fundebug 要钱,而且功能不够齐全。
环境准备
- 安装docker 参考:https://docs.docker.com/engine/install/centos/
sudo yum install -y uum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
- 安装 docker-compose 参考:https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
- 安装 python3
sudo yum install epel-release
sudo yum install -y python36
phton3 -version
- 如果内存太小(< 4G),则加大交换区内存或者启用交换区内存
# 分配文件预留空间
sudo fallocate -l 4G /swapfile
# 修改 swapfile 文件权限
sudo chmod 600 /swapfile
# 初始化数据
dd if=/dev/zero of=/swapfile bs=1M count=4096
# 将swapfile初始化为交换文件
sudo mkswap /swapfile
# 启用交换文件
sudo swapon /swapfile
# 配置自动挂载交换分区文件
sudo echo "/swapfile none swap sw 0 0" >> /etc/fstab
# 查看内存详情
free -m
# 卸载交换分区
sudo swapoff /swapfile
安装 sentry
sentry 可以私有化部署,官方部署的脚本在这个仓库中。需要先下载部署脚本到服务器,然后执行其中的 install.sh
cd /work/sentry
# 以sentry 22.3.0 版本为例子
curl https://github.com/getsentry/self-hosted/archive/refs/tags/22.3.0.tar.gz -o sentry.22.3.0.tar.gz
tar -zxvf sentry.22.3.0.tar.gz -C sentry.22.3.0
# 赋予脚本执行权限
# 理论上是 sentry,postgres 这两个文件中的脚本需要
# 但是我这里为了方便,直接赋予 sentry 文件夹下面所有的脚本有执行权限了。
chmod -R 0777 .
如果你的 cpu core < 4, memory < 8G , 可以修改./install/_min-reqirements.sh 中的限制
# Don't forget to update the README and othes docs when you change these!
MIN_DOCKER_VERSION='19.03.6'
MIN_COMPOSE_VERSION='1.28.0'
MIN_RAM_HARD=3600 # MB
MIN_RAM_SOFT=4800 # MB
MIN_CPU_HARD=1
MIN_CPU_SOFT=2
然后执行 install.sh
sudo bash ./install.sh
配置
执行完 install.sh 之后,你的机器就已经有了 sentry 所需要的所有镜像和network了,这时候就可以启动了 sudo docker-compose up -d
如果需要邮件提醒或者邀请成员,那么还需要设置邮件。 以QQ邮件代理为例(其他邮箱同理)
###############
# Mail Server #
###############
# mail.backend: 'smtp' # Use dummy if you want to disable email entirely
mail.host: 'smtp.qq.com' # qq邮箱服务地址
mail.port: 465 # qq邮箱服务端口
mail.username: 'xxxx@qq.com' #
mail.password: 'xxxxx' # 邮箱授权码
# mail.use-tls: false
mail.use-ssl: true # 启用 ssl
# NOTE: The following 2 configs (mail.from and mail.list-namespace) are set
# through SENTRY_MAIL_HOST in sentry.conf.py so remove those first if
# you want your values in this file to be effective!
# The email address to send on behalf of
mail.from: 'xxxx@qq.com'
# The mailing list namespace for emails sent by this Sentry server.
# This should be a domain you own (often the same domain as the domain
# part of the `mail.from` configuration parameter value) or `localhost`.
mail.list-namespace: 'qq.com'
同时还需要注释掉一些环境变量
########
# Mail #
########
# SENTRY_OPTIONS["mail.list-namespace"] = env('SENTRY_MAIL_HOST', 'localhost')
# SENTRY_OPTIONS["mail.from"] = f"sentry@{SENTRY_OPTIONS['mail.list-namespace']}"
此时你就可以执行 docker-compose up -d
来启动 sentry 服务了,启动过程中会要求你先创建一个 admin 账户,记得一定要创建,否则后面可能会报错。
如果你修改了 sentry/config.yml 或者其他文件,想要生效就得重新启动sentry.
docker-compose down
docker-compose up -d
访问
启动后你就可以在 9000 端口访问到你的 sentry 了,这时候就可以用上面的账号登录了。