分享好友 最新动态首页 最新动态分类 切换频道
Docker安装集中错误日志监控告警平台Sentry23.3教程
2024-12-26 19:40

目录

Docker安装集中错误日志监控告警平台Sentry23.3教程

一、背景

二、Sentry介绍

2.1、基本介绍

2.2、基本概念

三、Docker安装

四、Sentry安装

五、Sentry基本设置

六、Sentry新创建Java类型的项目

 七、项目中引入Sentry


进入到微服务的开发时代后,Java项目的错误日志也极为重要,通常错误日志中,体现了一个业务逻辑的缺陷、BUG、潜在的隐患等各类问题,需要我们进行修复,同时对于错误日志,也需要开发人员第一时间进行发现,并触发告警,避免发生重大故障时才定位到问题的情况。

没有类似Sentry的软件,我们会怎样

无论测试如何完善的程序,bug总是免不了会存在的,有些bug不是每次都会出现,测试时运行好好的代码可能在某个用户使用时就歇菜了,可是当程序在用户面前崩溃时,你是看不到错误的,当然你会说:”Hey, 我有记日志呢”。 但是说实话,程序每天每时都在产生大量的日志,而且分布在各个服务器上,并且如果你有多个服务在维护的话,日志的数量之多你是看不过来的吧。等到某天某个用户实在受不了了,打电话来咆哮的时候,你再去找日志你又会发现日志其实没什么用:缺少上下文,不知道用户什么操作导致的异常,异常太多(从不看日志的缘故)不知如何下手 等等

针对以上类似的现象,常见的历史处理方案如下

1、后端用Shell脚本定时监控和扫描微服务的错误日志,同时根据日志中的关键信息进行告警,通常和一些企业工具的机器人进行搭配,比如飞书机器人、钉钉机器人等。

2、使用日志收集工具,将同台服务器上多个系统的日志集中存放到同个目录,使用rsync定时从多台服务器中拉取日志文件

3、通过某些软件,对日志文件进行关键字匹配, 并将过滤结果通过邮件发送给运维人员和开发人员。

基于以上几点,可以实现我们的业务需求,但是也暴露出来了如下问题

1、无法第一时间感知错误:脚本日志的拉取不是实时的,,web端用户的反馈也往往存在滞后。出现问题到解决问题的周期太长,容易导致工作陷入被动。

2、错误信息的获取相对低效:用户反馈和邮件告警包含的错误信息非常有限,,最终都不得不在大量的日志中上下翻看关联的信息.。可能还需要在测试环境下给代码埋点多获取一些中间变量数据,给定位问题带来很多麻烦。

3、日志的处理方式不够灵活:通常来说,除了程序运行出错,我们还关心其他异常情况,比如数据污染,非法请求,第三方API调用异常等。如果将此类等同错误记录下来,很容易造成告警滥发,而如果不处理此类异常,久而久之可能导致严重的问题。我们希望同样的日志内容可以根据场景不同灵活处理。

4、监控覆盖面有限:完整的监控应该涵盖脚本,后端以及前端三个部分。特别是我们新的运维系统实现了前后端分离之后,很多前端的问题无法被统一记录下来。

5、自己公司内部的项目或者给客户部署的项目中,偶尔会出现一些非必现的bug,调试起来很不方便。

基于这些现象,可以引入本文推荐的软件:Sentry。

Sentry是一款【跨平台】的软件,用于应用监控和错误追踪日志平台,它可以将应用程序产生的错误日志的聚合和监控,支持多种语言框架。分为客户端和服务端,客户端嵌入需要被监控的项目中,程序出现异常就会向服务端发送消息,服务端可以查看到日志详情。使用时可以直接使用线上服务,也可在本地部署。

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

Github项目地址: https://github.com/getsentry/onpremise

Sentry 官方提供免费版和收费版的服务,如果不想搭建本地服务的话直接用官方服务好了。Sentry是个开源的工具可以自行搭建(推荐使用Docker搭建);Sentry支持几乎所有主流开发语言和平台, 并提供了现代化UI。

官方文档链接:

重要的几个概念如下

  • Alert:告警,当满足某些警报规则条件时,Sentry会向用户发送告警通知,让您实时了解代码的问题。提供了多种种类型的警报可用于自定义阈值和集成,也可以在业务系统中提供webhook地址,供Sentry调用。
  • DSN:数据源名称。DSN告诉Sentry SDK将事件发送到何处,以便将事件与正确的项目关联。当您创建项目时,Sentry会自动为您分配DSN。同时也是密钥, 用来进行客户端和服务器的通信。DSN是一个url, 比如https://1703147af2094458bevb1bfadcfa1c2:7e00a1d4cbd745c0b780451c3586d7f4@sentry.io/1545. 这类DSN是私密的, 还有一类是非私密的, 在Sentry后台中显示为DSN(public), 给前端项目使用.
  • event:事件, 是可操作数据的基本单位. 每一次日志输出就产生一个event. event并不一定就是错误, 如果日志记录级别设置很低, 那么后台会产生很多的event, 所以正确的设置日志级别很重要。
  • issue:工单”或者”问题”, 是同一类event的聚合. 某一个错误可能因为重复执行而被记录多出, 在sentry会自动聚合到一起, 方便处理. 通常我们操作的对象就是issue。

这里我们使用Docker环境来安装Sentry,这里简述下载CentOS系统中安装Docker的过程。

1、输入如下命令,安装Docker的依赖

 

2、输入如下命令,添加Docker的yum仓库地址

 

3、输入如下命令安装Docker

 

4、输入如下命令,配置Docker的镜像加速地址

 

