docker下一步步部署sentry

摘要:
首先,Sentry是一个C/S架构。我们需要在应用程序中集成Sentry的SDK,以便在应用程序发生错误时向Sentry服务器发送错误信息。根据不同的语言和框架,我们可以选择自动或自定义特殊错误类型,以向Sentry服务器报告。Sentry的服务器端分为web、cron和worker。应用程序(客户端)出错后,会向web报告错误信息。web处理后,将其放入消息队列或Redis内存队列。工作人员使用队列中的数据进行处理,postgresql持久化数据。

sentry概述

  Sentry是程序的哨兵,它可以监控我们在生产环境中项目的运行状态,一旦某段代码运行报错或者异常,会第一时间把报错的路由异常文件,请求方式 等一些非常详细的信息以消息或者邮件给我们,让我们第一时间知道:程序出错了,然后我们可以从 Sentry 给我们的详细的错误信息中瞬间找到我们需要处理的代码,及时解决异常!

官方地址:

https://github.com/getsentry/onpremise     //安装部署

https://sentry.io

https://github.com/getsentry/sentry

https://github.com/docker-library/docs/tree/master/sentry     //dockerhub官方镜像 v9.1.2

## Requirements
 
 * Docker 17.05.0+
 * Compose 1.17.0+

## Minimum Hardware Requirements:
 
 * You need at least 3GB RAM
 
env:
centos7.x

sentry架构

注意:当前分析v9.1.2

  Sentry到底是如何实现实时日志监控报警的呢?首先,Sentry是一个C/S架构,我们需要在自己应用中集成Sentry的SDK(支持前后端语言)才能在应用发生错误是将错误信息发送给Sentry服务端。根据语言和框架的不同,我们可以选择自动或自定义设置特殊的错误类型报告给Sentry服务端。
  Sentry的服务端分为web、cron、worker这几个部分,应用(客户端)发生错误后将错误信息上报给web,web处理后放入消息队列或Redis内存队列,worker从队列中消费数据进行处理,postgresql对数据持久化。

my-sentry:sentry的web服务
sentry-cron:sentry的定时任务,活性检测
sentry-worker:业务处理,数据持久化,报警

docker下一步步部署sentry第1张

部署docker/docker-compose

docker-ce

docker-compose

部署sentry

拉取镜像

docker pull sentry       ###目前最新版本9.1.2

docker pull redis

docker pull postgres

启动服务

docker run -d --name sentry-redis --restart=always redis   ###保证了,异常自动拉起
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry --restart=always postgres

生成sentry秘钥

docker run --rm sentry config generate-secret-key

n8ntkj(u3z5(o18tm*wprg^sqp2)z%980f@upd7(e86v67g*ut  ###打印出secret-keys

数据库及账户初始化及

注意:过程中需要你创建用户和密码
During the upgrade, you will be prompted to create the initial user which will act as the superuser.

docker run -it --rm -e SENTRY_SECRET_KEY='n8ntkj(u3z5(o18tm*wprg^sqp2)z%980f@upd7(e86v67g*ut' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade

启动sentry的web服务

The web interface needs to expose port 9000 into the container. This can just be done with –publish 9000:9000:
You should now be able to test the web service by visiting http://localhost:9000/

docker run -d -p 9000:9000 --name my-sentry -e SENTRY_SECRET_KEY='n8ntkj(u3z5(o18tm*wprg^sqp2)z%980f@upd7(e86v67g*ut' --link sentry-redis:redis --link sentry-postgres:postgres --restart=always sentry

启动sentry-cron/work服务

docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='n8ntkj(u3z5(o18tm*wprg^sqp2)z%980f@upd7(e86v67g*ut' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron

docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='n8ntkj(u3z5(o18tm*wprg^sqp2)z%980f@upd7(e86v67g*ut' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker

登录测试效果

http://ip:9000/  

注意:认证账户就是初始化的邮箱及密码

docker下一步步部署sentry第2张

reference:

https://www.cnblogs.com/watchslowly/p/11309052.html

免责声明:文章转载自《docker下一步步部署sentry》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Java之"Mozilla Rhino"引擎(二)kotlin的一些特性介绍和与java C#的简单对比下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

华三SNMP配置详解

一、SNMP配置 1.1  SNMP简介 SNMP(Simple Network Management Protocol,简单网络管理协议)是网络中管理设备和被管理设备之间的通信规则,它定义了一系列消息、方法和语法,用于实现管理设备对被管理设备的访问和管理。SNMP具有以下优势:   自动化网络管理。网络管理员可以利用SNMP平台在网络上的节点检索信息、修...

如何保证接口的幂等性。。。。。

在微服务架构下,我们在完成一个订单流程时经常遇到下面的场景: 一个订单创建接口,第一次调用超时了,然后调用方重试了一次 在订单创建时,我们需要去扣减库存,这时接口发生了超时,调用方重试了一次 当这笔订单开始支付,在支付请求发出之后,在服务端发生了扣钱操作,接口响应超时了,调用方重试了一次 一个订单状态更新接口,调用方连续发送了两个消息,一个是已创建,一个...

微信小程序 发送模板消息的功能实现

背景 - 小程序开发的过程中,绝大多数会满足微信支付 - 那么,作为友好交互的体现,自然就会考虑到支付后的消息通知咯 - 所以,我的小程序项目也要求完成这个效果,so.分享一下自己的实现步骤,以方便道友们少踩点坑... 微信消息通知的区别: 1. 微信网页版、公众号的消息提醒 要求用户必须 "关注商家公众号",才支持消息的接收 并且还有个奇怪...

C# 消息处理机制及自定义过滤方式

一、消息概述 Windows 下应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。 1. 什么是消息(Message) 消息就是通知和命令。在.NET框架类库中的System.Windows.Forms命名空间中微软采用面对对象的方式重新定义了Message。新的消息(Message)结构...

JavaEE系列之(二)commons-fileupload实现文件上传、下载

一、文件上传概述     实现Web开发中的文件上传功能,需要两步操作:     1、在Web页面中添加上传输入项 <form action="#" method="post" enctype="multipart/form-data"> <input type="file" name="file...

在MDK中使用 printf 函数

microlib 提供了一个有限的 stdio 子系统,它仅支持未缓冲的 stdin、stdout 和 stderr。 这样,即可使用 printf() 来显示应用程序中的诊断消息。 要使用高级 I/O 函数,您必须提供自己实现的以下基本函数,以便与您自己的 I/O 设备配合使用。 fputc()  为所有输出函数实现此基本函数。 例如,fprintf(...