首页 > 其他分享 >前端异常监控之 Sentry的部署和使用

前端异常监控之 Sentry的部署和使用

时间:2023-07-26 18:56:42浏览次数:34  
标签:compose 删除 -- 前端 Sentry 监控 点赞 docker sentry

由于最近在整理前端异常监控相关内容,所以自己在虚拟机搭建部署了一下Sentry,把搭建过程及一些自己踩得坑整理如下

一、Sentry部署

Sentry搭建有两种方式:

我本地是用Docker进行搭建的。

1、安装docker

  armasm 复制代码
yum install docker -y

// 查看版本信息
docker info
或者
docker -v

2、安装wget

  powershell 复制代码
// 在linux中使用wget时,若报-bash: wget: command not found,则表明没有安装wget,需要安装,安装命令如下:-->

yum -y install wget

3、安装pip

  dsconfig 复制代码
# 如果使用 wget下载https开头的网址域名 时报错,你需要加上 --no-check-certificate (不检查证书)选项
wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate  # 下载文件

python get-pip.py #执行安装

pip -V #查看pip版本

4、安装docker-compose

  cmake 复制代码
sudo pip install docker-compose # 安装 docker-compose

docker-compose -v #查看docker-compose 版本

5、安装git

安装git教程地址

6、 搭建自己的sentry

1)首先从github上拉去sentry的docker配置文件

更新:sentry 有更新,参考readme文件内容如下,具体以官方为准

 

sentry更新

 

------------------以下为更新前操作步骤-----------------

  autohotkey 复制代码
git clone https://github.com/getsentry/onpremise.git

cd onpremise

#根据onpremise目录中的README.md 内容来操作:

cat README.md 

---------
1. `mkdir -p data/{sentry,postgres}` - Make our local database and sentry config directories.
    This directory is bind-mounted with postgres so you don't lose state!
2. `docker-compose build` - Build and tag the Docker services
3. `docker-compose run --rm web config generate-secret-key` - Generate a secret key.
    Add it to `docker-compose.yml` in `base` as `SENTRY_SECRET_KEY`.
4. `docker-compose run --rm web upgrade` - Build the database.
    Use the interactive prompts to create a user account.
5. `docker-compose up -d` - Lift all services (detached/background mode).
6. Access your instance at `localhost:9000`!
----------

2)在clone下的onpremise下 创建目录

  haskell 复制代码
mkdir -p data/{sentry,postgres}

docker-compose build # 一定执行,不然报错,然后再生成key

3) 获取项目的key

这个过程很漫长,可能中间会卡,或者出现一些错误,多执行几次就好了

  less 复制代码
docker-compose run --rm web config generate-secret-key

生成的密匙类似这样:41dvtnqzc#g(*s8ichpp8r@gqzu(p4h(+l6qi(d9+f9ue2u+j9

4)编辑docker-compose.yml,复制获取的key 到 SENTRY_SECRET_KEY

  nginx 复制代码
vim docker-compose.yml

5)创建项目的superuser

过程中会让我们填写邮箱和密码

  routeros 复制代码
docker-compose run --rm web upgrade

6)开启sentry服务

  ebnf 复制代码
docker-compose up -d

7) 这时候输入你的 http:://ip:9000 即可进入你的 sentry

使用第 5) 步的用户名密码进行登录即可

Sentry

 

进入后进行简单配置,然后右上角可以点击 New Project 创建,选择需要项目类型,根据提示进行配置

 

New Project

 

 

选择项目类型

 

 

根据提示配置

 

7、搭建注意事项:

  • 1) 在执行 docker-compose run --rm web upgrade 时报错。 注意1
  mipsasm 复制代码
忘记执行 docker-compose build
  • 2)执行 docker-compose up -d 报错,关闭 docker再重新打开。

 

注意2

 

  crmsh 复制代码
关闭docker: systemctl stop docker
启动docker: systemctl start docker
  • 3)执行 docker-compose run --rm web upgrade 如果忘记设置用户名或者设置错误,部署完后不能登录则重新安装数据库。
  awk 复制代码
删除 /var/lib/docker/volumes 下的 onpremise_sentry-postgres 文件夹。
重新执行命令 docker-compose run --rm web upgrade

 

注意3

 

  • 4)用docker composer启动docker集群时报错:
  crmsh 复制代码
# ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

应该是docker后台服务没有开启

执行:systemctl start docker
  • 5)docker常用的一些操作
  powershell 复制代码
#查看所有容器: 
docker ps -a

#查看运行容器:
docker ps

#停用所有容器:
docker stop $(docker ps -q)

#删除所有容器:
docker rm $(docker ps -aq)

#停用和删除所有容器:
docker stop $(docker ps -q) & docker rm $(docker ps -aq)

二、Sentry使用

1、安装Sentry对应的命令行管理工具sentry-cli。

  stata 复制代码
