前文已经介绍了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

  1. 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、配置项目名称

  1. .env文件
  2. COMPOSE_PROJECT_NAME=项目名称 # 注意这个项目不是sentry中各个项目的名称,和那个没关系

2、配置通知邮箱

  1. sentry/config.yml文件
  2. ###############
  3. # Mail Server #
  4. ###############
  5. # mail.backend: 'smtp' # Use dummy if you want to disable email entirely
  6. mail.host: 'smtp.qq.com'
  7. mail.port: 25
  8. mail.username: 'xxxxxxx@qq.com'
  9. mail.password: 'xxxxxxxxxx'
  10. mail.use-tls: false
  11. # The email address to send on behalf of
  12. mail.from: 'xxxxxxx@qq.com'

3、若想修改web访问端口,如本地安装php,因为php-fpm端口默认也是9000,
可以修改本地与docker端口映射关系,如本地10000映射docker 9000,修改方法:

  1. docker-compose.yml 文件
  2. web:
  3. << : *sentry_defaults
  4. ports:
  5. - '10000:9000/tcp'

4、运行安装脚本,创建容器

运行之前可以去官方配置文档中,看看是否还需要配置啥。

  1. ./install.sh
  2. 构建镜像
  3. 执行过程中会让你输入邮箱、密码作为登录使用。

5、创建并启动容器

  1. docker-compose up -d

6、网页访问

http://localhost:9000

对于在服务器搭建的用nginx代理一下访问接口。

  1. server {
  2. listen 80;
  3. server_name yourdomain.com
  4. location / {
  5. proxy_pass http://127.0.0.1:9000;
  6. }
  7. }

7、若要修改文件,修改完成后执行以下命令使配置生效

  1. docker-compose build
  2. docker-compose restart

设置中文

搭建完成后可以将sentry设置成中文显示

搭建自己的 Sentry 服务 - 图1