添加如下内容

 

5、输入如下命令启用Docker服务

 

6、输入如下命令,查看版本

 

7、输入如下命令,下载Docker-Compose

 

8、输入如下命令,赋予权限

 

9、输入如下命令,查看版本

 
 

1、官方下载地址如下

2、下载后,将自建安装包,上传到服务器目录下,并进行解压,如下所示

 

3、安装完成后,会创建一堆Docker容器,直接使用docker-compose直接启动即可。

 

4、然后浏览器访问默认的9000端口进行访问,第一访问会提示设置根域名等信息,然后进入到登录页面

 用户名信息在执行安装的过程中会进行设置。

1、默认进入后的系统主页面如下所示

 2、我们找到系统设置,更改默认语言、时区、和24小时时间控制如下图所示

 3、设置完成后,如下图所示

1、在系统主页的上方,选择【创建项目】按钮,如下所示

 2、然后选择Java类型的项目,如下图所示

 3、在第2选项和第3选项中输入项目名称和保持默认即可,如下所示

1、获得项目的DSN信息,针对刚才新创建的Java项目,在项目设置中复制DNS信息,如下图所示

2、在当前自己的业务代码中,引入如下的Maven的Starter依赖

 

3、然后再项目的application.yml文件中配置参数:q

 

其中在DSN配置处,配置我们复制的当前项目的DSN即可。

配置好starter的信息后,默认会捕捉我们的系统异常信息,也可以在项目中手动的上报一些异常信息,使用方式如下所示

 

通过调用Sentry类的captureException方法即可。

获取到异常以后,在系统的主页面中,选择问题菜单,就可以看到我们项目中的错误日志异常,进行了统一的监控和设置。

 看到这里是不是非常方便呢,通过引入这个操作,可以在出现系统错误异常的时候,提前发现问题,并统一的进行错误日志分析。

,在下一篇的文章,我们尝试一下Sentry进行业务告警的操作。

如果正在阅读文章的你,喜欢这篇文章,请收藏、分享、关注、点赞吧。

最新文章
深圳亚马逊中级运营岗位职责
一、您能收获什么?A.公司优势:1.【专注精品】公司为精品模式,注重产品的质量及产品生命周期,看重客户的用户体验;2.【产品成果】我们的产品在小类目中处于前列;3.【持续培训】我们提供内部培训机会,定期的前端运营打法培训交流沟通,
php实现动态口令认证(谷歌身份验证器)
PHP Google 身份验证器演示这并不是一个功能齐全的应用程序。 仅演示如何将 Google Authenticator 移动应用程序与您的网站一起用作 2 因素登录系统或一次性密码。 这个简单的 PHP 脚本演示了使用 PHP 实现 Google Authenticator。 要使用此
每日凌晨对注册建造师专业、数量进行自动比对!该省住建厅发文
点击上方蓝字 关注我们 了解更多精彩12月11日,河北省住建厅发布关于公开征求《关于建立资质常态预警和动态核查机制加强全省建筑业企业资质批后监管的通知(征求意见稿)》意见的公告。自动比对+预警!(一)常态比对依托河北省建筑市场监
首发解析:网站资源优化理论与实战全面指南
  在互联网时代,网站资源优化已经成为了一个不可忽视的重要环节。一个优化得当的网站不仅可以提高用户体验,还能有效提升搜索引擎排名,从而带来更多的流量和转化。本文将从理论到实践,全面解析网站资源优化的关键要素和具体步骤。  
我在东南亚卖潮玩,暴赚几千万
涌现的财富吸引着越来越多的掘金玩家,主做玩具婴童展的小肖印象很深刻,越来越多的潮玩企业开始出海。饭后,阿黎随手给了妈妈一张存款几十万的银行卡,“你拿着花,从今天开始钱能解决的问题,不是问题了”。在讲述时,85后阿黎依然难掩当
——优化SEO,提升网站排名与流量
版权声明:图片来源网络,仅做分享之用!侵权请联系删除。我们需要了解SEO的基本概念和原理,SEO(Search Engine Optimization)是指通过一系列策略和技巧,使网站在搜索引擎中获得更好的排名,从而吸引更多的流量,这些策略包括关键词选择
聚焦微博,实现精准软件推广
在微博中大v的众多,往往可以做到一呼百应,所以通过与大v合作来发布软件内容,会有更大的曝光量,那么成功率也会上涨。当然这种方式也不是一定顺风顺水,还需要付出一定的成本。四、成为大v成为大v并不是件易事,需要慢慢“养号”,以及学
wps怎么添加边框
WPS是一款功能强大的办公软件,广泛应用于文档处理和表格制作。在WPS中,添加边框是一个常见的操作,无论是为了美化文档,还是为了突出某些内容,边框都能起到很好的作用。下面,我们就来详细介绍一下如何在WPS中添加边框。一、为WPS表格添
五个招数告诉你怎么让网站内容快速让百度收录
当我们做好一个网站并发布了,那我们要怎么做才能让我们的网站被搜索引擎收录呢?那我们的网站就要符合搜索引擎的收录规则才可以,那我们要怎么做才符合搜索引擎的收录规则呢? 一、提交网站地图 我们每天更新好站内文章之后,要
【E760360清理大师下载】天语E760360清理大师8.4.2免费下载
清理大师:更简单,更畅快!6亿用户信赖的手机清理!清理大师是一款完全免费的手机加速与空间清理软件,强力加速使手机运行更流畅,一键清理快速解决空间不足问题。【一键清理】一键搞定无用垃圾,手机清理更省心【手机加速】瞬间释放手机
相关文章
推荐文章
发表评论
0评