sentry--错误日志收集

curationfe curationfe     2022-11-09     313

关键词:

简介

  Sentry是一个实时事件日志记录和汇集的日志平台,其专注于错误监控,以及提取一切事后处理所需的信息。他基于Django开发,目的在于帮助开发人员从散落在多个不同服务器上的日志文件里提取发掘异常,方便debug。它分为客户端和服务端,客户端就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web节目方便查看。

  DSN(Data Source Name)

  当你完成sentry配置的时候,你会得到一个称为“DSN”的值,看起来像一个标准的URL。Sentry 服务支持多用户、多团队、多应用管理,每个应用都对应一个 PROJECT_ID,以及用于身份认证的 PUBLIC_KEY 和 SECRET_KEY。由此组成一个这样的 DSN:

‘PROTOCOL://PUBLIC_KEY:SECRET_KEY@HOST/PATHPROJECT_ID‘

PROTOCOL 通常会是 http 或者 https,HOST 为 Sentry 服务的主机名和端口,PATH 通常为空。

  Sentry支持的语言:

技术分享图片

安装

 这里有两种方式安装sentry,我这里介绍用docker的安装方式(官网推荐用docker)。如果你觉得自己搭建麻烦,担心维护不方便,不妨使用国内类似的SaaS服务Fundebug

sentry运行需要的服务:

PostgreSQL

Redis

Memcached

Outbound Email

启动sentry需要依赖的服务:

Web Service

Background Workers

Cron Process

容器安装sentry需要的环境:

Docker 1.10.0+

Compose 1.6.0+ (optional)

另外redis、数据库等也可以配置cluster,并结合HAProxy使用。我这里docker容器全部只安装在了一台机器(Ubuntu1404)上。

  1. 安装docker

增加GPG key:

1
2
3
4
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D

配置apt仓库:

在/etc/apt/sources.list文件最好追加一行:

1
deb https://apt.dockerproject.org/repo ubuntu-trusty main

安装 docker-engine:

1
2
3
sudo apt-get update
sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
sudo apt-get install docker-engine

2、安装docker-compose

使用pip安装,如果没有pip需要先安装:

1
2
sudo apt-get install python-pip
sudo pip install docker-compose

3、构建容器并创建数据库和sentry安装目录

1
2
3
sudo apt-get install git
sudo git clone 
sudo mkdir -p data/sentry,postgres

4、生成secret key并添加到docker-compose文件里:

1
2
3
4
sudo docker-compose run --rm web config generate-secret-key
# 这里复制生成的字符串
sudo vim docker-compose.yml
# 取消SENTRY_SECRET_KEY的注释,并把刚刚复制的字符串插入其中,类似如下:

技术分享图片

5、重建数据库,并创建sentry超级管理员用户

1
sudo docker-compose run --rm web upgrade

这里采用交互方式创建用户:

upgrade过程:

技术分享图片

创建用户,sentry新建的时候需要一个超级管理员用户:

技术分享图片

6、启动所有的服务:

1
sudo docker-compose up -d

技术分享图片

7、访问sentry

打开浏览器,输入url:http://ipaddress:9000

访问之前可以检查下容器和端口情况:

docker ps看下当前运行的容器:

技术分享图片

netstat查看端口打开情况:

技术分享图片

登陆界面,这里会提示你的Root URL,如果不想更改继续下一步即可完成:

技术分享图片

页面展示:

技术分享图片

至此sentry搭建完成!

