用 Docker 部署 Sentry Bug 日志收集服务
Sentry 是一个日志收集和统计平台, 由客户端和服务端组成,目前支持大部分主流的编程语言,并提供 SDK,当程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个 Web 端显示。
下面演示如何使用 Docker 快速部署 Sentry 服务,并自定义一些配置。
系统环境
>> uname -a
Linux sentry 4.18.0-1018-azure #18~18.04.1-Ubuntu SMP Tue May 7 18:09:35 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
安装 Docker
>> sudo apt install docker.io
>> sudo apt install docker-compose
>> docker -v
Docker version 18.09.2, build 6247962
部署 Docker 服务
Clone 代码
>> git clone https://github.com/getsentry/onpremise.git
>> cd onpremise
挂载本地路径
为了方便数据迁移,挂载本地路径到 Docker 镜像
mkdir sentry-data
: 创建 Sentry 数据文件目录mkdir sentry-postgres
: 创建 Sentry 数据库目录config.yml
: Sentry 用户自定义配置文件
配置邮箱与域名前缀
这里需要同时改动两个文件,config.yml
和 docker-compose.yml
配置 config.yml
mail.backend: 'smtp' # Use dummy if you want to disable email entirely
mail.host: 'smtp.exmail.qq.com'
mail.port: 587
mail.username: 'name@email.com'
mail.password: 'yourpassword'
mail.use-tls: true
mail.from: 'name@email.com'
system.url-prefix: 'http://your_domain.com'
配置 docker-compose.yml
x-defaults: &defaults
restart: unless-stopped
build: .
depends_on:
- redis
- postgres
- memcached
- smtp
env_file: .env
environment:
SENTRY_MEMCACHED_HOST: memcached
SENTRY_REDIS_HOST: redis
SENTRY_POSTGRES_HOST: postgres
SENTRY_SERVER_EMAIL: 'name@email.com'
SENTRY_EMAIL_HOST: 'smtp.exmail.qq.com'
SENTRY_EMAIL_PORT: 587
SENTRY_EMAIL_USER: 'name@email.com'
SENTRY_EMAIL_PASSWORD: 'yourpassword'
SENTRY_EMAIL_USE_TLS: 'true'
SENTRY_URL_PREFIX: 'http://your_domain.com'
注意
- 邮箱端口: 腾讯企业邮箱的设置 SMTP 的端口是 465,但 sentry 只支持 tls 而,所以使能
tls
并将端口改587。 - 腾讯企业邮箱
mail.from
必须要和mail.username
一致。
启动 Docker 服务
参考官方文档
cp -n .env.example .env
创建环境配置文件docker-compose build
构建 Docker 服务docker-compose run --rm web config generate-secret-key
生成密钥,并将密钥添加至.env
docker-compose run --rm web upgrade
,构建数据库,过程中需要输入管理员信息docker-compose up -d
在后台启动,docker-compose.yml
默认端口为 9000- 浏览器打开 http://localhost:9000,部署成功。