Sentry
算是目前开源界集错误监控,日志打点上报,事件数据实时分析最好用的软件了,没有之一。将它部署到 Kubernetes
,再搭配它本身自带的利用 Clickhouse
(大数据实时分析引擎)构建的 Snuba
服务进行数据分析~简直了。(已无敌)
在实战之前,我们先跟随官方文档初步了解下 Sentry
的整体项目架构。
项目架构
这一节,来自于官方文铛。
- https://develop.sentry.dev/architecture/
注意:最新官方版 20.12.1
,截止到今天。
它的架构细节可能又发生了演进,从已启动的容器来看。
高层概述
边线表示 Sentry 服务依赖关系图
事件管道
如何保存事件。边线表示通过系统的数据流。
由于布局限制,此图非常简化。此图表中缺少:
- Relay 如何获取项目配置。答:来自 sentry-web
- Relay 如何缓存项目配置。答:在内存中,在 Redis 中
- Relay 如何计数事件并跟踪 quotas(配额)。答案:更多 Redis
- Symbolicator 作为 symbolicate-event 的辅助服务
- 如何触发警报。回答:postprocess-event,一个 Celery 任务,负责报警(由一个Kafka消费者在Sentry中从eventstream读取数据)
- 可能更多
有关更多信息请阅读 Path of an event through Relay 和 Event Ingestion Pipeline。
通过 Relay 的事件路径
事件提取管道
部署实战
Helm Charts
这里我用的是:sentry-kubernetes/charts
Helm 一键部署
注意:Helm 部署是一个比较专业的话题(要玩好,注意拖运维大佬下水),如:
- 持久化是否采用分布式存储 or NFS...
- 是否采用外部(公司运维老板维护的)的 Redis 集群
- 是否采用外部的 Kafaka 集群
- 是否采用外部的 RabbitMQ 集群
- 是否采用外部的 Postgresql 集群
- 是否采用外部的 Clickhouse 集群
- 等等......
试玩:
helm repo add sentry https://sentry-kubernetes.github.io/charts
helm repo update
helm search repo sentry
# sentry/sentry 8.1.0 20.12.1 A Helm chart for Kubernetes
# 我这里用的是这个版本
helm install sentry sentry/sentry --version 8.1.0 -n sentry
你没看错,我这里足足给你启动了 34
个容器(too young, too simple, sometimes naive
):
中文文档陆续同步到:
- https://getsentry.hacker-linner.com
我是为少。
微信:uuhells123。
公众号:黑客下午茶。
谢谢点赞支持!