来自 DDOS 2021-07-14 12:09 的文章

DDOS高防服务_高防ip原理_原理

DDOS高防服务_高防ip原理_原理

从微服务和基础设施很容易(也许太容易了)。收集这些指标和将它们雕刻成有意义的仪表板和警报是一项挑战性的操作团队随着应用程序的增长和扩展而面临的问题。我们在普罗米修斯a发现的功能强大且灵活的指标收集平台我们能够适应我们的现有的工具。今天,我们共享我们收养普罗米修斯的故事。首先…什么是普罗米修斯?Prometheus是一个基于拉的监控系统,它可以从配置的端点获取指标,高效地存储它们,并支持一种强大的查询语言,从各种不相关的数据点合成动态信息,这有助于您获得立竿见影的价值,它提供了快速开始从您的计算系统(通过node exporter)、MySQL和ElasticSearch之类的东西收集指标。普罗米修斯之前的度量和可观测性当我们沿着这条路开始时,非网站cc防御,我们使用一个SaaS提供程序来获取系统级指标(CPU、内存等),另一个用于定制应用程序指标。我们面临的第一个障碍是,这两个服务都需要调用AWS API以从CloudWatch获取指标,以及通过EC2、RDS和,当这些服务共同达到awsapi限制时,就会出现问题,导致其他领域出现问题,比如使用terraform进行部署编排。有两个SaaS监控服务在对生产问题进行故障排除时,需要检查两个不同的系统(在除了日志之外,它已经是自托管的)。我们还必须实施变通办法以应对"预测性"警报之类的问题,ddos如何防御,路由器防御ddos,而这并不是很好的解释我们所有的工作量。我们意识到这些属性都是我们需要在新的度量系统中避免,以便它可以随着我们的平台。下一代可观测性赛波因特的IdentityNow团队每半年举办一次"黑客日",工程师们可以将他们真正酷的想法付诸行动,并向组织展示。这次活动开始了向普罗米修斯和格拉法纳提供概念证明的道路。下一步是确保我们能够从各种不同的设备中获取高质量的数据普罗米修斯生态系统中的出口商。我们发现我们能够让像节点导出器、Redis导出器和JMX导出器这样的东西在开发环境中运行,从而获得信心,我们可以用普罗米修斯来测试整个环境。ECS环境下的普罗米修斯有了可行的概念证明和项目计划,我们开始为IdentityNow设计下一代度量标准。最紧迫的问题是围绕对AWS的API调用进行优化,以降低部署风险,或者仅仅查看控制台就遇到API限制。因为我们需要同时运行新旧系统在一段时间内,我们不能饱和我们已经紧张的API限制,我们还必须具有高度的弹性必须进行任何手动修改自动化第一!解决这些问题根据需求,我们构建了三个定制组件并利用了普罗米修斯的基于文件的发现。对于目标发现,我们添加了一个称为registor的侧车每一个ECS任务。这个轻量级的Go程序负责从容器内部读取ECS元数据端点并向DynamoDB表中添加必要的IP/端口和标签信息,防御ddos便宜,以避免任何awsapi调用ECS任务数据。普罗米修斯需要知道这些目标推动了Hesione(以泰坦普罗米修斯的妻子命名)的诞生。Hesione是另一个基于Go的微服务作为普罗米修斯的车Hesione从DynamoDB检索应用程序目标列表并提供格式化的普罗米修斯.yml所有的静态和动态目标作业。Hesione还可以将警报作为代码提供给我们通过使用Git源代码控制的警报和记录规则并分发所有已知的普罗米修斯实例。在弹性云环境中,我们还必须处理服务被取消配置的情况,无论是标准滚动部署还是实际故障。在普罗米修斯内部配置了一个警报,在任何动态目标停止响应时触发,并通过SNS通知我们的注销服务。取消注册然后确认目标是应该停止并从DynamoDB中删除目标,Hesione在DynamoDB中捕获并更新基于文件的服务发现。最后但并非最不重要的是应用程序指标他们自己。我们大部分的微服务已经在使用第三方SaaS度量解决方案收集度量Dropwizard,它有一个简单的Prometheus客户端,可以从普罗米修斯.io. 我们能够公开我们拥有的相同指标以前使用的工具类似于我们以前与SaaS的集成服务。路上有些颠簸普罗米修斯的最佳实践告诉我们要避免高基数一旦投入生产,我们就开始注册更多的应用程序,这些应用程序带来了很多指标。我们一直关注着普罗米修斯头部系列度量,表示普罗米修斯正在跟踪的时间序列的总数与每个唯一的度量和标签集相关联。当这个数字越来越大时普罗米修斯的用户界面变得越来越不灵敏,经常使我们的浏览器崩溃使用提前输入搜索框。时间到了调查。我们发现一个微服务每点击一次网站都会产生一个新的指标。每次点击都会产生一个新的时间序列(每个标签5-7个),要求普罗米修斯保存更多的内存,以及没有提供实际价值团队提供了一个修复程序来停止发布这些度量,允许我们要删除违规的时间序列并清理墓碑,这使普罗米修斯回到可用状态。另一个惊喜是在大约80%的普罗米修斯服务器上的目标停止响应一次。当成千上万的警报响起开始开火,普罗米修斯尽职尽责地试图把这些都送到我们的通过SNS转发器取消注册lambda。有效负载大小大于256KBSNS允许,并且SNS转发器返回5xx错误返回到Alertmanager,这又会导致Alertmanager重试,直到警报队列已满,无法触发更多警报。为了解决这个问题,我们修改了警报,只发送一个每个通知的向下目标,它直接寻址256KB的SNS有效负载限制。但是重试仍然可能是问题,这不是我们独有的,所以我们也向SNS转发器发送了一个补丁,以确保每个人都能从中受益这一课学到了。取消注册在这个事件中发现自己已经超出了ECS的API限制取消注册函数上的lambda调用并发限制,以确保扇出也不会成为API问题。我们得到了什么自从将所有现有的基础设施和应用程序转换为普罗米修斯以来,我们看到了整个组织中仪表的采用和改进稳步增加。Grafana中的仪表板包含了丰富的运行时、实例和应用程序指标信息,并且现在正在利用Grafana提供的许多特性,例如注释和动态生成的变量列表。我们还可以转换一些以前在Elasticsearch中作为日志记录到普罗米修斯的度量中,减少获得相同数据所需的总体数据大小和查询时间信息。下一步行动我们今天在普罗米修斯有几百万个指标,我们想让它们在监控方面更有用。我们正积极与我们的工程团队合作,在每项服务的基础上收集更多谨慎、有趣的指标。通过使用直方图和事件计数器等技术,我们可以根据服务级别目标更准确地衡量服务的行为,而不必担心随着时间的推移,平均值会丢失潜在的外围错误或响应速度慢。我们也在重塑我们对可观测性的定义与日志记录和度量有关检测有趣的数据点,如健康检查状态和有趣的错误,我们可以用普罗米修斯代替基于日志的警报。有时,日志吞食已经落后了几分钟,但普罗米修斯是尽职尽责的每分钟捕捉指标,使我们能够更快地响应变化在我们的应用程序中。我们也可以删除日志中的所有这些事件,使我们能够更快地对问题进行分类在Kibana中整理更少的日志消息。DevOps团队也正在迁移到Kubernetes进行容器编排,在那里我们可以从Prometheus提供的许多现成的内置服务发现选项中获益。我们希望这将简化我们今天使用的容器发现和取消注册过程。这就是普罗米修斯如何成为核心的故事SaaS可观测性的组成部分每天我们都会找到新的机会来进一步测试我们的应用程序,创建可操作的警报,免费防御ddos云,并构建信息丰富的仪表板现在可以更好地利用数据驱动的决策,问题是,"我们将如何衡量这种变化?"充满了想法和保证我们做的是对的。记住-如果你不测量它,它就不会发生。