npm i -g @sentry/cli

sentry-cli -V // 检查版本

2、生成token

点击头像左下角,选择API,生成token,勾选project:write权限

3、登陆

  awk 复制代码
$ sentry-cli --url https://myserver/ login

# 回车后输入上一步获得的 token 即可

4、release控制

1)创建release

  apache 复制代码
sentry-cli releases -o 组织 -p 项目 new [email protected]

# 这里的 [email protected] 就是我们指定的版本号. 
# -o -p可以通过页面左上角可以看到。现在我们可以通过创建多个版本号来进行异常分类。 同时,也可以通过页面中"Releases"查看是否创建成功

2)本地应用release

  coffeescript 复制代码
# 安装raven-js
npm install raven-js --save

# 回到前端项目中,在config添加对应的release,指定版本后,每次上报的异常就会分类到该版本下。

import Raven from 'raven-js';

Raven.config(DSN, {
release: '[email protected]'
}).install()

3)删除release

  apache 复制代码
sentry-cli releases -o 组织 -p 项目 delete [email protected]

# 注意 删除某个release时需要将其下的异常处理掉,并将该版本的sourcemap文件清空
# 完成上面两步可能还要等待2小时才能删除,不然会报错:该版本还有其它依赖。

5、SourceMap管理

目前来说,前端项目基本都会压缩混淆代码,这样导致Sentry捕捉到的异常堆栈无法理解。

我们希望在Sentry直接看到异常代码的源码时就需要上传对应的source和map。

1)上传 SourceMap

  apache 复制代码
sentry-cli releases -o 组织 -p 项目 files [email protected] upload-sourcemaps js文件所在目录 --url-prefix 线上资源URI

PS: 记得别把map文件传到生产环节了,又大又不安全…

PS: 免费服务的文件上限为40MB。

2)清空 SourceMap 文件

  apache 复制代码
sentry-cli releases files [email protected] delete --all

也可以选择在 版本>工件 里点击一个个删除。。。。

3)结合webpack在项目中配置进行sourcemap上传

  coffeescript 复制代码
# 安装webpack-sentry-plugin
npm i -D webpack-sentry-plugin
  php 复制代码
var SentryPlugin = require('webpack-sentry-plugin');

plugins: [
    //...
    new SentryPlugin({
        // Sentry options are required
        baseSentryURL: 'https://sentry.mycorp.com/api/0', # 如果是内网使用需要加
        organization: 'sentry',
        project: 'react',
        apiKey: process.env.SENTRY_API_KEY,
    
        // Release version name/hash is required
        release: process.env.GIT_SHA,
        deleteAfterCompile: true,
        suppressErrors: true,
        filenameTransform: function (filename) {
            return 'http://xxx.com/' + filename
        }
    })
]

参考文献:

  1. Sentry前端部署拓展篇(sourcemap关联、issue关联、release控制)
  2. 使用Docker 方式在Centos 7.0 安装配置Sentry
  3. sentry使用实践
  4. webpack-sentry-plugin
  5. Sentry支持SourceMap指引
标签: Docker前端运维   文章被收录于专栏: cover 经验积累 主要将实际开发过程中遇到的一些技术点进行总结归纳 相关小册 「前端算法与数据结构面试:底层逻辑解读与大厂真题训练」封面 VIP 前端算法与数据结构面试:底层逻辑解读与大厂真题训练 修言 7115购买 ¥14.95 ¥29.9 首单券后价 「React 进阶实践指南」封面 VIP React 进阶实践指南 我不是外星人 创作等级LV.6 VIP.5 如鱼得水 7423购买 ¥24.95 ¥49.9 首单券后价 评论 avatar   看完啦, 登录 分享一下感受吧~ 表情 图片 Ctrl + Enter 全部评论 47 最新 最热   用户3135987304785的头像 删除 用户3135987304785 掘友4级:进阶掘友 15天前 sentry上删除sourcemap会释放磁盘吗,还是只是软删除。 展开 收起 点赞 回复
  • 屏蔽作者: 用户3135987304785
  • 举报
  灭霸悟空的头像 删除 灭霸悟空 掘友3级:新星掘友 10月前 跨域怎么解决鸭 展开 收起 点赞 回复
  • 屏蔽作者: 灭霸悟空
  • 举报
  被代码虐的渣渣的头像 删除 被代码虐的渣渣 创作等级LV.1 掘友1级:预备掘友 前端开发 3年前 为什么我执行这个docker-compose run --rm web upgrade命令,报这个Error: Configuration file does not exist. Use 'sentry init' to initialize the file. 展开 收起 点赞 1
  • 屏蔽作者: 被代码虐的渣渣
  • 举报
avatar 删除 用户8564505515043 2年前 大佬最后怎么解决的? 展开 收起 点赞 回复
  • 屏蔽作者: 用户8564505515043
  • 举报
