记一次Sentry部署过程

前言


Sentry 是一个开源的实时错误报告工具,支持前后端、其他后端语言以及主流框架等。既然是开源,那么我们可以在自己的服务器上搭建,本文记录搭建的过程以及搭建过程中遇到的一些问题,也可以跟着这个教程来搭建一遍

部署环境


Ubuntu 16.04

官网提供了两种部署方式

1、 docker

2、 python

这里我使用的是 docker 的方式来安装,比较快捷

先更新下 apt-get包(这个过程可能需要点时间)

apt-get update && apt-get upgrade
复制代码

1、安装docker


wget -qO- https://get.docker.com/ | sh// 查看 docker 是否安装成功
docker -v
// Docker version 18.09.5
证明docker安装成功
复制代码

由于 docker镜像都在国外,因此下载会比较慢,这里用 Docker加速器 运行下面命令即可

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4031ebb7.m.daocloud.io
复制代码

2、安装 pip


执行下面命令安装(注意没有安装 python 的话需要安装)

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)
复制代码

3、安装 docker-compose


这里使用 pip 管理工具来安装 docker-compose

sudo pip install docker-composedocker-compose --version // 查看版本是否安装成功
复制代码

上述步骤之后就可以着手搭建 sentry

4、 搭建 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!

5、 实践


搭建完成之后打开 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,选择语言或者框架

6、 遇到问题

按照客户端教程下载相关库之后需要填 DSN ,在项目的 settings 里面找到 DSN 发现是空的并且不能填,然后上网找了下发现 DSN 是由下面格式组成的

http://pubilckey:secretkey@localhost:9000/<project>
复制代码

按照这个格式填写到客户端的 DSN 之后尝试下触发错误,可以看到界面会显示具体的错误详细信息

7、 小结

搭建完后按照教程集成到 vueflask 中,发现效果还不错,触发错误后可以看到具体的错误详细信息,具体到哪一行,触发这个错误的终端的详细信息,但 vue 目前大部分是混淆压缩过的,因此得上传 sourcemap 才可以看到具体错误在那个组件,这个我还在研究当中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/275318.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

效率神器!UI 稿智能转换成前端代码

做前端&#xff0c;不搬砖大家好&#xff0c;我是若川。从事前端五年之久&#xff0c;也算见证了前端数次变革&#xff0c;从到DW&#xff08;Dreamweaver&#xff09;到H5C3、从JQuery到MVC框架&#xff0c;无数前端大佬在为打造前端完整生态做出努力&#xff0c;由于他们的努…

$.when.apply_When2Meet vs.LettuceMeet:UI和美学方面的案例研究

$.when.apply并非所有计划应用程序都是一样创建的。 (Not all scheduling apps are created equal.) As any college student will tell you, we use When2Meet almost religiously. Between classes, extracurriculars, work, and simply living, When2Meet is the scheduling…

BZOJ4825: [Hnoi2017]单旋(Splay)

题面 传送门 题解 调了好几个小时……指针太难写了…… 因为只单旋最值&#xff0c;我们以单旋\(\min\)为例&#xff0c;那么\(\min\)是没有左子树的&#xff0c;而它旋到根之后&#xff0c;它的深度变为\(1\)&#xff0c;它的右子树里所有节点深度不变&#xff0c;其它所有节点…

前端不容你亵渎

大家好&#xff0c;我是若川&#xff0c;点此加我微信进源码群&#xff0c;一起学习源码。同时可以进群免费看Vue专场直播&#xff0c;有尤雨溪分享「Vue3 生态现状以及展望」背景最近我在公众号的后台收到一条留言&#xff1a;言语里充满了对前端的不屑和鄙夷&#xff0c;但仔…

用jquery阻止事件起泡

