实践搭建Sentry异常中心结合Laravel使用

简介: 实践搭建Sentry异常中心结合Laravel使用

实践搭建Sentry异常中心

Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。它主要专注于持续集成、提高效率并且提升用户体验。Sentry 分为服务端和客户端 SDK,前者可以直接使用它家提供的在线服务,也可以本地自行搭建;后者提供了对多种主流语言和框架的支持,包括 ReactAngularNodeDjangoRoRPHPLaravelAndroid.NETJAVA 等。同时它可提供了和其他流行服务集成的方案,例如 GitHubGitLabbitbuckherokuslackTrello 等。目前公司的项目也都在逐步应用上 Sentry 进行错误日志管理。

当项目到生产环境了出现异常怎么办,怎么迅速定位? Sentry 为我们提供了一个集中式异常处理的服务, 但是用 Sentry 官方服务要收费,为了节省开支就选择自己搭建一个 Sentry 服务,在搭建 Sentry 服务的时候遇到一些小问题,在这里分享一下。

搭建

为了闭坑,查看文档,并找好搭建方式。看到官网说是支持 docker 搭建,心里美滋滋。

sentry 官网: https://docs.sentry.io

git 仓库地址:https://github.com/getsentry/onpremise/

git clone https://github.com/getsentry/onpremise.git
cd onpremise/
cp sentry/config.example.yml sentry/config.yml 
cp sentry/sentry.conf.example.py sentry/sentry.conf.py
# install 安装
./install.sh
# 一键启动
docker-compose up -d
# 默认nginx服务暴露的端口是9000 我这里已经被占用了, so 我改了一下docker-compose.yml的nginx端口

然后 服务器ip+端口 查看就可以登录了(登录账户是在 install 的时候会提示设置哦)

配置Laravel异常上报

sentry 官网: https://docs.sentry.io/platforms/php/laravel/

安装包: composer require sentry/sentry-laravel=1.2.0

发布资源: php artisan vendor:publish --provider="Sentry\Laravel\ServiceProvider"

  • laravel .env配置 dsn

  • 测试一下

  • vi App\Exceptions\Handle.php
public function report(Exception $exception)
{
    if (app()->bound('sentry') && $this->shouldReport($exception)) {
        app('sentry')->captureException($exception);
    }
    parent::report($exception);
}

配置完 Laravel 的异常监听的话,之后出现的异常都会传送到 Sentry 测试一下

配置邮箱

虽然异常已经集中式放到平台上了,但是我们平时不可能一直去看平台,也就是还需要配置其他的消息推送, 可以配置钉钉机器人, 邮箱。博主这里就使用邮箱了,但是邮箱有个坑.

issuehttps://github.com/getsentry/sentry/issues/4252

问题在于配置好了邮箱发送邮件一直有问题,后来找了github才发现, Sentry 暂时不支持 ssl 连接, 而且 Tls != Ssl,这个就尴尬了 所以博主这里使用 腾讯邮箱的 25端口 进行发送了, 大家如果有企业邮箱的话是可以支持 Tls的异常监听的话

以下是我的配置

  • vi sentry/config.yml
mail.backend: 'smtp'  # Use dummy if you want to disable email entirely
mail.host: 'smtp.qq.com'
mail.port: 25
mail.username: 'xxx@foxmail.com'
mail.password: 'xx'
mail.use-tls: false
#The email address to send on behalf of
mail.from: 'xxx@foxmail.com'
  • 重新构建加载一下配置
docker-compose down
docker-compose up -d
  • 测试一下邮箱 然后看一下效果

  • 然后在重新抛出一个异常看看邮箱能不能收到

sentry

目录
相关文章
|
1月前
|
前端开发 机器人 网络安全
实践搭建Sentry异常中心结合Laravel使用
实践搭建Sentry异常中心结合Laravel使用
47 0
|
监控 前端开发 JavaScript
接入 Sentry 实现前端的异常上报
前端监控现在已经是老生常谈的一个话题了,我之前的一次面试中就被问到了有没有做过前端监控,我回答没做过。。。然后就没有然后了。
739 0
|
监控 Go 开发工具
|
存储 缓存 监控
微服务架构统一异常监控Sentry
微服务架构统一异常监控Sentry
536 0
微服务架构统一异常监控Sentry
|
1月前
|
监控 Ubuntu Docker
Sentry 监控 Docker 方式部署
Sentry 监控 Docker 方式部署
188 0
|
1月前
|
监控 前端开发 JavaScript
Sentry 监控部署与使用(详细流程)
Sentry 监控部署与使用(详细流程)
349 0
|
10月前
|
存储 监控 前端开发
Sentry 监控部署与使用(详细流程)
Sentry 监控部署与使用(详细流程)
2086 0
|
10月前
|
监控 Ubuntu Unix
Sentry 监控 Docker 方式部署
Sentry 监控 Docker 方式部署
419 0
|
11月前
|
人工智能 监控 前端开发
大型网站重构指南 第1.3部分:前端监控和小程序监控 Sentry
大型网站重构指南 第1.3部分:前端监控和小程序监控 Sentry
828 0