前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >实践搭建Sentry异常中心结合Laravel使用

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

作者头像
憧憬博客
发布2020-07-21 10:09:47
1.9K0
发布2020-07-21 10:09:47
举报
文章被收录于专栏:憧憬博客分享

实践搭建Sentry异常中心

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

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

搭建

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

sentry 官网: https://docs.sentry.io git 仓库地址:https://github.com/getsentry/onpremise/

代码语言:javascript
复制
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
代码语言:javascript
复制
# install 安装
./install.sh

# 一键启动
docker-compose up -d

# 默认nginx服务暴露的端口是9000 我这里已经被占用了, so 我改了一下docker-compose.yml的nginx端口

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

sentry
sentry

配置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
dsn
dsn
  • 测试一下
test
test
test-ques
test-ques
  • vi App\Exceptions\Handle.php
代码语言:javascript
复制
public function report(Exception $exception)
{
    if (app()->bound('sentry') && $this->shouldReport($exception)) {
        app('sentry')->captureException($exception);
    }

    parent::report($exception);
}

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

laravel-error
laravel-error
错误
错误
test-sentry
test-sentry

配置邮箱

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

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

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

以下是我的配置

  • vi sentry/config.yml
代码语言:javascript
复制
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'
  • 重新构建加载一下配置
代码语言:javascript
复制
docker-compose down
docker-compose up -d
  • 测试一下邮箱 然后看一下效果
test-email
test-email
  • 然后在重新抛出一个异常看看邮箱能不能收到
email
email
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实践搭建Sentry异常中心
    • 搭建
      • 配置Laravel异常上报
        • 配置邮箱
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档