Sentry 是什么
通常我們所說的 Sentry 是指 Sentry 的后端服務,由 Django 編寫。8.0 版本使用了 React.js 構建前端 UI。使用 Sentry 前還需要在自己的應用中配置 Sentry 的 SDK —— 通常在各語言的包管理工具中叫做 Raven。
當然,Sentry 還可以是其公司所提供的 Sentry SaaS 服務。
DSN(Data Source Name)
Sentry 服務支持多用戶、多團隊、多應用管理,每個應用都對應一個 PROJECT_ID,以及用于身份認證的PUBLIC_KEY和SECRET_KEY。由此組成一個這樣的DSN`:
'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'
PROTOCOL 通常會是 http 或者 https,HOST 為 Sentry 服務的主機名和端口,PATH 通常為空。
安裝
地址:https://github.com/getsentry/onpremise
需要提前安裝好 Docker 和 docker-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/,即可看到sentry的Web界面。登錄之后建立一個項目,然后即可配置客戶端。 對于使用django框架的項目,客戶端可以如下配置:
$ sudo pip install raven # 如果項目和sentry位于不同服務器,可能需要安裝raven
打開django的settings.py,加入:
SENTRY_DSN = 'xxxxxxx' # 在sentry的Web界面中建立項目后即可查看
# for django的配置文檔,從中可以找到`SENTRY_DSN`的值
INSTALLED_APPS = {
....
'raven.contrib.django', # 加入這一行
....
}
這樣django項目中產(chǎn)生的異常就都會集中到sentry服務器上了。