sentry概述
是一个实时事件日志记录和聚合平台。它专门用于监视错误和提取执行适当的事后操作所需的所有信息, 而无需使用标准用户反馈循环的任何麻烦
官方地址:
https://github.com/getsentry/onpremise
https://github.com/getsentry/sentry
https://github.com/docker-library/docs/tree/master/sentry
Docker 17.05.0+
Compose 1.23.0+
Minimum Hardware Requirements:
You need at least 2400MB RAM
sentry架构
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 pull sentry
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
数据库及账户初始化及
过程中需要你创建用户和密码
docker run -it --rm -e SENTRY_SECRET_KEY='<key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
启动sentry的web服务
docker run -d -p 9000:9000 --name my-sentry -e SENTRY_SECRET_KEY='<key>' --link sentry-redis:redis --link sentry-postgres:postgres --restart=always sentry
启动sentry-cron/work服务
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='<key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='<key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
测试登录
或者拉取github上sentry的docker配置文件
git clone https://github.com/getsentry/onpremise.git
使用所有默认值,只需克隆存储库并./install.sh在本地结帐中运行即可。
常见问题
ERROR: for symbolicator docker-credential-wincred not installed or not available in PATH
解决方法
删除rm -rf ~/.docker/config.json文件