使用Akita的NGINX Plus认证模块发现并修复API端点问题

NGINX | 2023年5月31日

如果您负责的生产服务拥有一定数量的用户,可能深知客户先于您发现问题所带来的困扰。Akita希望解决这一问题,因此我们构建了全新的NGINX Plus认证模块。

本文将介绍该模块的几个关键方面,包括为何需要跳出日志的局限,从全局视角审视系统;如何快速发现并修复整个系统中的问题;以及全新的Akita模块如何让NGINX用户轻松使用此功能。

从日志扩展到API端点视角

如今,无数开发者面临着一种令人无奈的局面:客户实际上成了他们的监控系统。

并不是软件团队没有记录错误。例如,如果使用NGINX作为反向代理,NGINX日志中会包含各种信息:时间戳、请求长度、处理时间和响应状态码。只要有时间和耐心去查找,这些信息都在日志中。

然而,在包含大量不同请求和响应的系统中,很容易迷失在海量日志里!除非事先基于日志设置了仪表板或其他工具,否则可能需要逐一查看数千甚至数百万行日志,尝试找出潜在问题及其源头。但建立合适的仪表板和监控机制可能需要数周、数月,甚至几个季度,而且通常还需要随代码同步更新。

Akita认为,必须跳出日志细节,从API端点层面审视问题。这样,软件团队既能快速了解问题和热点的整体情况,又能保留实际定位问题所需的粒度。我们通过一套完全即插即用的指标解决方案,缓解监控中的信息过载问题。该方案可自动监控延迟指标和错误,无需更改代码或构建仪表板。我们的解决方案以被动方式监测API流量并自动进行分析,从而提供端点级监控和警报。用户注册后15分钟内即可开始使用。

Akita NGINX Plus 认证模块简介

我们很高兴推出Akita模块,该模块现已面向NGINX用户提供。如果使用NGINX作为Web应用服务器、反向代理或API网关,现在可以将API流量发送至Akita进行分析。注册一个免费Akita账户,安装Akita模块和代理,然后对NGINX配置文件稍作修改。

只需几分钟,即可前往Akita控制台,查看API端点、哪些部分运行缓慢以及哪些部分出现错误。

Akita控制台概览

Akita 的 NGINX Plus 认证模块可作为现有 NGINX 设置的扩展,让 NGINX 用户享受 Akita 带来的诸多优势。Akita 将从 HTTP 请求中捕获流量,测量延迟和错误,并通过预构建的仪表板展示生产环境中的运行状况。

Akita 的 NGINX Plus Certified Module 工作原理

下面深入了解该模块的功能及其发挥作用的环节。首先,NGINX会分多个“阶段”处理请求:先从网络读取请求,再执行重写和访问控制检查,最后生成响应及相关日志条目。Akita的NGINX Plus认证模块会在此流程的后期介入(即内容预处理 阶段,位于标头重写等功能之后),因此能够以最接近应用所接收内容的形式查看请求。Akita会根据NGINX配置中的服务器和位置,检查每个传入请求是否已标记为需要监控。

注意:与其他NGINX功能和模块一样,可以仅为Web服务的一部分启用Akita,也可以默认将其用于NGINX提供的所有内容。

在下一阶段,该模块会记录请求正文,并在完整接收请求后立即将其发送给Akita代理。此行为与ngx_http_mirror模块类似,因为相同的数据会并行发送给应用和Akita代理。

当NGINX或上游服务器准备好响应后,Akita模块会在响应流式传回客户端的同时记录该响应(最大1 MB)。此缓冲过程不会延迟响应。缓冲在NGINX“内容过滤器”中进行,该过滤器可在响应正文的各个数据块可用时逐一处理。

确定服务器响应时间且响应成功后,该响应会被镜像到Akita代理。代理会将请求与响应进行匹配,然后尝试解析请求和响应的正文内容。代理会先在本地对这些数据进行混淆处理,再将其发送至Akita进行分析。这意味着Akita可以看到API流量的结构,但无法看到用户发送或接收的具体值。

Akita的NGINX Plus认证模块可根据此应用流量跟踪数据自动推断端点,构建可浏览、可下载的API模型,并自动显示延迟和错误信息。您可以针对各端点的错误率、特定端点的高延迟,甚至异常高的调用量设置警报。

对于每个端点,Akita 的 NGINX Plus 认证模块可显示:

  • API调用次数
  • HTTP响应代码分布
  • 服务器响应所用的时间

有关设置Akita的NGINX Plus认证模块的更多信息,请参阅此处。

开始使用Akita的NGINX Plus认证模块

Akita目前处于公开测试阶段。您可以注册参加测试,并在不到30分钟内获得结果。


分享
标签: API, F5 NGINX, News

相关博客文章

NGINX Plus R26 正式发布
NGINX | 2022/02/15

NGINX Plus R26 正式发布

NGINX Plus R26通过缓存JSON Web密钥集加快JWT验证,并强化TLS握手,从而提升安全性。NGINX JavaScript的新功能包括增强对异步函数的支持,以及实现WebCrypto API。

使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击
NGINX | 2022/02/10

使用NGINX App Protect DoS保护gRPC应用,抵御严重的DoS攻击

gRPC具备开发人员设计和部署现代应用所需的速度与灵活性,但其开放性也使其极易受到第7层DoS攻击。NGINX App Protect DoS可保护gRPC应用免受此类破坏性攻击。

Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划
NGINX | 2021/09/13

Ingress Controller 选型指南(第 2 部分):风险与面向未来的规划

了解选择错误的Ingress控制器可能带来的风险,以及如何从关键方面着手,让您的选择更好地适应未来需求。

NGINX Plus R19 正式发布
NGINX | 2019/09/03

NGINX Plus R19 正式发布

NGINX Plus R19扩展了监控功能,不仅提供更多指标,还新增了指标分析方式;增加试运行模式,用于测试限速效果;增强键值存储,以支持IP地址范围;并使限速更加动态。

NGINX现已正式加入F5
NGINX | 2019/05/09

NGINX现已正式加入F5

NGINX现已正式成为F5的一部分。Gus Robertson现任F5 NGINX业务部门负责人。他阐述了两家公司在人才、文化和愿景方面融合的价值,以及双方将如何携手增强NGINX的开源产品和商业产品。

使用NGINX和NGINX Plus实现高性能缓存
NGINX | 2016/08/24

使用NGINX和NGINX Plus实现高性能缓存

我将介绍NGINX在内容缓存和性能方面的工作原理,并分享一些控制NGINX内容缓存方式的技巧。