前端错误日志监控-sentry安装

前端错误日志监控-sentry 之 安装篇

题外话

前端作为最接近用户的一端,有非常重要的责任。响应要快,操作要流畅等,然而 JS 的单线程设计,和 dom 不能同时渲染的设计,让你的 JS 报错分分钟就卡在那里动不了。简单来说:体验贼差

有报错咋办?调试呗,可以看之前出的很多调试的文章:

主推是 spy-debugger。我日常用的最多的也是spy-debugger

  • chrome 调试手机网页

    • 优点:原生 chrome 控制台。原生!!这控制台无敌,挑不出毛病

    • 缺点:

      1. 有墙,很有可能连不上(新出的 edge 也支持调试,貌似直连,不怕墙)。
      2. 需要数据线,连接不稳定(线松)。
      3. 还需要配套 手机 chrome,无法调试其他浏览器

以上的工具,非常实用,可是也有弊端:就是必须复现 bug 的手机就在身旁,你得还连数据线,或者开代理各种操作。对于市场用户来说,这基本不可能,根本复现不了那么多场景。

最后只能说一句:我的电脑/手机上没问题啊

所以我们需要更多的监控,常说的前端埋点,这里直接介绍 sentry

senrry 「哨兵」 优点

  • 开源(有收费版的,当然选择自己搭建)
  • 工具齐全
  • 多端集成
  • 支持 SourceMap(复现 bug 必需品)
  • 快速使用(实在没有空闲自己写一套埋点,搞不好还四不像)

正题:senrry 安装

安装方式

注意事项

  • 服务器的内存至少 2G,否则在执行 sentry upgrade 命令时会出现问题
  • Docker 版本要在17.05.0+
  • Compose 版本要在1.23.0+

安装 docker

这里有坑,不想踩的可以先看完后面的截图


# 安装docker
yum install docker -y

# pip安装docker-compose
pip install docker-compose
    1. pip 安装 docker-compose 失败

Cannot uninstall ‘requests’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

问题解析:

旧版本依赖多,不能清晰的删除,此时应该忽略旧版本升级,即如下

解决办法:

sudo pip install docker-compose --ignore-installed requests
    1. 一开始没留意,yum 源的 docker 版本太低了。。。

我的 docker 版本才 1.13.3

解决方法:升级 docker 版本

# 删除旧的docker
yum remove docker  docker-common docker-selinux docker-engine

# 安装需要的软件包
## yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 设置Docker yum源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 查看所有仓库中所有docker版本
yum list docker-ce --showduplicates | sort -r

# 安装docker。默认装最新的
sudo yum install docker-ce

# 如果需要指定版本安装(版本号上面的命令有的看)
sudo yum install docker-ce-18.06.1.ce

查看 docker 版本

安装完成后。docker 的准备就差不多了,启动下 docker

systemctl start docker

下载安装脚本

就是上面写的 docker 的 Git 地址。找个地方把 git 获取下来

git clone https://github.com/getsentry/onpremise.git

会看到有一个 onpremise 文件夹。后续的操作都在这个文件夹里面,所以

cd onpremise

# 执行安装
./install.sh

如果遇到 没有那个文件或目录。是因为换行符的问题,git 拉下来的 sh 脚本用了CRLF换行符,导致有很多额外的符号影响了脚本

解决方法:

  1. 编辑 install.sh。修改换行符:
vim install.sh

# 然后点击 esc 。输入
:set ff=unix
# 然后保存退出
  1. install.sh拉到 vscode 中。直接修改换行符

点一下 CRLF 换成 LF。重新上传到服务器就好

换行符搞定了,那就继续执行脚本

修改镜像

有坑,先看说明:

然后你会发现 Fetching and updating Docker images 等了几个世纪都没反应!实在是太慢了,所以我们要改成阿里云的镜像在执行 install 命令

到阿里云里面获取最新的镜像地址(要获取镜像地址需要注册阿里云,就随便注册下而已)

https://promotion.aliyun.com/ntms/act/kubernetes.html

搜索 docker

查看镜像加速器。侧边的文档也写的很清楚了:

sudo tee /etc/docker/daemon.json <<-‘EOF’
{
“registry-mirrors”: [“https://hkoa9dfz.mirror.aliyuncs.com”]
}
EOF

是一句命令,复制进去就行

或者用常用的 vi.vim。把
{
“registry-mirrors”: [“https://hkoa9dfz.mirror.aliyuncs.com”]
}
粘贴进去效果是一样的

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    
    
  "registry-mirrors": ["https://hkoa9dfz.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

镜像也找到了。就正式可以运行 ./install.sh安装,等几分钟。看到这个就是安装完成了

创建初始帐号

询问是否创建一个帐号,输入邮箱地址即可,后面还会要求输入密码,再次确认

不小心点了 n 咋办?

重新运行下面的命令,会在让你输入一个账户的

docker-compose run --rm web upgrade

运行 sentry

docker-compose up -d

然后浏览器访问 http://{ip}:9000。IP 改成自己服务器的 ip 地址。默认是 9000 端口

成功了一半~

帐号密码就是刚才填写的帐号密码,没生成的话重新看下上面的步骤

写到这里安装的算是告一段落了,文章篇幅太长,sentry 的使用还有很多要记的,所以下一篇文章在细说!

最后说一句

docker 牛逼!sentry 那么多依赖一个镜像就搞定了,虽然换镜像源卡了一下,整体来说总比以前一个个依赖去装方便得多

猜你喜欢

转载自blog.csdn.net/Jioho_chen/article/details/106880880