前端错误日志监控-sentry 之 安装篇
题外话
前端作为最接近用户的一端,有非常重要的责任。响应要快,操作要流畅等,然而 JS 的单线程设计,和 dom 不能同时渲染的设计,让你的 JS 报错分分钟就卡在那里动不了。简单来说:
体验贼差
有报错咋办?调试呗,可以看之前出的很多调试的文章:
主推是 spy-debugger
。我日常用的最多的也是spy-debugger
-
- 优点:
- 操作方便,自动注入,
- 可以调试 JS 和 css,查看请求等。
- 缺点:
- 调试需要代理
- 如果是 https 还需要装证书。
- 优点:
-
-
优点:原生 chrome 控制台。原生!!这控制台无敌,挑不出毛病
-
缺点:
- 有墙,很有可能连不上(新出的 edge 也支持调试,貌似直连,不怕墙)。
- 需要数据线,连接不稳定(线松)。
- 还需要配套 手机 chrome,无法调试其他浏览器
-
-
PC 调试移动端 H5 vue-devtools+weinre+fiddler
- 这个没啥优缺点 纯属对
vue-devtools
的一个好奇探索。对fiddler
的一个入门
- 这个没啥优缺点 纯属对
以上的工具,非常实用,可是也有弊端:就是必须复现 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
-
- 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
-
- 一开始没留意,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
换行符,导致有很多额外的符号影响了脚本
解决方法:
- 编辑
install.sh
。修改换行符:
vim install.sh
# 然后点击 esc 。输入
:set ff=unix
# 然后保存退出
- 把
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 那么多依赖一个镜像就搞定了,虽然换镜像源卡了一下,整体来说总比以前一个个依赖去装方便得多