sentry 命令_前端异常监控之 Sentry的部署和使用

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

一、Sentry部署

Sentry搭建有两种方式:

通过Python安装 教程地址

通过Docker容器安装 教程地址

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

1、安装docker

yum install docker -y

// 查看版本信息

docker info

或者

docker -v

复制代码

2、安装wget

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

yum -y install wget

复制代码

3、安装pip

# 如果使用 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

sudo pip install docker-compose # 安装 docker-compose

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

复制代码

5、安装git

6、 搭建自己的sentry

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

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

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

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下 创建目录

mkdir -p data/{sentry,postgres}

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

复制代码

3) 获取项目的key

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

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

vim docker-compose.yml

复制代码

5)创建项目的superuser

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

docker-compose run --rm web upgrade

复制代码

6)开启sentry服务

docker-compose up -d

复制代码

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

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

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

7、搭建注意事项:

1) 在执行 docker-compose run --rm web upgrade 时报错。

忘记执行 docker-compose build

复制代码2)执行 docker-compose up -d 报错,关闭 docker再重新打开。

关闭docker: systemctl stop docker

启动docker: systemctl start docker

复制代码3)执行 docker-compose run --rm web upgrade 如果忘记设置用户名或者设置错误,部署完后不能登录则重新安装数据库。

删除 /var/lib/docker/volumes 下的 onpremise_sentry-postgres 文件夹。

重新执行命令 docker-compose run --rm web upgrade

复制代码

4)用docker composer启动docker集群时报错:

# ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

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

执行:systemctl start docker

复制代码5)docker常用的一些操作

#查看所有容器:

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。

npm i -g @sentry/cli

sentry-cli -V // 检查版本

复制代码

2、生成token

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

3、登陆

$ sentry-cli --url https://myserver/ login

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

复制代码

4、release控制

1)创建release

sentry-cli releases -o 组织 -p 项目 new staging@1.0.1

# 这里的 staging@1.0.1 就是我们指定的版本号.

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

复制代码

2)本地应用release

# 安装raven-js

npm install raven-js --save

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

import Raven from 'raven-js';

Raven.config(DSN, {

release: 'staging@1.0.1'

}).install()

复制代码

3)删除release

sentry-cli releases -o 组织 -p 项目 delete staging@1.0.1

# 注意 删除某个release时需要将其下的异常处理掉,并将该版本的sourcemap文件清空

# 完成上面两步可能还要等待2小时才能删除,不然会报错:该版本还有其它依赖。

复制代码

5、SourceMap管理

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

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

1)上传 SourceMap

sentry-cli releases -o 组织 -p 项目 files staging@1.0.1 upload-sourcemaps js文件所在目录 --url-prefix 线上资源URI

复制代码

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

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

2)清空 SourceMap 文件

sentry-cli releases files staging@1.0.1 delete --all

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

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

# 安装webpack-sentry-plugin

npm i -D webpack-sentry-plugin

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

}

})

]

复制代码

参考文献:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值