宇敏的头像 删除 宇敏 掘友4级:进阶掘友 前端开发 3年前 执行 docker-compose up -d成功了,但是打开ip地址无访问。。。 展开 收起 点赞 2
  • 屏蔽作者: 宇敏
  • 举报
avatar 删除 Keely40285 (作者) 3年前 这块我很久没有维护过了,所以建议看下官方github,可能有更新 展开 收起 点赞 回复
  • 屏蔽作者: Keely40285
  • 举报
avatar 删除 宇敏 回复 Keely40285 3年前 好的,谢谢 展开 收起 “ github.com ” 点赞 回复
  • 屏蔽作者: 宇敏
  • 举报
atzcl的头像 删除 atzcl 掘友4级:进阶掘友 全干打杂工程师 @ all 4年前 安装完成后,无法访问,, 展开 收起 点赞 1
  • 屏蔽作者: atzcl
  • 举报
avatar 删除 Keely40285 (作者) 3年前 这块我很久没有维护过了,所以建议看下官方github,可能有更新 展开 收起 点赞 回复
  • 屏蔽作者: Keely40285
  • 举报
彼岸花开1477528254153的头像 删除 彼岸花开1477528254153 掘友1级:预备掘友 前端开发工程师 4年前 docker-compose run --rm web config generate-secret-key
报错
Couldn't find env file: /home/sentry/sentry2/onpremise/.env 展开 收起 点赞 1
  • 屏蔽作者: 彼岸花开1477528254153
  • 举报
avatar 删除 拾光未名 VIP.5 如鱼得水 4年前 将默认的.env.example改为.env 展开 收起 点赞 回复
  • 屏蔽作者: 拾光未名
  • 举报
keenjaan的头像 删除 keenjaan 创作等级LV.4 掘友3级:新星掘友 前端码农 4年前 大佬部署的sentry是9吗?我也是docker部署的,部署后右上角尽然没有环境切换菜单,有遇到这样问题吗? 展开 收起 点赞 回复
  • 屏蔽作者: keenjaan
  • 举报
  前端小可爱的头像 删除 前端小可爱 创作等级LV.1 掘友2级:见习掘友 4年前 为什么我搭建出来的Sentry,在显示异常的时候,Details列内容为空 展开 收起 点赞 回复
  • 屏蔽作者: 前端小可爱
  • 举报
  依然范特稀西的头像 删除 依然范特稀西 创作等级LV.6 掘友5级:先锋掘友 公众号 @技术最TOP 4年前 React native 集成是一样的吗,现在卡在sourcemap上传这儿了 展开 收起 点赞 1
  • 屏蔽作者: 依然范特稀西
  • 举报
avatar 删除 Keely40285 (作者) 4年前 这个不太清楚 展开 收起 点赞 回复
  • 屏蔽作者: Keely40285
  • 举报
烛林小煜的头像 删除 烛林小煜 掘友2级:见习掘友 4年前 第一点 ,楼主你的文章需要更新了 readme里面更新了 ;
第二点 ,楼主 我的执行到第五步 :docker-compose run --rm web upgrade 的时候 卡在sentry:0400_auto__add_projectredirect__add_unique_projectredirect_organization_red
好久好久 不动
第三点 , 麻烦把第四步 vim docker-compose.yml 中添加到哪里写清楚点 估计前端没玩过Linux都不知道写到哪
第四点 , 楼主也是前端,我也是前端 都要自己搞这个 真的是 展开 收起 点赞 1
  • 屏蔽作者: 烛林小煜
  • 举报
avatar 删除 Keely40285 (作者) 4年前 1. 谢谢提醒,已更新。
2. 可能需要参考更新后端sentry readme文件进行操作
3. vim 那个大标题已写着 SENTRY_SECRET_KEY 字段,当时我在编辑文件时默认有,可能是更新后没有来吧 展开 收起 点赞 回复
  • 屏蔽作者: Keely40285
  • 举报
茶觉的头像 删除 茶觉 掘友1级:预备掘友 4年前 按照这个流程,我在本地搭建测试都没问题。现在打算在阿里云ECS上部署,centos7.2 64位 1核2G , 在执行 “”docker-compose run --rm web upgrade“” 之后,并没有提示创建账号,输入邮箱等信息,直接结束。 执行完毕会输出如下内容:
Deleting 0 idps with no external_id
0 idps left
0 identities
Deleting 0 bad ids
0 identities left
0 new IDPs and 0 new IDs
> sentry:0418_delete_old_idps
> sentry:0419_auto__add_unique_identityprovider_type_external_id
> sentry:0420_auto__chg_field_identityprovider_organization_id
> sentry:0421_auto__del_field_identityprovider_organization_id__del_unique_identityp
> sentry:0422_auto__add_grouphashtombstone__add_unique_grouphashtombstone_project_ha
> sentry:0423_auto__add_index_grouphashtombstone_deleted_at
- Loading initial data for sentry.
Installed 0 object(s) from 0 fixture(s)
请问有遇到过这个情况吗? 展开 收起 点赞 4
  • 屏蔽作者: 茶觉
  • 举报
