自建前端错误监控系统

Posted by kavience on 2020-06-16

阅读建议

先整体快速阅读一遍,再回头看其中的配置。

What?

使用开源工具sentry,自建一套 bug 监控系统。

Why?

在日常前端的开发中,当产品部署到线上的时候,前端页面一旦发生错误往往是非常严重,并且难以重现 bug ,为了使得项目中的 bug 可控,bug 监控就显得尤其重要了。然而,现在市面上的 bug 监控软件,可以说并不便宜,这个时候我们可以选择自建一套监控系统。

How?

准备工具

  • Docker 17.05.0+

下载项目

1
git clone git@github.com:getsentry/onpremise.git

配置文件

  • 复制 sentry/config.example.yml 为 config.yml
  • 复制 sentry/sentry.conf.example.pysentry.conf.py
  • 按需编辑 .env 文件

配置文件上面都有相应的说明,这里就不赘述。

执行目录下的 install.sh(执行前请调到下一步看常见错误,节省时间。)

1
./install.sh

常见错误

数据库连接失败

1
django.db.utils.OperationalError: could not connect to server: Connection refused

发生以上错误是由于数据库配置失败的问题,sentry 采用的是 postgresSQL ,我在安装的时候,数据库配置的是本机地址,之前也不怎么了解 postgresSQL ,下面是
postgresSQL 的一些安装配置

  • 安装 postgresSQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 我采用的是 brew 安装,便于管理
brew info postgresql@9.5

# 注意安装后的说明
...
If you need to have postgresql@9.5 first in your PATH run:
echo 'export PATH="/usr/local/opt/postgresql@9.5/bin:$PATH"' >> ~/.zshrc

For compilers to find postgresql@9.5 you may need to set:
export LDFLAGS="-L/usr/local/opt/postgresql@9.5/lib"
export CPPFLAGS="-I/usr/local/opt/postgresql@9.5/include"


To have launchd start postgresql@9.5 now and restart at login:
brew services start postgresql@9.5
Or, if you dont want/need a background service you can just run:
pg_ctl -D /usr/local/var/postgresql@9.5 start
...

# 这里执行以下几个命令即可
# 输出到 zsh
echo 'export PATH="/usr/local/opt/postgresql@9.5/bin:$PATH"' >> ~/.zshrc
# 更新环境
source ~/.zshrc

# 安装后我的文件目录为 /usr/local/var/postgresql@9.5
# 编辑 postgresql.conf ,修改 listen_addresses
listen_addresses = '*' # what IP address(es) to listen on;
# 编辑 pg_hba.conf ,修改 listen_addresses
# 在文件最后添加
host all all 0.0.0.0/0 md5

# 启动 postgresql
brew services start postgresql@9.5

# 创建数据库用户
createuser test -P

# 创建数据库
createdb bug-monitor

# 登录数据库查看
psql -U test
# 进入后查看表
\l
# 可以看到已经存在 bug-monitor 表了
  • 安装 psequel 测试连接(这一步非必须)
    下载安装 psequel ,查看局域网 ip 地址,我的 ip 地址为 192.168.123.95,输入局域网地址测试能否登录,如果可以就说明没什么问题了。

docker 服务未启动

1
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

检查 docker 服务是否正常启动

(完)