用 Docker 十分鐘搭建出 Sentry 私服

weixin_34413065發表於2017-07-19

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
2421463-00edb1e9e95eee52.png
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伺服器上了。

相關文章