jquery使用过程中阻止事件起泡实例 1、通过返回false来取消默认的行为并阻止事件起泡。jQuery 代码:$("form").bind("submit", function() { return false; })2、通过使用 preventDefault() 方法只取消默认的行为。jQuery 代码:$("form").bind(…

利益相关者软件工程_如何向利益相关者解释用户体验的重要性

利益相关者软件工程With the ever increasing popularity of user experience (UX) design there is a growing need for good designers. However, there’s a problem for designers here as well. How can you show the importance of UX to your stakeholders and convince…

云栖大会上,阿里巴巴重磅发布前端知识图谱!

大家好&#xff0c;我是若川&#xff0c;点此加我微信进源码群&#xff0c;一起学习源码。同时可以进群免费看Vue专场直播&#xff0c;有尤雨溪分享「Vue3 生态现状以及展望」阿里巴巴前端知识图谱&#xff0c;由大阿里众多前端技术专家团历经1年时间精心整理&#xff0c;从 初…

Linux下“/”和“~”的区别

在linux中&#xff0c;”/“代表根目录&#xff0c;”~“是代表目录。Linux存储是以挂载的方式&#xff0c;相当于是树状的&#xff0c;源头就是”/“&#xff0c;也就是根目录。 而每个用户都有”家“目录&#xff0c;也就是用户的个人目录&#xff0c;比如root用户的”家“目…

在当今移动互联网时代_谁在提供当今最好的电子邮件体验?

在当今移动互联网时代Hey, a new email service from the makers of Basecamp was recently launched. The Verge calls it a “genuinely original take on messaging”, and it indeed features some refreshing ideas for the sometimes painful exercise we call inbox man…

插件式开发小记

在做插件开发时&#xff0c;小记一下&#xff0c;用来备忘&#xff1a; 1.DEV8.2的XtraTabControl控件如何获得当前打开的子窗体&#xff1a;XtraForm frm (XtraForm)xtraTabControl1.SelectedTabPage.Controls[0];2.插件开发的底层标准最好是抽象类&#xff0c;这样扩展性好。…

linux运维工程师学习路线

一、学习路线&#xff1a; 1.青铜&#xff1a; 1、Linux基础知识、基本命令&#xff08;起源、组成、常用命令如cp、ls、file、mkdir等常见操作命令&#xff09; 2、Linux用户及权限基础 3、Linux系统进程管理进阶 4、linux高效文本、文件处理命令&#xff08;vim、grep、sed、…

React 全新文档上线!

大家好&#xff0c;我是若川&#xff0c;点此加我微信进源码群&#xff0c;一起学习源码。同时可以进群免费看明天的Vue专场直播&#xff0c;有尤雨溪分享「Vue3 生态现状以及展望」&#xff0c;还可以领取50场录播视频和PPT。React 官方文档改版耗时 1 年&#xff0c;今天已完…

POJ2392

题意:奶牛们要用K个不同类型的石头建太空电梯.每一种石头的高度为Hi&#xff0c;数量为Ci,且不能放在高于Ai的地方,求最高能建多高的太空电梯. 分析:多重背包,数组标记.显然将ai小的放在下面会更优.所以先排序. code: const maxh41000; var cnt:array[0..maxh] of longint;h,…

网络低俗词_从“低俗小说”中汲取7堂课,以创建有影响力的作品集

网络低俗词重点 (Top highlight)Design portfolios and blockbuster movies had become more and more generic. On the design side, I blame all the portfolio reviews and articles shared by “experienced” designers that repeat the same pieces of advice regardless…

Vue多个组件映射到同一个组件,页面不刷新?

问题 在做项目的过程中,有这么一个场景&#xff1a;多个组件通过配置路由,都跳转到同一个组件,他们之间的区别就是,传入的参数不同.请看router对象&#xff1a; userCenterLike: {name: user-center,params: {index: 0}},userCenterHistory: {name: user-center,params: {index…

尤雨溪写的100多行的“玩具 vite”,十分有助于理解 vite 原理

1. 前言大家好&#xff0c;我是若川。最近组织了源码共读活动&#xff0c;感兴趣的可以加我微信 ruochuan12想学源码&#xff0c;极力推荐之前我写的《学习源码整体架构系列》jQuery、underscore、lodash、vuex、sentry、axios、redux、koa、vue-devtools、vuex4、koa-compose、…

webflow如何使用_我如何使用Webflow构建辅助项目以帮助设计人员进行连接

webflow如何使用I launched Designer Slack Communities a while ago, aiming to help designers to connect with likeminded people. By sharing my website with the world, I’ve connected with so many designers. The whole experience is a first time for me, so I wa…

atmega8 例程:T1定时器 CTC模式 方波输出

/******************************************************************* * 函数库说明&#xff1a;ATMEGA8 T1定时器 CTC模式 方波输出 * 版本&#xff1a; v1.00 * 修改&#xff1a; 庞辉 芜湖联大飞思卡尔工作室…

antd的table进行列筛选时,更新dataSource,为什么table显示暂无数据?

我想当然地认为只要dataSource改变&#xff0c;那么<Table>组件就会重新渲染&#xff0c;但是有一种特殊情况例外&#xff1a;在onFilter()中不写筛选条件&#xff0c;在调用filterDropdown进行列筛选的时候&#xff0c;通过handleSearch改变/保存dataSource的状态&#…

重新构想原子化 CSS

感谢印记中文的 QC-L[1] 对本文进行翻译&#xff0c;英文原文: English Version[2]。本文会比往期文章相对长些。这是我个人的一个重大的工具发布&#xff0c;有许多内容我想谈论。如果你能花些时间读完&#xff0c;不胜感激&#xff0c;希望能对你有所帮助 :)推荐访问 https:/…