Sentry 企业级数据安全解决方案 - Relay 操作指南

本文涉及的产品
数据安全中心,免费版
简介: Sentry 企业级数据安全解决方案 - Relay 操作指南

注意事项



  • 我们建议使用官方提供的 Docker 镜像(getsentry/Relay运行 Relay,该镜像位于 DockerHub 上,并带有 Git 修订标识符,而不是从源代码构建。
  • 我们建议至少运行两个 Relay 实例(容器),并在它们前面使用反向代理(例如 HAProxy 或 Nginx),以提高可用性并简化 Relay 更新。
  • 要监控您的 Relay 设置,请配置 日志记录, 指标, 和 健康检查。


系统要求和建议



以下建议假设 RelayDocker 中运行。


资源 建议
CPU
  • 必需: x86-64 (amd64) CPU 架构
  • 多核 CPU
内存
  • 建议每个 Relay 容器至少有 2GB 的 RAM。
网络
  • 带宽:确保您有足够的容量来接收和转发计划的数据量。默认情况下,Relay 会将所有上游请求压缩到 sentry.io,但压缩率可能会因提交事件的类型和形状而异。
  • 延迟:Relay 可以容忍网络延迟达到某个点。但是建议确保到上游的往返时间保持低于 5 秒。
存储
  • Relay 当前不需要磁盘存储。


Relay 是一个多线程应用程序,它试图利用所有可用的 CPU 内核。因此,Sentry 强烈建议在多核 CPU 上运行 Relay。如果您的设置预计每秒处理 100 个以上的请求,我们建议在至少四 (4) 个 CPU 内核上运行 Relay。默认情况下,每个 Relay 实例将使用可用内核的总数来调整其线程池的大小。通过配置 limits.max_thread_count 来调整此行为。


示例配置



此示例配置设置基本日志记录和指标设置,以及更改默认并发级别。


---
relay:
  # The upstream hostname is taken from any of your DSNs.
  # Go to your Project Settings, and then to "Client Keys (DSN)" to see them.
  upstream: https://___ORG_INGEST_DOMAIN___.
  host: 0.0.0.0
  port: 3000
logging:
  level: info
  format: json
metrics:
  statsd: 127.0.0.1:8126
  prefix: relay
limits:
  # Base size of various internal thread pools. Defaults to the number of logical CPU cores
  max_thread_count: 8


有关所有可用选项的详细说明,请参阅配置选项页面。


性能调优



Relay 提供了多种配置选项。与其他选项相比,更改某些选项对 Relay 的行为的影响更大。以下列表列出了当您想要根据组织的环境和工作负载调整 Relay 时应首先检查的几个选项:


  • limits.max_concurrent_requests (default: 100)

您的 Relay 实例可以发送到上游 (Sentry) 的并发请求数。如果您的事件量或 Sentry 的连接延迟很高,您可以增加此值以获得额外的吞吐量,尽管增加的代价是额外的网络连接。


  • cache.event_buffer_size (default: 1000)

在开始拒绝新事件之前,Relay 可以在其本地队列中缓冲多少事件。例如,当网络问题阻止 Relay 将接收到的消息转发到 Sentry 时,增加此值也会增加 Relay 的潜在内存消耗。


  • cache.event_expiry (in seconds, default: 600)

在丢弃事件之前,Relay 可以将缓冲的事件保留在内存中的时间。如果您预计 Relay 可能需要在内存中保留事件的时间比默认值长,则可以增加此值。


  • cache.project_expiry (in seconds, default: 300)

为了保持正常运行,Relay 会定期从 Sentry 上游获取项目配置。此设置控制 Relay 获取该配置的频率。您可以减小此值以使配置传播更加频繁。例如,如果您稍后在 Sentry 的项目设置中更改数据清理选项,您的 Relay 实例将更快地意识到这些更改。


  • cache.project_grace_period (in seconds, default: 0)

项目配置过期后仍可使用多长时间。当上游无法访问时,增加此值可能会有所帮助;例如,由于网络问题。


请求路由



SDK 在一组端点上与 Sentry 通信。Relay 提供相同的 API 以成为无缝替代品。这需要一组端点可以访问:


  • /api/<project-id>/envelope/
  • /api/<project-id>/minidump/
  • /api/<project-id>/security/
  • /api/<project-id>/store/
  • /api/<project-id>/unreal/


根据 SDK 或客户端,对这些端点的请求使用压缩内容编码(compressed content-encoding)分块传输编码(chunked transfer-encoding)执行。根据 Relay 前面的基础设施,请检查以下 HTTP 头设置是否正确:

  • Host: 到此 Relay 的公共主机名
  • X-Forwarded-For: 到客户端 IP 地址
  • X-Sentry-Auth: 客户端提供的值


代理通常为请求设置默认的最大 body 大小。尤其是原生崩溃报告和附件可能会超出这些限制。我们建议将最大客户端 body 大小配置为 100MB


在内部,Relay 向已配置的上游发出请求以转发数据并检索项目配置。我们 强烈建议 不要限制这些请求。目前,Relay 向以下端点发出请求以进行基本操作:

以上所有端点:


  • /api/0/relays/projectconfigs/
  • /api/0/relays/publickeys/
  • /api/0/relays/register/challenge/
  • /api/0/relays/register/response/
相关文章
|
存储 SQL 分布式计算
数据中台实战(11)-数据中台的数据安全解决方案
数据中台实战(11)-数据中台的数据安全解决方案
416 1
|
存储 算法 前端开发
面试官:如何保证用户模块的数据安全?说说你的解决方案
面试官:如何保证用户模块的数据安全?说说你的解决方案
210 0
面试官:如何保证用户模块的数据安全?说说你的解决方案
|
存储 消息中间件 缓存
Sentry Relay 二次开发调试简介
Sentry Relay 二次开发调试简介
216 0
|
JSON 开发工具 数据安全/隐私保护
Sentry 企业级数据安全解决方案 - Relay PII 和数据清理
Sentry 企业级数据安全解决方案 - Relay PII 和数据清理
216 0
|
JSON 数据安全/隐私保护 数据格式
Sentry 企业级数据安全解决方案 - Relay 项目配置
Sentry 企业级数据安全解决方案 - Relay 项目配置
140 0
|
6月前
|
存储 数据采集 安全
瓴羊Dataphin数据安全能力再升级,内置分类分级模板、上线隐私计算模块
瓴羊Dataphin数据安全能力再升级,内置分类分级模板、上线隐私计算模块
202 0
|
4月前
|
安全 Java Apache
Java中的数据安全与隐私保护技术
Java中的数据安全与隐私保护技术
|
6月前
|
存储 人工智能 算法
数据安全与隐私保护在人工智能时代的挑战与应对
随着人工智能技术的快速发展,数据安全和隐私保护问题日益凸显。本文将探讨在人工智能时代下,数据安全面临的挑战以及如何有效应对,为保护用户数据和维护信息安全提供新思路。
1101 13
|
6月前
|
监控 安全 网络安全
云端防御策略:在云计算中确保数据安全与隐私
【4月更文挑战第6天】 随着企业和个人日益依赖云服务,数据安全性和隐私保护成为不容忽视的挑战。本文探讨了云计算环境中面临的主要网络安全威胁,并提出了综合性的安全措施来加强防护。我们将从云服务的基础知识出发,分析安全风险,并深入讨论如何通过加密技术、身份验证、访问控制以及持续监控等手段来提高数据的安全性。文章的目标是为读者提供一套实用的策略框架,以便在享受云计算带来的便利时,能够有效地保障信息安全。
|
6月前
|
存储 边缘计算 安全
边缘计算中的数据安全与隐私保护:挑战与应对策略
边缘计算中的数据安全与隐私保护:挑战与应对策略