Sentry(v20.12.1) K8S 雲原生架構探索,玩轉前/後端監控與事件日誌大資料分析,高效能+高可用+可擴充套件+可伸縮叢集部署

為少發表於2021-01-10

Sentry 算是目前開源界集錯誤監控,日誌打點上報,事件資料實時分析最好用的軟體了,沒有之一。將它部署到 Kubernetes,再搭配它本身自帶的利用 Clickhouse (大資料實時分析引擎)構建的 Snuba 服務進行資料分析~簡直了。(已無敵?)

在實戰之前,我們先跟隨官方文件初步瞭解下 Sentry 的整體專案架構。

專案架構

這一節,來自於官方文鐺。

注意:最新官方版 20.12.1,截止到今天(202001009)。

它的架構細節可能又發生了演進,從已啟動的容器來看。

高層概述

邊線表示 Sentry 服務依賴關係圖

事件管道

如何儲存事件。邊線表示通過系統的資料流。

由於佈局限制,此圖非常簡化。此圖表中缺少:

  • Relay 如何獲取專案配置。答:來自 sentry-web
  • Relay 如何快取專案配置。答:在記憶體中,在 Redis 中
  • Relay 如何計數事件並跟蹤 quotas(配額)。答案:更多 Redis
  • Symbolicator 作為 symbolicate-event 的輔助服務
  • 如何觸發警報。回答:postprocess-event,一個 Celery 任務,負責報警(由一個Kafka消費者在Sentry中從eventstream讀取資料)
  • 可能更多

有關更多資訊請閱讀 Path of an event through RelayEvent 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?):

中文文件陸續同步到:

我是為少。

微信:uuhells123。

公眾號:黑客下午茶。

謝謝點贊支援???!

相關文章