docker下一步步部署sentry

liaochaowu 2020-03-28

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

部署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%(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%(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%(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%(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%(e86v67g*ut‘ --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker

登录测试效果

http://ip:9000/  

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

docker下一步步部署sentry

reference:

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

相关推荐