記一次Sentry部署過程

前言


Sentry 是一個開源的實時錯誤報告工具,支持先後端、其餘後端語言以及主流框架等。既然是開源,那麼咱們能夠在本身的服務器上搭建,本文記錄搭建的過程以及搭建過程當中遇到的一些問題,也能夠跟着這個教程來搭建一遍vue

部署環境


Ubuntu 16.04python

官網提供了兩種部署方式git

一、 dockergithub

二、 pythonweb

這裏我使用的是 docker 的方式來安裝,比較快捷docker

先更新下 apt-get包(這個過程可能須要點時間)shell

apt-get update && apt-get upgrade
複製代碼

一、安裝docker


wget -qO- https://get.docker.com/ | sh

// 查看 docker 是否安裝成功
docker -v
// Docker version 18.09.5
證實docker安裝成功
複製代碼

因爲 docker鏡像都在國外,所以下載會比較慢,這裏用 Docker加速器 運行下面命令便可flask

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4031ebb7.m.daocloud.io
複製代碼

二、安裝 pip


執行下面命令安裝(注意沒有安裝 python 的話須要安裝)bootstrap

wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate # 下載文件 

python get-pip.py #執行安裝 

pip -V #查看pip版本
// pip 19.0.3 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)
複製代碼

三、安裝 docker-compose


這裏使用 pip 管理工具來安裝 docker-compose後端

sudo pip install docker-compose

docker-compose --version // 查看版本是否安裝成功
複製代碼

上述步驟以後就能夠着手搭建 sentry

四、 搭建 sentry


首先從github上拉取 sentry,運行

git clone https://github.com/getsentry/onpremise.git
複製代碼

拉取下來後,進入目錄 onpremise,能夠看到裏面有份README.MD,按照這份說明文檔步驟安裝就行(這份當時拉下來的操做文檔,具體有更新的話以拉取下來的最新說明文檔爲準)

  1. docker volume create --name=sentry-data && docker volume create --name=sentry-postgres - Make our local database and sentry volumes Docker volumes have to be created manually, as they are declared as external to be more durable.
  2. cp -n .env.example .env - create env config file
  3. docker-compose build - Build and tag the Docker services
  4. docker-compose run --rm web config generate-secret-key - Generate a secret key. Add it to .env as SENTRY_SECRET_KEY.
  5. docker-compose run --rm web upgrade - Build the database. Use the interactive prompts to create a user account.
  6. docker-compose up -d - Lift all services (detached/background mode).
  7. Access your instance at localhost:9000!

五、 實踐


搭建完成以後打開 localhost:9000 端口,能夠看到登陸界面,輸入上面搭建時候設置的郵箱和密碼

注意!!!!

輸入帳號密碼登陸以後,會進入一個初始化的界面,要填寫 ROOT URL,若是遇到填寫完成以後點擊保存一直提示 保存錯誤 的時候,按照下面方法來操做就能夠解決

編輯文件 config.yml,添加下面這一段

auth.allow-registration: false
beacon.anonymous: true
mail.from: ""
mail.host: ""
mail.password: ""
mail.port: 465
mail.use-tls: true
mail.username: ""
system.admin-email: ""
system.url-prefix: ""
複製代碼

而後設置下 sentry 的版本,以下命令,CONTAINER 換成你 docker 容器裏面 web 的 name,能夠使用 docker ps 命令看下,個人是 onpremise_web_1

docker exec CONTAINER sentry config set sentry:version-configured '9.1.0'
複製代碼

執行第一次的時候我狀況是報錯了,再執行一次就行

這時候刷新下頁面,你可能會發現仍是停留在了這個初始化設置頁面,通常等一兩個小時再刷新下就進去了,具體緣由我也不清楚,好像是由於 docker 運行緩存問題?

打開進入以後能夠點擊右上角添加新的項目 add project,選擇語言或者框架

658fec1048d756edcf376d433f6cae85.png

六、 遇到問題

按照客戶端教程下載相關庫以後須要填 DSN ,在項目的 settings 裏面找到 DSN 發現是空的而且不能填,而後上網找了下發現 DSN 是由下面格式組成的

http://pubilckey:secretkey@localhost:9000/<project>
複製代碼

按照這個格式填寫到客戶端的 DSN 以後嘗試下觸發錯誤,能夠看到界面會顯示具體的錯誤詳細信息

七、 小結

搭建完後按照教程集成到 vueflask 中,發現效果還不錯,觸發錯誤後能夠看到具體的錯誤詳細信息,具體到哪一行,觸發這個錯誤的終端的詳細信息,但 vue 目前大部分是混淆壓縮過的,所以得上傳 sourcemap 才能夠看到具體錯誤在那個組件,這個我還在研究當中。

相關文章
相關標籤/搜索