Sentry异常日志系统
[[toc]]
日志监控系统
Sentry所做的是收集应用底层代码的崩溃信息,便于排查代码异常
常用方案
- 1.后端捕获异常记录到日志文件
- 2.日志文件定时同步并备份到指定盘
- 3.对日志文件进行关键字匹配, 并将过滤结果通过邮件发送给运维开发人员。
存在问题
- 1.非实时,无法第一时间感知错误
- 2.错误信息的获取相对低效,只能从大量日志中上下翻看关联的信息,可能还要在测试环境复现打印一些变量数据
- 3.日志的处理方式不够灵活,异常类型:api请求、非法请求、脏数据、假异常不能灵活处理
- 4.监控覆盖面有限,前后端分离,不能有效获取前端、app、脚本等异常
Sentry
Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。 其专注于错误监控以及提取一切事后处理所需的信息; 支持几乎所有主流开发语言( JS/Java/Python/php )和平台, 并提供了web界面来展示输出错误。 Sentry 分为服务端和客户端 SDK,前者可以直接使用它家提供的在线服务,也可以本地自行搭建; 后者提供了对多种主流语言和框架的支持,包括 React、Angular、Node、Django、PHP、Laravel、Android、.NET、JAVA 等。 同时它可提供了和其他流行服务集成的方案,例如 GitHub、GitLab、bitbuck 等。
与ELK不同,Sentry专注于应用程序产生的错误日志的聚合和监控
安装
git clone https://github.com/getsentry/onpremise.git
cd onpremise
./install.sh
docker-compose up -d
// 创建账号
docker-compose run --rm web createuser
访问
IP:端口
接入
ios
https://docs.sentry.io/platforms/apple/guides/ios/
android
https://docs.sentry.io/platforms/android/
vue
https://docs.sentry.io/platforms/javascript/guides/vue/
laravel
https://docs.sentry.io/platforms/php/guides/laravel/
php
https://docs.sentry.io/platforms/php/
thinkphp
在 config.php
中设置
// 异常处理handle类
'exception_handle' => function ($e) {
\Sentry\init([
'dsn' => 'https://xxx@sentry.io/123',
'traces_sample_rate' => 1.0,
'send_default_pii' => true,
'server_name' => 'server_name1',
'enviroment' => 'test',
'release' => 'project_name@1.6.0',
]);
\Sentry\captureException($e);
}
原生PHP
在入口文件处注册:
set_error_handler(
function($level, $error, $file, $line){
if(0 === error_reporting()){
return false;
}
throw new ErrorException($error, -1, $level, $file, $line);
},
E_ALL
);
register_shutdown_function(function(){
$error = error_get_last();
if($error){
throw new ErrorException($error['message'], -1, $error['type'], $error['file'], $error['line']);
}
});
set_exception_handler(function($exception){
\Sentry\init([
'dsn' => 'https://xxx@sentry.io/123',
'traces_sample_rate' => 1.0,
'send_default_pii' => true,
'server_name' => 'server_name1',
'enviroment' => 'test',
'release' => 'project_name@1.6.0',
]);
\Sentry\captureException($e);
});
官方demo
https://try.sentry-demo.com/organizations/advanced-skunk/projects/
本文出自 ShowCj,转载时请注明出处及相应链接。