背景:
我们在完成系统的设计或者业务的迭代上线后,除了需要关注业务数据、系统运行状况,往往还需要对系统业务异常进行监控,来避免有些边缘场景在开发或测试中没有判断到位,导致线上业务系统运行异常或者崩溃的状况,所以这正是我们需要使用Sentry这样的异常日志监控工具的原因。
关于Sentry的介绍:
Sentry 是一个开源的实时错误报告工具,支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node.js、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。
反正总结起来就是一个支持多种语言的异常监控工具,而且免费 开源 好用
(一)、Docker安装及准备
Docker极速镜像:https://get.daocloud.io/#inst...
1.Docker安装
curl -sSL https://get.daocloud.io/docker | sh
2.Docker Compose 安装
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
3.安装成功
root@sentry:~# docker -v
Docker version 19.03.1, build 74b1e89
root@sentry:~# docker-compose -v
docker-compose version 1.24.1, build 4667896b
(二)、Sentry安装
1.拉取onpremise
git clone https://github.com/getsentry/onpremise.git
2.创建项目目录
cd onpremise && mkdir -p data/{sentry,postgres}
3.复制相应的环境配置文件
cp .env.example .env
4.生成secret key
在此步骤安装遇到问题,请跳到步骤10查看常见解决方案.
docker-compose run --rm web config generate-secret-key
5.执行完成后会获得密匙,填写环境密匙
SENTRY_SECRET_KEY=tu!+5dwv5box8pm*1-=idgik%5=@odaot=wi9q^6!d&d&9*uee
SENTRY_IMAGE=sentry:9.1.2
6.更新配置及创建超级管理员用户
docker-compose run --rm web upgrade
7.启动服务运行
docker-compose up -d
8.添加邮件配置到.env文件中
SENTRY_EMAIL_HOST=smtp.mailgun.org
SENTRY_EMAIL_PORT=587 //端口
SENTRY_SERVER_EMAIL=你的邮箱地址
SENTRY_EMAIL_USER=邮箱账号
SENTRY_EMAIL_PASSWORD=邮箱密码
SENTRY_EMAIL_USE_TLS=true //启动TLS传输
9.更改需要重启docker
docker-compose down && docker-compose up -d
10.安装期间遇到场景问题及解决方案
如果安装期间出现以下这样的错误的话,记得手动执行该命令创建
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
执行:docker volume create --name=sentry-data
ERROR: Volume sentry-postgres declared as external, but could not be found. Please create the volume manually using `docker volume create --name=sentry-postgres` and try again.
执行:docker volume create --name=sentry-postgres
如果执行到最后出现该错误
ERROR: Service 'web' failed to build: invalid reference format
请在你的.env环境文件中添加
SENTRY_IMAGE=sentry:9.1.2
12.nginx反向代理端口转发
server {
listen 80;
server_name yourdomain.com
location / {
proxy_pass http://127.0.0.1:9000;
}
}
最终搭建完善的效果:
异常监控:
邮箱提醒:
以上就是Sentry部署的教程了,全程环境使用Ubuntu+Docker进行部署完成的,如果各位同学对这个有兴趣可以一起沟通哦。