1.png
Sentry
算是目前開(kāi)源界集錯(cuò)誤監(jiān)控走净,日志打點(diǎn)上報(bào)券时,事件數(shù)據(jù)實(shí)時(shí)分析最好用的軟件了,沒(méi)有之一伏伯。將它部署到 Kubernetes
橘洞,再搭配它本身自帶的利用 Clickhouse
(大數(shù)據(jù)實(shí)時(shí)分析引擎)構(gòu)建的 Snuba
服務(wù)進(jìn)行數(shù)據(jù)分析~簡(jiǎn)直了。(已無(wú)敵??)
在實(shí)戰(zhàn)之前说搅,我們先跟隨官方文檔初步了解下 Sentry
的整體項(xiàng)目架構(gòu)炸枣。
項(xiàng)目架構(gòu)
這一節(jié),來(lái)自于官方文鐺弄唧。
注意:最新官方版 20.12.1
适肠,截止到今天。
它的架構(gòu)細(xì)節(jié)可能又發(fā)生了演進(jìn)候引,從已啟動(dòng)的容器來(lái)看侯养。
高層概述
邊線表示 Sentry 服務(wù)依賴關(guān)系圖
1.png
事件管道
如何保存事件。邊線表示通過(guò)系統(tǒng)的數(shù)據(jù)流澄干。
由于布局限制逛揩,此圖非常簡(jiǎn)化柠傍。此圖表中缺少:
- Relay 如何獲取項(xiàng)目配置。答:來(lái)自 sentry-web
- Relay 如何緩存項(xiàng)目配置息尺。答:在內(nèi)存中携兵,在 Redis 中
- Relay 如何計(jì)數(shù)事件并跟蹤 quotas(配額)疾掰。答案:更多 Redis
- Symbolicator 作為 symbolicate-event 的輔助服務(wù)
- 如何觸發(fā)警報(bào)搂誉。回答:postprocess-event静檬,一個(gè) Celery 任務(wù)炭懊,負(fù)責(zé)報(bào)警(由一個(gè)Kafka消費(fèi)者在Sentry中從eventstream讀取數(shù)據(jù))
- 可能更多
有關(guān)更多信息請(qǐng)閱讀 Path of an event through Relay 和 Event Ingestion Pipeline。
2.png
通過(guò) Relay 的事件路徑
2-1.png
事件提取管道
2-2.png
部署實(shí)戰(zhàn)
Helm Charts
這里我用的是:sentry-kubernetes/charts
Helm 一鍵部署
注意:Helm 部署是一個(gè)比較專業(yè)的話題(要玩好拂檩,注意拖運(yùn)維大佬下水??)侮腹,如:
- 持久化是否采用分布式存儲(chǔ) or NFS...
- 是否采用外部(公司運(yùn)維老板維護(hù)的)的 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
# 我這里用的是這個(gè)版本
helm install sentry sentry/sentry --version 8.1.0 -n sentry
你沒(méi)看錯(cuò),我這里足足給你啟動(dòng)了 34
個(gè)容器(too young, too simple, sometimes naive??
):
3.png
中文文檔陸續(xù)同步到:
我是為少稻励。
微信:uuhells123父阻。
公眾號(hào):黑客下午茶。
謝謝點(diǎn)贊支持??????望抽!