重负载下的 Nginx 状态码指标

Nginx status code metrics under heavy load

我有一个 Elasticsearch Logstash Kibana 堆栈来监控我的 nginx 服务器。每个 nginx 日志都按需获取、解析、存储和聚合。由于我的流量很大,所以这个堆栈维护起来非常繁重。

我正在寻找 nginx 响应代码的吞吐量计,以每秒按类别(2xx、3xx、4xx、5xx)打印状态代码响应的总和。我应该看哪里?

nginx plus的status模块有这样的特性: http://nginx.org/en/docs/http/ngx_http_status_module.html#data

几个选项:

  • 状态模块,如@VBart 所述,仅供商业订阅者使用 http://nginx.org/en/docs/http/ngx_http_status_module.html#data

  • 开源替代品,即 nginx-slahttps://github.com/goldenclone/nginx-sla/blob/master/README.en.md

    我已经看到 nginx-sla 在负载非常高的情况下在 nginx 实例上运行。 虽然不确定它是否与最新版本兼容

  • 想出你自己的解决方案。例如,将 4xx / 5xx / 任何错误组路由到专用日志,将它们本地聚合到 nginx 的盒子上,然后由本地代理获取(即 zabbix_agent 如果你有 zabbix)或发送到其他地方,具体取决于你的堆栈。请注意,您可以只转储聚合指标 (wc -l),然后在您选择的工具中找出动态