前文已经介绍了Sentry服务用途,一个自动化,实时的异常 收集、监控、查看、提醒服务.
Sentry服务端原理
Sentry的服务端分为web、cron、worker这几块,我们的应用只是把错误信息上报给sentry的web端。web处理后放入消息队列或Redis内存队列,worker从队列中消费数据进行处理。
主要处理这些数据的逻辑和队列的压力都在sentry服务端那边。所以实质上对我们系统性能的影响不大。
Sentry服务端安装
前文说到Sentry开源,且可以自己部署使用,有两种安装方式一个是 docker 一个是 python。
下面以mac系统docker为例,介绍一下Sentry的安装步骤:
1、安装docker
见以前文章,不再赘述,
注意安装环境要求:
[scode type=”red”]
至少2400mb 内存
2个 CPU 内核
[/scode]
2、正式搭建 sentry
做完了准备工作,就可以开始搭建 sentry 了。
从 GitHub 上面获取最新的 sentry
git clone https://github.com/getsentry/onpremise.git
获取到本地之后,就可以根据他的 README.md 开始着手搭建了,整个过程还是比较顺利的。
官方安装文档 : https://docs.sentry.io/server/installation/
官方配置文档 :https://docs.sentry.io/server/config/
根据上面文档,安装过程如下:
进入 clone 下来的 onpremise 目录依次执行
1、配置项目名称
.env文件
COMPOSE_PROJECT_NAME=项目名称 # 注意这个项目不是sentry中各个项目的名称,和那个没关系
2、配置通知邮箱
sentry/config.yml文件
###############
# Mail Server #
###############
# mail.backend: 'smtp' # Use dummy if you want to disable email entirely
mail.host: 'smtp.qq.com'
mail.port: 25
mail.username: 'xxxxxxx@qq.com'
mail.password: 'xxxxxxxxxx'
mail.use-tls: false
# The email address to send on behalf of
mail.from: 'xxxxxxx@qq.com'
3、若想修改web访问端口,如本地安装php,因为php-fpm端口默认也是9000,
可以修改本地与docker端口映射关系,如本地10000映射docker 9000,修改方法:
docker-compose.yml 文件
web:
<< : *sentry_defaults
ports:
- '10000:9000/tcp'
4、运行安装脚本,创建容器
运行之前可以去官方配置文档中,看看是否还需要配置啥。
./install.sh
构建镜像
执行过程中会让你输入邮箱、密码作为登录使用。
5、创建并启动容器
docker-compose up -d
6、网页访问
对于在服务器搭建的用nginx代理一下访问接口。
server {
listen 80;
server_name yourdomain.com
location / {
proxy_pass http://127.0.0.1:9000;
}
}
7、若要修改文件,修改完成后执行以下命令使配置生效
docker-compose build
docker-compose restart
设置中文
搭建完成后可以将sentry设置成中文显示