Sentry
是一个开源的实时错误报告工具,支持先后端、其余后端语言以及主流框架等。既然是开源,那么咱们能够在本身的服务器上搭建,本文记录搭建的过程以及搭建过程当中遇到的一些问题,也能够跟着这个教程来搭建一遍vue
Ubuntu 16.04python
官网提供了两种部署方式git
一、 dockergithub
二、 pythonweb
这里我使用的是 docker
的方式来安装,比较快捷docker
先更新下 apt-get包(这个过程可能须要点时间)shell
apt-get update && apt-get upgrade
复制代码
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
,按照这份说明文档步骤安装就行(这份当时拉下来的操做文档,具体有更新的话以拉取下来的最新说明文档为准)
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.cp -n .env.example .env
- create env config filedocker-compose build
- Build and tag the Docker servicesdocker-compose run --rm web config generate-secret-key
- Generate a secret key. Add it to.env
asSENTRY_SECRET_KEY
.docker-compose run --rm web upgrade
- Build the database. Use the interactive prompts to create a user account.docker-compose up -d
- Lift all services (detached/background mode).- 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
,选择语言或者框架
按照客户端教程下载相关库以后须要填 DSN
,在项目的 settings
里面找到 DSN
发现是空的而且不能填,而后上网找了下发现 DSN
是由下面格式组成的
http://pubilckey:secretkey@localhost:9000/<project>
复制代码
按照这个格式填写到客户端的 DSN
以后尝试下触发错误,能够看到界面会显示具体的错误详细信息
搭建完后按照教程集成到 vue
和 flask
中,发现效果还不错,触发错误后能够看到具体的错误详细信息,具体到哪一行,触发这个错误的终端的详细信息,但 vue
目前大部分是混淆压缩过的,所以得上传 sourcemap
才能够看到具体错误在那个组件,这个我还在研究当中。