Docker安装Sentry

Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。它主要专注于持续集成、提高效率并且提升用户体验。

Sentry 分为服务端和客户端 SDK,前者可以直接使用它家提供的在线服务,也可以本地自行搭建;后者提供了对多种主流语言和框架的支持,包括 React、Angular、Node、Django、RoR、PHP、Laravel、Android、.NET、JAVA 等。

同时它可提供了和其他流行服务集成的方案,例如 GitHub、GitLab、bitbuck、heroku、slack、Trello 等。

下载

1
2
3
docker pull redis 
docker pull postgres
docker pull sentry:9.0

启动redis和postgres

1
2
3
docker run -d --name sentry-redis --restart=always redis
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry \
--restart=always postgres

生成秘钥

生成后记得把秘钥保存

1
docker run --rm sentry:9.0 config generate-secret-key

初始化数据结构

这一步时间比较长一些,有耐心,中间会提示输入超级用户

1
2
3
docker run -it --rm -e SENTRY_SECRET_KEY='秘钥' \
--link sentry-postgres:postgres \
--link sentry-redis:redis sentry:9.0 upgrade

三个容器

  • sentry-web:sentry的web服务
  • sentry-cron:sentry的定时任务,活性检测等
  • sentry-worker:业务处理,数据持久化,报警等
1
2
3
4
5
6
7
8
9
10
11
docker run -d --restart=always -p 9000:9000 --name sentry-web \
-e SENTRY_SECRET_KEY='秘钥' \
--link sentry-redis:redis --link sentry-postgres:postgres sentry:9.0

docker run -d --restart=always --name sentry-cron \
-e SENTRY_SECRET_KEY='秘钥' \
--link sentry-postgres:postgres --link sentry-redis:redis sentry:9.0 run cron

docker run -d --restart=always --name sentry-worker-1 \
-e SENTRY_SECRET_KEY='秘钥' \
--link sentry-postgres:postgres --link sentry-redis:redis sentry:9.0 run worker

注意事项

内存不足将会安装中断

1
2
3
4
5
6
7
8
9
10
11
12
13
# 正常安装完成信息
Would you like to create a user account now? [Y/n]: y
Email:
Password:
Repeat for confirmation:
Should this user be a superuser? [y/N]: y
User created: sacgog@aliyun.com
Added to organization: sentry
- Loading initial data for sentry.
Installed 0 object(s) from 0 fixture(s)
Running migrations for nodestore:
- Migrating forwards to 0001_initial.
> nodestore:0001_initial