Sentry(日志监控系统)搭建与集成
Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题
本文采用在docker中安装sentry服务端
- sentry依赖redis、Postgre
- 安装redis并启动
docker run -d --name sentry-redis redis
- 安装Postgre并启动
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
- 安装sentry并生成一个密钥,用于在后面所有sentry容器之间握手
docker run --rm sentry config generate-secret-key
*** 此处生成的密钥需要记录下后续使用
- 连接Redis、Postgres和Sentry,运行后会自动执行初始化操作
docker run -it --rm -e SENTRY_SECRET_KEY='此处为密钥' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
- 启动 Sentry Server,同时添加端口映射
docker run -d --name my-sentry -p 9000:9000 -e SENTRY_SECRET_KEY='此处为密钥' --link sentry-redis:redis --link sentry-postgres:postgres sentry
- 默认配置中需要Celery,因此启动一个Celery 主节点
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='o2+e6yq-7&f()to7mm*3__8%ql)nm4)4!!a5t0uc4p8s8xi==k' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
- 启动执行节点(worker节点可按需多启几个)
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='o2+e6yq-7&f()to7mm*3__8%ql)nm4)4!!a5t0uc4p8s8xi==k' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
以上便完成了sentry的搭建,检验是否安装成功,可以访问sentry页面 http://ip:9000
- 注册进入主页面后,点击项目并新建项目,选择Java输入任意项目名并创建;
- 创建完成后进入项目点击设置,选择DSN查看如下图:
- 复制DSN地址配置客户端时使用
客户端集成
- pom.xml引入
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-spring</artifactId>
<version>1.7.27</version>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
<version>1.7.5</version>
</dependency>
- logback添加依赖:
<appender name="Sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
<root level="INFO">
<!-- 新增sentry -->
<appender-ref ref="Sentry"/>
</root>
- 配置中添加dsn秘钥sentry.dsn之前复制的,启动项目;
至此sentry集成完成,可以进入项目查看相关配置的级别日志;
时在中春,阳和方起
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决