avatar 删除 brian0223 4年前 我也遇到了这个情况,你是这么解决的?我装了两遍都没输入用户名密码,导致访问就是访问不了。 展开 收起 点赞 回复
  • 屏蔽作者: brian0223
  • 举报
avatar 删除 Keely40285 (作者) 4年前 试一下我提到的注意事项第3条 展开 收起 点赞 回复
  • 屏蔽作者: Keely40285
  • 举报
 
作者:Keely40285
链接:https://juejin.cn/post/6844903657381593096
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:compose,删除,--,前端,Sentry,监控,点赞,docker,sentry
From: https://www.cnblogs.com/gaoyanbing/p/17583311.html

相关文章

  • 安装 Sentry On-Premise 后,忘记了初始用户密码
    在安装部署SentryOn-Premise的过程中,经常遇到这样一种情况:按照 SentryOn-Premise官方文档部署说明,输入对应的命令,出现交互提示时,没仔细看,回车回车回车,部署完成;然后,在登录sentryweb,发现忘记初始用户密码。遇到这种情况的人还蛮多,当然也包括我。本文主要针对这种情况,记录一......
  • 前端几种下载文件的方式
    1、location.href方式下载对于浏览器不能打开的文件(例如:..rar.doc等)是可以实现下载的,但是对于浏览器可以打开的(例如:txt,xml等)只可以实现预览功能window.location.href="https://xxxx...测试.xlsx"2、window.open()该方式,同上,如果不能被预览,那么浏览器就会下载该文件3、a标......
  • centos7使用docker安装sentry
    来源:https://www.likecs.com/show-307736478.html 环境:centos7、docker19基础环境需求*Docker17.05.0+*Compose1.23.0+流程:docker安装-->docker-compose安装-->clone项目-->安装sentry-->启动sentry-->访问验证(可以直接查看安装文档 moreonpremise/README.md )1、s......
  • 前端之localStorage
    问题:同一个浏览器同时打开两个saas,发现localStorge共用同一个,相同key值的存储会相互覆盖原因:同一域名下,localStorage共享解决方法:不同saas使用不同的key下面介绍一下localStorage特性:1、永久存储,除非主动删除2、同一域名下可以多窗口共享3、键值对存储,方便管理使用:引入......
  • 前端视角的可观测性(一)
    TL;DRGartner将应用可观测性列为2023年重要战略趋势之一。作为开发者,即便没有专精此道。但了解一下,还是有必要的。前言最近,我所在的产品组,将完善监控系统,放入了版本规划中。趁此良机,了解了一波可观测性相关的背景和技术。同时,对原有的监控方式,进行了一定的改造。可观测性......
  • 使用Memcached、Spring AOP构建数据库前端缓存框架
     上回说到Memcahed的安装及java客户端的使用(http://my249645546.iteye.com/blog/1420061),现在我们使用memcached、SpringAOP技术来构建一个数据库的缓存框架。数据库访问可能是很多网站的瓶颈。动不动就连接池耗尽、内存溢出等。前面已经讲到如果我们的网站是一个分布式的大型站......
  • Sentry监控
    参考:https://blog.csdn.net/kiscon/article/details/126131492https://web.dev/optimize-lcp/ 前端异常监控方案LoganLogan是美团点评集团推出的大前端日志系统,包括日志的收集存储,上报分析以及可视化展示。提供了五个组件,包括端上日志收集存储、WebSDK,后端日志存储分析Se......
  • 目前为止整理最全的前端监控体系搭建篇(长文预警)
    参考:https://cloud.tencent.com/developer/article/1983779https://github.com/miracle90/monitorhttps://wpk.ucweb.com/index 概览为什么要做前端监控前端监控目标前端监控流程编写采集脚本日志系统监控错误监控接口异常白屏监控加载时间性能指标卡顿pv......
  • 在疯狂的前端世界,为什么选择学习React
    题图| https://github.com/react-icons/react-iconsReactNative和Prettier的作者之一、前端大牛、Twitter大V@Vjeux(ChristopherChedeau)建议前端人都来学习下React,他给出的理由是:“React和其他库的不同之处在于,它可以教会你一些概念,这些概念可以在你的开发生涯中反复使用。......
  • redis学习二十:redis哨兵监控
    是啥:吹哨人巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务。作用:1.监控redis运行状态,包括master和slave2.当master宕机,能自动将slave切换成新master能干啥:主从监控:监控主从redis库运行是否正常消息通知:哨兵可以将故障转移的......