用 Docker 十分钟搭建出 Sentry 私服

Sentry 是什么

通常我们所说的 Sentry 是指 Sentry 的后端服务,由 Django 编写。8.0 版本使用了 React.js 构建前端 UI。使用 Sentry 前还需要在自己的应用中配置 SentrySDK —— 通常在各语言的包管理工具中叫做 Raven

当然,Sentry 还可以是其公司所提供的 Sentry SaaS 服务。

DSN(Data Source Name)

Sentry 服务支持多用户、多团队、多应用管理,每个应用都对应一个 PROJECT_ID,以及用于身份认证的PUBLIC_KEYSECRET_KEY。由此组成一个这样的DSN`:

'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'

PROTOCOL 通常会是 http 或者 httpsHOSTSentry 服务的主机名和端口,PATH 通常为空。

安装

地址:https://github.com/getsentry/onpremise

需要提前安装好 Dockerdocker-compose ,没有安装的请先去安装。

1. clone 安装源码

git clone https://github.com/getsentry/onpremise.git

cd onpremise

ls
Dockerfile         Makefile           README.md          config.yml         docker-compose.yml requirements.txt   sentry.conf.py

2. 通过命令生成 secret key

docker-compose run --rm web config generate-secret-key

3. 将生成的 SENTRY_SECRET_KEY 添加到 docker-compose.yml

vim docker-compose.yml
image.png

4. 更新配置

docker-compose run --rm web upgrade
docker-compose up -d

启动和停止

docker-compose up -d  # 启动
docker-compose stop
docker-compose down  # 停止并删除容器

访问

localhost:9000

使用

用浏览器访问 http://localhost:9000/,即可看到sentryWeb界面。登录之后建立一个项目,然后即可配置客户端。 对于使用django框架的项目,客户端可以如下配置:

$ sudo pip install raven       # 如果项目和sentry位于不同服务器,可能需要安装raven

打开djangosettings.py,加入:

SENTRY_DSN = 'xxxxxxx'         # 在sentry的Web界面中建立项目后即可查看
                               # for django的配置文档,从中可以找到`SENTRY_DSN`的值
INSTALLED_APPS = {
    ....
    'raven.contrib.django',    # 加入这一行
    ....
}

这样django项目中产生的异常就都会集中到sentry服务器上了。

推荐阅读更多精彩内容

  • 以下原文转载于(https://docs.docker.com/docker-for-mac/)(想找中文版的最新...
    Veekend阅读 7,268评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 132,349评论 18 139
  • 早上,舍友起身推开门,讶然的叫道:“外面的草都开花了。” 我爬下床,一瞧,真的,湿漉漉的草尖上,一朵朵小黄花。 我...
    kerr1998阅读 113评论 0 1
  • 老公打着还没办仪式就不算结婚的幌子,今年各回各家过年。他痛快的打麻将,我痛快的日夜颠倒嚼零食。 过年。...
    织梦酱_M阅读 257评论 0 0
  • 文/Nico -01- 你会轻易相信陌生人的话吗? 即使你们是乍见之欢,相处不深,单纯的吸引? 至少我真的不敢再轻...
    Nico尼可阅读 683评论 2 8