监控NGINX

NGINX | 2018年1月08日

为NGINX设置监控工具是保障网站正常运行的重要环节。适当监控NGINX,可以获取许多有关底层应用性能的实用信息。市面上有不少监控系统适合完成这项任务,但第一步是启用NGINX的指标收集功能。

使用stub_status模块

NGINX Open Source提供了一个名为ngx_http_stub_status_module(简称stub_status)的模块,可公开反映NGINX活动情况的几项重要指标。

要检查您的NGINX构建版本是否包含stub_status模块,请运行nginx -V:

$ nginx -V 2>&1 | grep --color -- --with-http_stub_status_module

我们的所有NGINX构建版本均在所有stub_status模块支持的平台上提供。

如果您的NGINX构建版本不包含stub_status模块,则必须从源代码重新构建,并在configure脚本中加入--with-http_stub_status_module参数。

下一步,在NGINX配置的location块中添加stub_status指令,以启用该模块。可以将此块添加到现有的server配置中。也可以添加一个单独的server块,其中仅包含一个专用于stub_status指令的location,如下所示:

server {
    listen 127.0.0.1:80;
    server_name 127.0.0.1;

    location /nginx_status {
        stub_status;
    }
}

适用于server 指令块有时位于主配置文件(stub_status 指令的相应配置有时位于主配置文件(nginx.conf)之外。如果在该文件中找不到合适的配置块,请查找通常包含在 nginx.conf 中的其他配置文件。

此外,建议仅允许授权用户访问指标。例如,可以在allow和deny指令添加到location或server块中。

配置stub_status模块后,请记得重新加载NGINX配置(例如,使用service nginx reload命令)。有关NGINX控制信号的更多信息,请参阅此处。

要显示stub_status指标,请发起curl查询。对于上述配置,可使用以下命令:

$ curl http://127.0.0.1/nginx_statusActive connections: 2
server accepts handled requests
 841845 841845 1631067
Reading: 0 Writing: 1 Waiting: 1

如果此方法无效,请检查对/nginx_status的请求被路由到何处。很多情况下,另一个server块可能会导致无法访问stub_status指标。要详细了解这些 NGINX 实例级指标,请参阅参考文档。

在NGINX中启用stub_status模块并确保其正常运行后,即可继续安装和配置所选的监控系统。

日志文件和 syslog

NGINX的访问日志和错误日志包含大量适合指标收集的实用信息。可以使用NGINX变量全面自定义访问日志格式。某些监控工具可以利用NGINX日志文件收集指标。

为满足各种性能和安全要求,建议使用NGINX的syslog功能。日志文件会写入磁盘,而syslog则允许NGINX通过网络协议发送日志数据。例如,可以设置专用Linux系统,集中收集来自不同NGINX实例的所有日志数据。

有关日志记录的更多信息,请参阅《NGINX Plus 管理指南》。

使用Amplify监控NGINX

我们提供一款用于监控NGINX的原生工具,名为NGINX Amplify。这是一款SaaS工具,可免费监控最多5台服务器(如需监控更多服务器,可购买订阅)。

NGINX Amplify简单易用。不到10分钟,即可获得所有关键NGINX指标的开箱即用图表。NGINX Amplify会自动使用来自stub_status和访问日志的指标,还可收集各种操作系统信息。

使用NGINX Amplify,可以直观呈现NGINX性能,并监控操作系统、PHP‑FPM、Docker容器等。Amplify的一项独特功能是NGINX配置静态分析器,可提供建议,帮助提高配置的安全性和效率。

了解有关NGINX Amplify的更多信息,请点击此处,并免费试用。

用于监控NGINX的Amplify界面
NGINX Amplify是一款重要的监控工具

NGINX Plus中的其他API模块

NGINX Plus可通过专用 API 模块更便捷地获取性能指标。

API模块提供一组详细的指标,主要侧重于负载均衡和虚拟服务器统计信息。例如,系统会按类别显示1xx、2xx、3xx、4xx和5xx等所有HTTP状态码,供server块查看。系统还提供HTTP和TCP/UDP上游服务器的健康状态信息。缓存指标包括每个缓存区域的命中和未命中次数。

除了收集更丰富的指标外,该API还支持重新配置HTTP和TCP/UDP上游服务器组,并管理键值变量,无需重新加载配置或重启NGINX Plus。

NGINX Plus还附带一个集成式仪表盘,可利用这些额外指标。这些额外指标也可在NGINX Amplify中使用。

其他监控解决方案

其他多种监控产品也可以收集并呈现NGINX指标。以下链接介绍了最常见的集成场景:

  • NGINX监控扩展,适用于AppDynamics
  • Datadog‑NGINX 集成
  • NGINX监控与Dynatrace集成
  • NGINX 插件(适用于New Relic)
  • NGINX 插件,适用于Pingdom Server Monitor
  • Prometheus HTTP导出器和集成


分享
标签: F5 NGINX, Tech, 2018

关于作者

相关博客文章

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内容缓存方式的技巧。