近年来,前端监控是越来越火,目前已经有很多成熟的产品供我们选择使用,如下图所示
1. 前端监控是什么?前端监控一般分为三种
,分别为**页面埋点、性能监控以及异常监控。**
2. 实现思路
1.手写埋点
可以自主选择需要监控的数据然后在相应的地方写入代码。这种方式的灵活性很大,但是唯一的缺点就是工作量较大,每个需要监控的地方都得插入代 码。
2. 无埋点
不需要开发者手写埋点了,而是统计所有的事件并且定时上报。这种方式虽然没有前一种方式繁琐了,但是因为统计的是所有事件,所以还需要后期过滤出需要的数据。
4. 性能监控
- 性能监控可以很好的帮助开发者了解在各种真实环境下,页面的性能情况是如何的。
5. 异常监控
- 对于代码运行错误,通常的办法是使用 window.onerror 拦截报错。
该方法能拦截到大部分的详细报错信息,但是也 有例外
对于跨域的代码运行错误会显示 Script error. 对于这种情况我们需要给 script 标签添加 crossorigin 属性
对于某些浏览器可能不会显示调用栈信息,这种情况可以通过 arguments.callee.caller 来做栈递归
对于异步代码来说,可以使用 catch 的方式捕获错误。比如 Promise 可以直接使用 catch 函数, async await 可以使用 try catch 。 但是要注意线上运行的代码都是压缩过的,需要在打包时生成 sourceMap 文件便于 debug。
对于捕获的错误需要上传给服务器,通常可以通过 img 标签的 src 发起一个请求。
![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/39a8281450724538a2fb79f5cb3e2bc7~tplv-k3u1fbpfcp-watermark.image?)
1.需要一个服务器 linux系统这就不多说了哈
2. 服务器最低要求配置RAM4G 不然运行不兼容
3. cpu2g
最要的一步
python -V 检查是否是3.0以上 如果不是卸载安装3.0以上 第一个坑
github
https://blog.csdn.net/qq_42306041/article/details/105989393 安装最新链接
# 卸载老版本的 docker 及其相关依赖
yum remove docker docker-common container-selinux docker-selinux docker-engine
# 更新yum
yum update
# 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
yum install -y yum-utils
# 添加yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新索引
centos7
yum makecache fast
centos8
yum makecache
# 安装Docker-ce
第一步,卸载旧版本Docker。
# 卸载旧版本Docker
命令:yum remove docker docker-common docker-selinux docker-engine
# 查询docker安装过的包
命令:yum list installed | grep docker
# 删除安装包
命令:yum remove docker-ce.x86_64 docker-ce-cli.x86_64
第二步,安装依赖包。
# 安装依赖包
命令:yum install yum-utils device-mapper-persistent-data lvm2 -y
第三步,添加docker yum源。
# 设置yum源,配置 docker-ce 仓库
命令:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[第一种:yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo(中央仓库)
第二种:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)]
第四步,安装Docker CE版。
# 可以查看所有仓库中所有docker版本,并选择特定版本安装
命令:yum list docker-ce --showduplicates | sort -r
# 安装指定版本
命令:yum -y install docker-ce-19.03.9
# 安装最新版本的docker
命令:yum install docker-ce -y
第五步,启动Docker后台服务。
# 启动docker
命令:systemctl start docker
第六步,设置开机启动。
# 允许开机启动
命令:systemctl enable docker
第七步,测试Docker。
# 测试Docker
命令:docker run hello-world
若结果出现“Hello from Docker!”,则安装docker成功。
第八步,查看docker版本。
# 没启动docker之前查看docker版本
命令:docker -v
或 docker version
安装Docker Compose
# 安装依赖,安装epel源
命令:yum -y install epel-release
# 安装Python 3和pip 3
命令:yum install python3 pip3 -y
# 更新pip3
命令:pip3 install --upgrade pip
# 安装docker-compose
全部安装就不用创建软链接了
pip3 install --upgrade --force-reinstall --no-cache-dir docker-compose && ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
命令:pip3 install docker-compose
# 查看docker compose的版本
1.检查不到执行
pip3 install --upgrade --force-reinstall --no-cache-dir docker-compose && ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose
2.执行这个就不执行上面了命令:docker-compose version
# 创建软链接,避免一些应用的安装脚本无法读取docker-compose命令:
sudo ln -fs /usr/bin/docker-compose /usr/local/bin/docker-compose
安装Sentry
第一步,下载onpremise。
命令:mkdir /data
cd /data
wget https://github.com/getsentry/onpremise/archive/20.12.1.tar.gz
tar -zxvf 20.12.1.tar.gz
第二步,编辑配置文件.env。
命令:cd self-hosted-20.12.1
vim .env
将文件中的“SENTRY_EVENT_RETENTION_DAYS=90”改为“SENTRY_EVENT_RETENTION_DAYS=7”,一般保存7天事件数据,视自己情况而定。
在文件最后可添加“限制Kafka磁盘使用量”的配置,新版Sentry使用的Kafka会大量的写入日志信息,特别容易导致磁盘跑满,具体限制额度根据自己的磁盘情况而定。添加代码如下:
Sentry disk cleanup
[kafka]
KAFKA_LOG_RETENTION_HOURS=24
KAFKA_LOG_RETENTION_BYTES=53687091200
KAFKA_LOG_SEGMENT_BYTES=1073741824
KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS=300000
KAFKA_LOG_SEGMENT_DELETE_DELAY_MS=60000
第三步,安装sentry。
# 执行安装脚本
命令:cd self-hosted-20.12.1
./install.sh
若结果提示“ERROR: Volume sentry-data declared as external, but could not be found. Please create the volume manually using docker volume create --name=sentry-data and try again.”等类似错误,则需要依次执行以下命令将对应目录挂载到容器,然后再重新执行以上安装脚本:
sudo docker volume create --name=sentry-data
sudo docker volume create --name=sentry-postgres
sudo docker volume create --name=sentry-redis
sudo docker volume create --name=sentry-zookeeper
sudo docker volume create --name=sentry-kafka
sudo docker volume create --name=sentry-clickhouse
sudo docker volume create --name=sentry-symbolicator
注意:若安装失败,则需要删除掉onpremise-20.12.1目录,然后重新解压20.12.1.tar.gz文件,再安装即可。
若安装完成后结果提示“You're all done! Run the following command to get Sentry running: docker-compose up -d”,则说明安装sentry成功,后面使用命令“docker-compose up -d”启动服务即可。
注意:命令“docker-compose restart”会导致重启异常,因此不建议使用。
第四步,创建账号。
执行安装脚本后,结果末尾会提示“Would you like to create a user account now”,这时需要选择“Y”,然后输入一个邮箱地址,输入两次密码,这样九创建好了一个默认管理员账号,需要注意的是,邮箱地址必须是正确的邮箱地址,不然通不过校验。等服务启动后通过http://x.x.x.x:9000就可以访问。
第五步,启动所有服务。
#启动服务
命令:docker-compose up -d
第六步,验证docker启动状态。
# 验证状态
命令:docker ps
第七步,访问。
服务启动后通过 http://x.x.x.x:9000就可以看见sentry的界面。
第八步,其他常用命令。
# 修改配置后,重启Sentry
命令:sudo docker-compose restart web worker cron sentry-cleanup
# 启动Docker
命令:sudo systemctl start docker
或 sudo service docker start
# 关闭Docker
命令:sudo systemctl stop docker
或 sudo service docker stop
# 重启Docker
命令:sudo systemctl restart docker
或 sudo service docker restart
# 更新Docker CE
命令:sudo yum update docker-ce
# 卸载Docker CE
命令:sudo yum remove docker-ce
# 主机上的镜像、容器、卷或者自定义配置文件是不会自动删除的,需要使用以下命令手动删除
命令:sudo rm -rf /var/lib/docker
# 卸载Docker Compose
命令:sudo pip3 uninstall docker-compose
或 sudo pip uninstall docker-compose
# 卸载老版本Docker
命令:sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 希望能帮助到你!