内容整理自官方文档

本篇回顾了我们在自托管外部使用 Relay 时的操作指南,即在您的硬件上运行的 Relay 并将事件转发到 sentry.io

系列

注意事项

系统要求和建议

以下建议假设 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/

Sentry 企业级数据安全解决方案 - Relay 操作指南的更多相关文章

  1. Sentry 企业级数据安全解决方案 - Relay 运行模式

    内容整理自官方开发文档 Relay 可以在几种主要模式之一下运行,如果您正在配置 Relay server 而不是使用默认设置,那么事先了解这些模式至关重要. 模式存储在配置文件中,该文件包含 rel ...

  2. Sentry 企业级数据安全解决方案 - Relay 配置选项

    Relay 的配置记录在文件 .relay/config.yml 中.要更改此位置,请将 --config 选项传递给任何 Relay 命令: ❯ ./relay run --config /path ...

  3. Sentry 企业级数据安全解决方案 - Relay 监控 & 指标收集

    内容整理自官方文档 系列 Sentry 企业级数据安全解决方案 - Relay 入门 Sentry 企业级数据安全解决方案 - Relay 运行模式 Sentry 企业级数据安全解决方案 - Rela ...

  4. Sentry 企业级数据安全解决方案 - Relay 项目配置

    内容整理自官方文档 系列 Sentry 企业级数据安全解决方案 - Relay 入门 Sentry 企业级数据安全解决方案 - Relay 运行模式 Sentry 企业级数据安全解决方案 - Rela ...

  5. Sentry 企业级数据安全解决方案 - Relay PII 和数据清理

    本文档描述了一种我们希望最终对用户隐藏的配置格式.该页面仍然存在的唯一原因是当前 Relay 接受这种格式以替代常规数据清理设置. 以下文档探讨了 Relay 使用和执行的高级数据清理配置的语法和语义 ...

  6. Sentry 企业级数据安全解决方案 - Relay 入门

    内容整理自官方开发文档 Sentry Relay 通过提供作为应用程序和 sentry.io 之间中间层的独立服务来提供企业级数据安全性. Relay 专门设计用于: 在将个人身份信息 (PII) 发 ...

  7. 《Hadoop高级编程》之为Hadoop实现构建企业级安全解决方案

    本章内容提要 ●    理解企业级应用的安全顾虑 ●    理解Hadoop尚未为企业级应用提供的安全机制 ●    考察用于构建企业级安全解决方案的方法 第10章讨论了Hadoop安全性以及Hado ...

  8. Foreman 企业级配置管理解决方案

    Foreman 企业级配置管理解决方案 Foreman 企业级配置管理解决方案 笔记本 puppet foreman 构建运维体系 本文是构建运维体系的其中一个关键环节. 什么是 foreman Fo ...

  9. Oracle数据安全解决方案(1)——透明数据加密TDE

    Oracle数据安全解决方案(1)——透明数据加密TDE2009年09月23日 22:49:00 华仔爱技术 阅读数:7991原文地址: http://www.oracle.com/technolog ...

随机推荐

  1. CSS伪类选择器实现三角形

    使用css实现常用的三角效果 项目中三角: .breadcrumb{ height: 40px; line-height: 40px; padding: 0 20px; border-top: 1px ...

  2. [ZJCTF 2019]Login

    学了一段时间的堆溢出现在继续做题, 例行检查一下 64位的程序放入ida中 shift+f12查看程序函数 可以看到非常明显的后门程序 查看主函数 发现了程序给的账号和密码,但是没有看到明显的栈溢出漏 ...

  3. 小迪安全 Web安全 基础入门 第七天 - 资产泄漏、CMS识别、Git监控、SVN、DS_Store、备份

    一.CMS指纹识别源码获取方式 1.网站特有文件.如/templets/default/style/dedecms.css-dedecms. 2.网站独有文件的MD5.如favicon.ico但是该文 ...

  4. CF1514A Perfectly Imperfect Array 题解

    Content 给定一个长度为 \(n\) 的序列,问是否存在一个非空子序列,使得这个子序列所有元素的积不是完全平方数. 数据范围:\(t\) 组数据,\(1\leqslant t\leqslant ...

  5. CF1494A ABC String 题解

    Content 给定 \(T\) 个仅包含大写字母 A,B,C 的字符串 \(s\).问你是否能够通过将每个 A,B,C 换成 (,) 中的一个(同一个字母必须要换成同一个字符),使得最后得到的括号序 ...

  6. centos使用yum安装报错: 另一个应用程序是:PackageKit

    已加载插件:fastestmirror, langpacks/var/run/yum.pid 已被锁定,PID 为 13189 的另一个程序正在运行.Another app is currently ...

  7. CMAKE为项目输出名添加后缀

    概述 本文将介绍cmake配置动态库和可执行程序两种,使用cmake为其添加Debug和Release配置下的后缀 动态库 下面将介绍使用CMAKE_DEBUG_POSTFIX和CMAKE_RELEA ...

  8. 【LeetCode】427. Construct Quad Tree 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  9. 【剑指Offer】二叉搜索树的后序遍历序列 解题报告(Python)

    [剑指Offer]二叉搜索树的后序遍历序列 解题报告(Python) 标签(空格分隔): 剑指Offer 题目地址:https://www.nowcoder.com/ta/coding-intervi ...

  10. Mobile phones(poj1195)

    Mobile phones Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 18453   Accepted: 8542 De ...