我的环境是 4 台运行 Nginx 的 Ubuntu 14.04 服务器,位于 F5 负载均衡器后面。它们将指标发送到 Datadog,并通过 SNMP 从 F5 提取指标,然后将其发送到 Datadog。
开发团队需要能够监控 HTTP 代码。我无法从服务器端的 Nginx 提取它们,因为只有使用 Nginx Plus 才有可能。我曾考虑过构建一些内部解决方案来读取访问日志等,但真的不想走那条路。所以接下来我转向了 F5,但还是无法从那里获取它们。
此 OID 返回值 0:sysStatHttpRequests::1.3.6.1.4.1.3375.2.1.1.2.1.56
我知道这是不正确的,因为我每秒向 VIP 发送大约 1000 个 HTTP 请求。以下也返回 0 值:
sysFastHttpStatResp2xxCnt 1.3.6.1.4.1.3375.2.1.1.2.14.16
sysFastHttpStatResp3xxCnt 1.3.6.1.4.1.3375.2.1.1.2.14.17
sysFastHttpStatResp4xxCnt 1.3.6.1.4.1.3375.2.1.1.2.14.18
sysFastHttpStatResp5xxCnt 1.3.6.1.4.1.3375.2.1.1.2.14.19
SNMP 正在运行,因为我能够提取其他指标,例如吞吐量、连接数等。有人知道如何在此环境中提取 HTTP 代码指标吗?或者我可能完全忘记了执行此操作所需的 F5 设置。
- F5 Big-IP 3900
- 版本:12.1.1
编辑:解决了我自己的问题。必须在 F5 上配置 AVR,然后将 HTTP 配置文件应用于虚拟服务器。
答案1
如果您没有应用 fastHTTP 配置文件,您将看不到该 oid 的统计信息。普通 HTTP 配置文件使用这些 oid:
[root@ltm3:Active:Standalone] mibs # snmptranslate -On F5-BIGIP-SYSTEM-MIB::sysHttpStatResp2xxCnt
.1.3.6.1.4.1.3375.2.1.1.2.4.3
[root@ltm3:Active:Standalone] mibs # snmptranslate -On F5-BIGIP-SYSTEM-MIB::sysHttpStatResp3xxCnt
.1.3.6.1.4.1.3375.2.1.1.2.4.4
[root@ltm3:Active:Standalone] mibs # snmptranslate -On F5-BIGIP-SYSTEM-MIB::sysHttpStatResp4xxCnt
.1.3.6.1.4.1.3375.2.1.1.2.4.5
如果我跑AB重置统计数据后,对本地 VIP 进行 10k 次攻击并检查 2xx oid,我看到:
[root@ltm3:Active:Standalone] mibs # snmpget -v 2c -c public localhost .1.3.6.1.4.1.3375.2.1.1.2.4.3.0
F5-BIGIP-SYSTEM-MIB::sysHttpStatResp2xxCnt.0 = Counter64: 10000
答案2
为了让 F5 开始收集有关 HTTP 响应代码的指标,我必须在 F5 上配置 AVR 模块。然后我只需将默认 HTTP 配置文件应用于我的虚拟服务器池即可。然后我们会跟踪有关 HTTP 代码的统计信息,我可以通过 SNMP 提取这些统计信息并将其发送到 Datadog。