内容整理自官方文档

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

系列

  • Sentry 企业级数据安全解决方案 - Relay 入门
  • Sentry 企业级数据安全解决方案 - Relay 运行模式
  • Sentry 企业级数据安全解决方案 - Relay 配置选项
  • Sentry 企业级数据安全解决方案 - Relay 监控 & 指标收集
  • Sentry 企业级数据安全解决方案 - Relay 项目配置

注意事项

  • 我们建议使用官方提供的 Docker 镜像(getsentry/Relay)运行 Relay,该镜像位于 DockerHub 上,并带有 Git 修订标识符,而不是从源代码构建。

    • https://mp.weixin.qq.com/s/BPkODXXnOv7W7z21-VTU9g
    • https://hub.docker.com/r/getsentry/relay/
  • 我们建议至少运行两个 Relay 实例(容器),并在它们前面使用反向代理(例如 HAProxy 或 Nginx),以提高可用性并简化 Relay 更新。

    • https://www.haproxy.org/
    • https://nginx.org
  • 要监控您的 Relay 设置,请配置 日志记录, 指标, 和 健康检查。

    • https://docs.sentry.io/product/relay/monitoring/#logging
    • https://docs.sentry.io/product/relay/monitoring/#metrics
    • https://docs.sentry.io/product/relay/monitoring/#health-checks

系统要求和建议

以下建议假设 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.0port: 3000
logging:level: infoformat: json
metrics:statsd: 127.0.0.1:8126prefix: relay
limits:# Base size of various internal thread pools. Defaults to the number of logical CPU coresmax_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 PII 和数据清理

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

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

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

  3. php接口数据安全解决方案(一)

    php接口数据安全解决方案(一) 参考文章: (1)php接口数据安全解决方案(一) (2)https://www.cnblogs.com/lisqiong/p/11023701.html 备忘一下.

  4. 《SOA与REST:用REST构建企业级SOA解决方案》—第2章2.1节如何使用案例研究

    本节书摘来自异步社区<SOA与REST:用REST构建企业级SOA解决方案>一书中的第2章2.1节如何使用案例研究,作者[美]Thomas Erl , Benjamin Carlyle , ...

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

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

  6. 滴滴开源夜莺 Nightingale:企业级监控解决方案

    滴滴又双叒发布新开源项目啦! 夜莺(Nightingale),是滴滴基础平台联合滴滴云研发和开源的企业级监控解决方案,旨在满足云原生时代企业级的监控需求. Nightingale简介 据滴滴官方介绍, ...

  7. 电子电气架构——Vector ODX诊断数据库解决方案和操作指南

    我是穿拖鞋的汉子,魔都中坚持长期主义的工程师. 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 你永远不可能真正去了解一个人,除非你穿过他的鞋子去走他走过的路,站在他的角度思考问题.可 ...

  8. 腾讯安全发布《数据安全解决方案白皮书》

    以下是<腾讯数据安全解决方案白皮书>全文: 第1章 导读 1.1  背景 近年来数据安全事件频出,尤其个人隐私信息保护是行业关注的热点话题,GDPR法案的推出进一步推动了全球数据安全相关的 ...

  9. 《SOA与REST:用REST构建企业级SOA解决方案》目录—导读

    献词 SOA与REST:用REST构建企业级SOA解决方案 谨以此书献给ChristophSchittko,他毫无顾忌的审阅评注使我们在本书书稿已经提交印刷之后仍然决定改变内容结构,而后续的变化极大地 ...

最新文章

  1. Web应用扫描测试工具Vega
  2. DEV—【GridControl添加按钮列】
  3. 【人物】养车点点费岸:给O2O产品经理的四点意见
  4. 屠龙之路_坚持就是胜利_NinthDay
  5. linux平台下Tomcat的安装与优化
  6. 《数据库原理与应用》(第三版)第9章 事务与并发控制 基础 习题参考答案
  7. NIO学习--缓冲区
  8. Libusb开发教程一 安装
  9. 菜鸟学Linux - 用户与用户组基础
  10. MongoDB配置副本集时需要注意的机制
  11. 使用C#创建一个进程杀手Windows服务
  12. c语言求圆锥的表面积和体积_C语言-圆形体体积计算器,1:计算球体;2:计算圆柱体;3:计算圆锥体...
  13. 02_爬取灌篮高手全国大赛漫画
  14. 牛客寒假训练营1 K 冒险公社(线性dp)
  15. 什么是PMU(PMIC)【转】
  16. Pentest Wiki Part5 提权
  17. 小红书SEO之关键词排名优化详解【从入门到精通】
  18. 怎么做网线,网线水晶头接法和线序(图文详解)
  19. debian live-buid
  20. 英雄之刃显示服务器断开怎么办,英魂之刃手游新手常见问题

热门文章

  1. Android wifi信号强弱检测
  2. 微服务注册中心怎么选?
  3. 【内联函数】inline关键字的作用与内联函数的特性
  4. 信息系统项目管理师必背核心考点(四十九)合同法
  5. java8/日期时间
  6. GNU LGPL协议
  7. MPLAB X IDE调试代码
  8. Aaron 与您共享系列五:最适合威客阅读的书籍
  9. C 语言到底能做什么?What can C do?
  10. JavaEE进阶——全文检索之Lucene框架