需求场景
前端产生bug的情况也一样是很多的,可能是书写上的疏忽,可能是接口的异常,可能是用户端的网络异常,也可能是用户的手机设备问题。当一个项目的用户体量大的时候,线上监控就显得很有必要。现在国内也有一些线上前端日志监控的工具,不过大多需要收费,而且出于安全考虑,用户日志放在第三方也不是很放心的。所以能基于开源工具自行搭建一个是最好不过了。
sentry简介
sentry是一个开源的日志异常监控工具,国内部分知名公司的一些团队也在使用,如滴滴,有赞等。由于sentry是国外团队开发的,并不支持小程序,不过有赞团队已经基于sentry的客户端sdk修改了一个版本增加了对微信小程序的异常监控的支持。
环境要求
这个项目还是有点吃内存的,服务器内存最少2G,所以一般需要购买最少3G的服务器。服务器需安装docker,compose环境
一键部署
sentry团队已经为我们做了一键安装包onpremise,如果服务器docker,compose环境已经部署好了,一套下来只需5分钟。
开始部署
git clone https://github.com/getsentry/onpremise
cd onpremise
./install.sh
这个安装过程会比较长,请耐心等待,等到安装完成后,使用docker-compose启动即可通过http://[服务器ip]:9000
访问。
docker-compose up -d
后续版本更新
cd onpremise
git pull
./install.sh
Issue:Nginx转发9000端口无法获得真实ip
修改onpremise/nginx/ngin.conf
配置文件,并重启容器。docker-compose restart
# Remove the Connection header if the client sends it,
# it could be "close" to close a keepalive connection
proxy_set_header Connection '';
proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Request-Id $request_id;
proxy_read_timeout 30s;
proxy_send_timeout 5s;