Sentry
是一個開源的實時錯誤追蹤系統,能夠幫助開發者實時監控並修復異常問題。它主要專一於持續集成、提升效率而且提高用戶體驗。javascript
下面是Sentry官網支持的產品html
做爲大多數我的開發者和中小企業,能夠直接使用Sentry官網)提供的雲服務,你只須要註冊一個Sentry
帳號,就能夠快速享受到集中處理異常日誌的服務。前端
官網支持docker
與python
安裝兩種方式,這裏採用docker
的方式
具體有什麼疑問能夠查看官網https://docs.sentry.io/server/installation/java
具體能夠看以前記錄的文章重頭開始學Dockernode
wget
yum -y install wget
pip
# 若是使用 wget下載https開頭的網址域名 時報錯,你須要加上 --no-check-certificate (不檢查證書)選項 wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate # 下載文件 python get-pip.py #執行安裝 pip -V #查看pip版本
docker-compose
sudo pip install docker-compose # 安裝 docker-compose docker-compose -v #查看docker-compose 版本
注意這裏我在安裝docker-compose
報了這個錯誤python
執行以下命令webpack
sudo pip install --ignore-installed requests
安裝完成以後再安裝docker-compose
git
參考至:https://blog.csdn.net/guoshaoliang789/article/details/96878731github
github
上拉取源碼git clone https://github.com/getsentry/onpremise.git
注意你須要保證你的Docker 17.05.0+ Compose 1.19.0+
同時還須要擁有least 2400MB RAM
web
下載完成以後進入該目錄。查看文件以下
docker-compose build --pull
可是出了個問題,問題描述說是倉庫不存在或可能須要「docker登陸」:拒絕:請求訪問的資源被拒絕
嘗試解決問題:先執行登陸操做
docker login
登陸成功以後再次執行以前的命令,發現仍是報錯,咱們搜索一下Docker
網站上關於sentry-onpremise-local
鏡像,咱們手動去pull
執行以下命令
docker image pull viitanener/sentry-onpremise-local
拉取成功以後,再次執行以前的命令。
參考至https://www.cnblogs.com/meloncodezhang/p/11229778.html
最後發現仍是沒用,可是在github issues
中發現了一樣的問題
這是問題連接https://github.com/getsentry/onpremise/issues/278
執行以下命令
docker-compose build --pull --force-rm web docker-compose build --force-rm
發現build
成功
進入sentry文件夾,將默認的config.example.yml
和sentry.conf.example.py
重命名爲config.yml
和sentry.conf.py
。執行以下命令
cp config.example.yml config.yml cp sentry.conf.example.py sentry.conf.py
執行以下命令生成祕鑰
docker-compose run --rm web config generate-secret-key
將生成的祕鑰添加到config.yml
的system.secret-key
字段上
執行以下命令開始服務遷移
docker-compose run --rm web upgrade
正常狀況下是會出現輸入帳號密碼的步驟的,若是不能夠請詳細查閱這個issue
執行如下命令
docker-compose run --rm web createuser
docker-compose up -d
執行以後發現以下問題,判斷多是docker
沒有啓動的問題
執行以下命令
service docker status # 查看docker服務是否啓動 systemctl start docker # 啓動docker
再次執行安裝
又發生以下錯誤
執行以下命令
dig @114.114.114.114 registry-1.docker.io
將上訴幾個地址寫入hosts
文件後再次安裝
Sentry
成功打開瀏覽器輸入ip:9000
,以下圖說明安裝成功
注意,若是沒有打開,請檢查服務器防火牆與安全組是否開放9000
端口
sentryclirc
文件裏的url
屬性smtp.qq.com
tls
就是567
打開sentry/config.yml
文件,編輯以下信息:
具體配置查看這裏https://docs.sentry.io/server/config/#mail
注意要將服務器防火牆與服務器安全組的郵箱端口放開,注意:若是使用Sentry10的話 使用tsl郵箱端口必須爲567否則會報錯
從新執行如下命令
docker-compose build --pull --force-rm web docker-compose build --force-rm docker-compose run --rm web upgrade docker-compose up -d
能夠看到郵箱信息已經修改掉了,下面咱們發送一封測試郵件,點擊下方的Test Settings
至此,郵箱服務也修改完成
Project->React->Create Project
務必勾選project:write
npm install @sentry/webpack-plugin -S
.sentryclirc
文件[defaults] url=sentry 服務的url #好比安裝的是192.168.0.1:9000 project = 項目名字 org= 項目組織 上面有寫在哪能夠取到 [auth] token=api token # 登陸控制檯獲取
.umirc.js
文件const SentryPlugin = require('@sentry/webpack-plugin'); export default { chainWebpack(config, { webpack }){ // 拿不到process.env.RELEASE_VERSION if (process.env.UMI_ENV == 'prod'){ config.plugin("sentry").use(SentryPlugin, [{ ignore: ['node_modules'], include: './dist', //上傳dist文件的js configFile: './sentryclirc', release:release, // 版本號 deleteAfterCompile: true, urlPrefix: '~/static/' //靜態資源路徑前綴 }]) } }, }
urlPrefix
若是你的靜態資源是htps://cdn.xxx.com/static/
那麼該值就是~/static/
,自動省去協議與主機地址@sentry/browser
使用的時候須要結合這個包使用
npm i @sentry/browser -S
import * as Sentry from '@sentry/browser'; const SENTRYSDK = '就是Sentry配置的DSN' Sentry.init({dsn:SENTRYSDK,release: process.env.RELEASE_VERSION,debug: true,});
componentDidCatch(error, errorInfo) { Sentry.withScope((scope) => { scope.setExtras(errorInfo); const eventId = Sentry.captureException(error); this.setState({ eventId }); }); }
Sentry.captureMessage('Hello, world!'); // 上報信息 Sentry.captureException(new Error('Good bye')); // 上報異常 Sentry.captureEvent({ // 上報事件 message: 'Manual', stacktrace: [ // ... ], });