补充:

  Sentry目前用户类型有四种: 超级管理员, 管理员,普通用户和System agents. 超级用户只能通过命令行来创建,其他用户可以自己注册或由其他用户邀请注册加入,然后由超级管理员或管理员分配项目和权限。为了更好支持团队协助以及信息安全,新版本Sentry(5.4.2)经过了重新设计,重新设计后的Sentry以Team为中心组织权限。所谓Team就是一个团队,一些用户组织在一起对某些项目有操作权限的组织。一个项目只能属于一个Team, 一个用户却可以属于多个Team, 并可在不同Team中扮演不同角色, 如用户A在Team X是管理员而在Team Y中是System agents. Sentry对用户角色的指定只能到Team级别,不能到Project级别, 所以将某个用户加入到某个Team之后,这个用户就对所有所有属于这个Team下所有project有了相同的权限。

  • 超级管理员: 能创建各种用户, team和project只能由超级管理员创建。项目的一些设置比如改变Owner, 数据公开可见与否(设为public的数据可以通过url不登陆也能查看)以及客户端domain限制的设定。另外还有管理项目的api key(客户端只有得到此api key才能向Sentry发送消息)的权限等等。

  • 管理员: 能创建用户, team和项目设定中除改变owner之外的权限, 可以对项目中具体数据做resolve, bookmark, public/public和remove操作。

  • 普通用户: 无Team界面,只能对项目中具体数据做resolve, bookmark, public/unpublic和remove操作。

  • System agents: 无Team界面,只能对项目中具体数据做bookmark, unpublic和remove操作。

参考链接:

docker安装:https://docs.docker.com/engine/installation/linux/ubuntulinux/

sentry安装:https://docs.sentry.io/server/installation/

Fundebug: https://www.fundebug.com

 

面向bug编程

任何时候BUG永远是存在的,在日常编码中我们该如何避免——语法检查在日常的IDE中开始不同语言不同框架对应的语法检查,在编写出来同时就能发现错误在文件保存和版本commit提交的时候,再次进行语法检查,减少检查遗漏环... 查看详情

docker手动搭建sentry错误日志系统(代码片段)

Sentry介绍在开发过程中,我们通过debug来排查bug,并且使用logging来记录系统的错误。但是logging有很多不足:必须登陆到服务器查看日志文件需要主动去查询输出日志方式无法把门,无法统一管理为什么要使用sentry:多项目管理... 查看详情

sentry有什么作用

Sentry是一个异常日志集中收集系统,它可以捕捉到stacktrace,stacklocals,precedingevents和引发该异常的commit号。而当bugfix后,sentry会自动追踪上次异常是否在本次提交中复现,当出现时,再次通知该bug修复人员去处理。Sentry是client/server... 查看详情

sentry

1.Sentry是什么?  Sentry是一个异常日志集中收集系统。  英文意思:警卫2.Sentry有什么用?  它可以捕捉到stacktrace,stacklocals,procedingevent和引发该异常的commit号。  当bugfix后,Sentry会自动追踪上次异常是否在本次提交中... 查看详情

如何在 Python 中向 Sentry 发送日志记录附件?

】如何在Python中向Sentry发送日志记录附件?【英文标题】:HowtosendaloggingattachmenttoSentryinPython?【发布时间】:2021-12-0311:31:48【问题描述】:每次发生错误/异常时,我一直在尝试从python向哨兵发送“.log”文件附件,但到目前为止... 查看详情

实时事件日志记录和聚合的平台——sentry

  不管你用什么编程语言,都会面临如何处理错误日志的问题。很多程序员对错误日志放任自流,直到出现故障了才追悔莫及,如果问小编怎么办,我会给你推荐Sentry!650)this.width=650;"src="https://mmbiz.qpic.cn/mmbiz_jpg/VGSq2BLL9klZ... 查看详情

实时事件日志记录和聚合的平台——sentry

 不管你用什么编程语言,都会面临如何处理错误日志的问题。很多程序员对错误日志放任自流,直到出现故障了才追悔莫及,如果问小编怎么办,我会给你推荐Sentry!650)this.width=650;"src="https://mmbiz.qpic.cn/mmbiz_jpg/VGSq2BLL9klZp6bkdK... 查看详情

比较 Sentry 与 Google 错误报告

