window 10 的 sentry 私有化部署
大家好,我是前端老杨。今天给大家分享 sentry 的快速私有化部署内容
参考文档:develop.sentry.dev/self-hosted…
试过不开启代理,安装包一直卡住。所以前提,需要电脑能科学上网
安装步骤
- 启用 windows WSL 功能
- 输入以下命令检查电脑是否开启了 wSL
- 如果没有打开,“控制面板” → “程序和功能” → “启用或关闭Windows功能”,勾选“适用于Linux的Windows子系统”和“虚拟机平台”,点击“确定”后重启电脑
2. window 商店安装
ubuntu20
ubuntu 是基于 liunx 内核开发完整的操作系统
- 进入 ubuntu 终端
-
安装
docker,参考文档:docs.docker.com/engine/inst… 直接按照文档里步骤和命令就行,这里apt-get update升级可能会因为网络,无法升级成功,建议开启翻墙软件 -
安装
docker-compose,请参考文档:docs.docker.com/compose/ins… -
修改
docker镜像源,self-hosted里的有些镜像无法从原镜像源下载,修改成国内镜像源解决问题
sudo vi /etc/docker/daemon.json
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://mkoo7bej.mirror.aliyuncs.com",
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://your_preferred_mirror",
"https://dockerhub.icu",
"https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc"
]
}
- 下载私有化部署仓库代码
- 官方镜像仓库:
https://github.com/getsentry/self-hosted.git,如果打不开可以使用https://gitee.com/newxiaoming/self-hosted
- 安装项目依赖,启动项目
安装依赖过程,很漫长,安装尾声,提示需要你创建的一个 sentry 账号,用于后面网页端(http://localhost:9000/)进行登录
cd self-hosted
// 如果提示磁盘不够,无法在 ubuntu 上运行安装 sentry 项目;请到 WSL settings 的应用里,设置子系统内存大小;大概需要 `14G`
sudo ./install.sh
// 如果不添加sudo,可能会提示无权限,也可以添加一个全局docker组,然后给当前用户添加进去
// 官方 --wait 的话,会一直等待,我这里改成 -d,让他后台运行
sudo docker compose up -d
输入docker ps -a查看所有容器是否启动成功
- 访问项目
http://localhost:9000/,输入安装过程中创建的账号和密码
vue 项目接入 sentry
- 登录项目后,在
projects中创建项目。选择vue框架,创建完毕之后会有 vue 项目接入文档。如果不小心关掉页面,也可以重新点击项目名称进入指导文档
- 也可以直接修改指导文档地址:
http://localhost:9000/organizations/sentry/projects/javascript-vue-demo/?guidedStep=1&project=2, 你可以修改项目 id 为你的项目,javascript-vue-demo 为你项目名称 - 项目里安装
sentry
npm install --save @sentry/vue
- 配置
sentry
import Vue from "vue";
import Router from "vue-router";
import * as Sentry from "@sentry/vue";
const app = createApp(App);
Sentry.init({
app,
dsn: "http://25d6ed7f4860025bd338d0c62a9424b4@localhost:9000/2",
// Setting this option to true will send default PII data to Sentry.
// For example, automatic IP address collection on events
sendDefaultPii: true,
});
app.use(router);
app.mount("#app");
dns的获取,有以下两个地方
- 一开始指导文档里面会有的
- 二是点击项目设置图标,进行设置菜单,选择DSN
- 上传 sourcemp 方便定位代码错误
可以使用官方脚手架安装指引,自动安装;使用了 vite 框架,也可以手动进行配置 这里我以官方脚手架安装为准
npx @sentry/wizard@latest -i sourcemaps
- 目前最新版本,要求 node >= 18.20.6
- 安装过程需要选择私有化部署,填写本地网址:
http://localhost:9000/ - 因为我的项目使用了 pnpm,自动安装
npm install @sentry/vite-plugin会失败,可以先手动使用 pnpm 安装,后再重新走下流程就可以选择跳过那一步
- 错误代码测试
这里参考官网例子,增加如下代码
<template>
<button @click="throwError">测试sentry Throw error</button>
</template>
<script setup>
function throwError() {
throw new Error("Sentry Error");
}
</script>
<style scoped></style>
就会出现以下错误提示
- 设置异常提醒邮箱为 qq 邮箱
文档说明:develop.sentry.dev/self-hosted…
ps:和官方有的出入地方
- 文档中说还需要修改 .env 中
SENTRY_MAIL_HOST,实际测下来不需要修改; 只需要修改self-hosted/sentry/config.yml - 修改完配置也只需要 docker compose down 在 docker compose up 就行;不需要重新编译 ./install.sh
- 这是我的qq邮箱配置
self-hosted/sentry/config.yml
# mail.backend: "smtp" # Use dummy if you want to disable email entirely
mail.host: "smtp.qq.com"
mail.port: 587
mail.username: "XXXXX@qq.com" # 这两个参数分别是的qq邮箱和授权码
mail.password: "****vmbbuhc****"
# NOTE: `mail.use-tls` and `mail.use-ssl` are mutually exclusive and should not
# appear at the same time. Only uncomment one of them.
mail.use-tls: true
# mail.use-ssl: false
# NOTE: The following 2 configs (mail.from and mail.list-namespace) are set
# through SENTRY_MAIL_HOST in sentry.conf.py so remove those first if
# you want your values in this file to be effective!
# The email address to send on behalf of
# mail.from: 'root@localhost' or ...
mail.from: "XXX@qq.com"
mail.list-namespace: "localhost"
- 先关掉再重新运行
docker compose down
docker compose up -d
可以去web端里,先发一个测试邮件进行验证配置是否正确
最终效果如下:
总结
- 如果不想私有化部署,也可以使用 sentry.io 在线注册管理,可以参考这篇文档:juejin.cn/post/749124…
- mac 电脑,只需要安装好 docker 和 docker compose,后续步骤都是一样
- 更多的使用技巧和功能,可以查看官方文档
- vue 接入代码实例,在
https://gitee.com/banmaxiaobai/edu-monitor的sentry分支上