Nginx 指标、SSL 协商时间指标

Nginx metrics, SSL negotiation time metrics

我正在尝试查找是否有任何模块或方法可以从 NGINX 获取指标,尤其是关于 SSL 连接(协商时间等)

我也在访问日志中搜索过,但没有成功。

我也搜索过以某种方式使用 tcpdump 进行数据包分析来做到这一点

有没有办法从服务端做到这一点来获取这些指标?

不确定这是否能回答您的问题,但我希望它能有所帮助...

这是我发现的两个网页,它们提供了有关 Nginx 指标(包括指标模块)的一般信息:

  1. How to Monitor Nginx: The Essential Guide.
  2. An In-Depth Guide to Nginx Metrics.

其中第一个包含关于 "SSL Certificate expiration" 的部分。但是监控 SSL 到期日期 and/or 警报似乎在您问题的 SSL 连接指标部分方面受到限制。

在为 Nginx 搜索更多 SSL 特定指标信息时,我遇到了 Module ngx_http_status_module。在页面 "Data" 部分的 "SSL" 小节中,我发现提到了以下 SSL 统计信息:

  • handshakes The total number of successful SSL handshakes.
  • handshakes_failed The total number of failed SSL handshakes.
  • session_reuses The total number of session reuses during SSL handshake.

我还发现了一篇关于 Nginx SSL 指标的论文 Nginx SSL Performance 我觉得它很有趣,尽管更多是从人们可以期望的性能基础的角度来看。但是它确实指出使用 openssl speed 来收集指标。当然,这假定 Nginx 是使用 OpenSSL 作为 SSL 库构建的。

这让我找到了构建 Nginx 的 SSL 库。无论是 OpenSSL 还是其他东西,它都应该支持日志记录细节。这是与记录 SSL 详细信息相关的 Whosebug 问答:。虽然这听起来不像是您主要希望从中获取指标的方式,但它看起来确实是另一种资源,即使您必须编写一些代码来更方便地分析它们。

顺着分析的思路,找到了网页Debugging SSL Problems。虽然它是为 Apache 的网络服务器编写的,但它看起来确实对分析和调试 Nginx SSL 操作也有帮助。

至于您可以获得更好答案的方法,也许在 Server Fault 问答网站上询问会有所帮助。你需要弄清楚如何最好地做到这一点,因为我记得看到不鼓励交叉发布。也许这个问答可以移到那里,因为那似乎是一个更合适的网站。虽然我不知道。

顺便说一句,我以前写过 Nginx 模块,这个问题对我来说变得更有趣了,因为我正在努力回答它。