】比较Sentry与Google错误报告【英文标题】:CompareSentrywithGoogleErrorReporting【发布时间】:2021-05-2219:27:45【问题描述】:我正在尝试查看是否可以将Sentry替换为Google错误报告以解决生产阶段未处理的错误,但是当我研究比较这2个时... 查看详情

前端统计利器:sentry&matomo(代码片段)

今天主要说下两款前端统计工具的使用,Sentry&Matomo。以下主要是统计代码接入方式,因此使用前提是你已经在自己的服务器上搭建好了Sentry和Matomo的服务器Sentry统计使用方法Sentry是一个比较完善的错误统计日志系统,可以纯... 查看详情

sentry日志管理系统安装以及使用教程(代码片段)

Sentry是一个开源的实时错误报告工具,支持web前后端、移动应用以及游戏,支持Python、OC、Java、Go、Node、Django、RoR等主流编程语言和框架,还提供了GitHub、Slack、Trello等常见开发工具的集成。github地址一、环境准备环境说明ubuntu1... 查看详情

elastic(elk)stack实战教程06filebeat日志收集实践(下)(代码片段)

...3.2修改日志为json格式2.3.3配置Filebeat2.3.4配置kibana2.4 Tomcat错误日志收集实践2.4.1 错误日志特点2.4.2 错误日志收集思路2.4.3 错误日志收集实践2.4.4kibana展示2.5 收集多台Tomcat节点日志三、ES错误日志收集实践一、Filebeat收集Nginx日... 查看详情

使用sentry集中化日志管理

在调试程序中,通过日志分期来排查BUG是一个重要手段,它可以说是程序调试的利器。关于日志管理随着应用组件变多,那么各coder对输出日志五花八门,有写入stdout,有写stderr,有写到syslog,也有写到xxx.log的。那么这将导致平... 查看详情

sentry实时事件日志聚合平台

1.installpostgreSQL(v9.6)2.pipinstallsentry(v8.13.0)3.sentryinit#初始化配置文件4.配置好postgreSQL需要连接redis5.sentryupgrade#创建超级用户输错后可以用sentrycreateuser6.sentrystart#主程序 sentryrunworker#worker任务执行框架celery&nb 查看详情

有没有办法从 Sentry 捕获日志并将它们发布到我的自定义后端?

】有没有办法从Sentry捕获日志并将它们发布到我的自定义后端?【英文标题】:IsthereawaytocatchthelogsfromSentryandpostthemtomycustomBackend?【发布时间】:2022-01-0603:06:29【问题描述】:我将Sentry集成到我的Angular应用程序中。有没有办法从S... 查看详情

sentry之配置与测试

 发邮件测试如何测试系统邮件设置是否正确登录系统 http://server_ip:9000/manage/status/mail/,最下方有个按钮,会发送一封测试邮件。获取错误日志测试登录服务器,创建一个项目,并且选择好项目所属类型,就会有一段测试... 查看详情

Flex / adobe air 错误收集服务

】Flex/adobeair错误收集服务【英文标题】:Flex/adobeairerrorcollectionservice【发布时间】:2014-08-1212:56:49【问题描述】:我有一个adobeair.exe应用程序,它有时会随机崩溃而没有任何明确的原因。我正在研究如何运行与我的应用程序集成... 查看详情

如何测试 Sentry 是不是报告错误?

】如何测试Sentry是不是报告错误?【英文标题】:HowdoItestthatSentryisreportingerrors?如何测试Sentry是否报告错误?【发布时间】:2018-04-3005:43:42【问题描述】:我刚刚使用他们提供的标准代码sn-p为客户端JavaScript应用程序安装了Sentry... 查看详情

基于sentry的前端性能监控平台搭建与应用(代码片段)

一、Sentry简介Sentry是一套开源的实时异常收集、追踪、监控系统,支持几乎所有的语音和平台。这套系统由对应各种语言的SDK和一套庞大的数据后台服务组成,通过SentrySDK的配置,可以上报错误关联的版本信息、发布... 查看详情