ubuntu18.04 docker部署sentry服务
一、介绍
- Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。它主要专注于持续集成、提高效率并且提升用户体验。Sentry 分为服务端和客户端 SDK,前者可以直接使用它家提供的在线服务,也可以本地自行搭建;后者提供了对多种主流语言和框架的支持,包括 React、Angular、Node、Django、RoR、PHP、Laravel、Android、.NET、JAVA 等。同时它可提供了和其他流行服务集成的方案,例如 GitHub、GitLab、bitbuck、heroku、slack、Trello 等。目前公司的项目也都在逐步应用上 Sentry 进行错误日志管理
二、环境准备
- 添加豆瓣的pip源
mkdir .pip
tee ~/.pip/pip.conf <<-'EOF'
[install]
use-mirrors = true
mirrors = http://b.pypi.python.org
[global]
index-url = http://pypi.douban.com/simple/
trusted-host = pypi.douban.com
EOF
- 添加docker镜像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://1nj0zren.mirror.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com"
]
}
EOF
sudo service docker restart
三、根据官方安装docket-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.4/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
$ docker-compose --version
docker-compose version 1.25.4, build 8d51620a
四、安装Sentry服务
- Sentry 本身是基于 Django 开发的,使用到zookeepe,kafka,Postgresql、 Redis、Smtp等组件,两种途径进行安装:通过 Docker 或用 Python 搭建。官网下分别有以下的两个介绍:
Python搭建:https://docs.sentry.io/error-reporting/quickstart/?platform=javascript
docker-compose:https://docs.sentry.io/server/installation/
- 使用Python安装可以参考之前文章
- 官方推荐使用docker-compose安装
git clone https://github.com/getsentry/onpremise.git
cd onpremise
./install.sh
- 文件说明

install.sh:执行文件
docker-compose:全局配置和docker服务配置
config.example.yml和sentry.conf.example.py:两个默认的配置文件
config.yml和sentry.conf.py:执行后从默认例子文件copy过来的,你可以根据你自己需要的配置这两个文件
config.yml:记录运行sentry服务全局配置,包括邮件服务、系统设置、文件存储等
sentry.conf.py:记录运行Django的web服务配置,包括:数据库配置、Redis配置、RabbitMQ、端口配置等
- 拉取docker镜像

- 创建超级用户,填写邮箱地址和密码
- 启动Sentry服务
docker-compose up -d
- 查询服务运行状态

- 修改配置,重启Sentry服务
# 停止,建议使用stop,down会删除掉镜像,重启后镜像ID会变
docker-compose stop
# docker-compose down
# 启动
docker-compose up -d

五、nginx服务配置
server {
listen 80;
server_name sentry.example.com;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_redirect off;
# keepalive + raven.js is a disaster
keepalive_timeout 0;
# use very aggressive timeouts
proxy_read_timeout 5s;
proxy_send_timeout 5s;
send_timeout 5s;
resolver_timeout 5s;
client_body_timeout 5s;
# buffer larger messages
client_max_body_size 5m;
client_body_buffer_size 100k;
location / {
proxy_pass http://localhost:9000;
add_header Strict-Transport-Security "max-age=31536000";
}
}
- 用浏览器访问Sentry服务

六参考
- https://docs.sentry.io/server/installation/
- https://github.com/getsentry/onpremise
- http://sinhub.cn/2019/07/getting-started-guide-of-sentry/