为NGINX设置监控工具是维护网站运营的重要部分。 适当的 NGINX 监控可以揭示有关底层应用性能的大量有用信息。 有相当多的监控系统适合这项任务;然而,第一步是在 NGINX 中启用指标收集。
stub_status
模块NGINX 开源模块有一个名为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
模块,则必须从源代码重建并将--with-http_stub_status_module
参数包含到配置
脚本中。
下一步,通过在位置
块中包含stub_status
指令来在 NGINX 配置中启用该模块。 您随时可以将该块添加到现有的服务器
配置中。 或者,添加一个单独的服务器
块,并为stub_status
指令提供单个专门的位置
,如下所示:
服务器 {
监听 127.0.0.1:80;
服务器名称 127.0.0.1;
位置 /nginx_status {
stub_status;
}
}
有时可以在主配置文件( nginx.conf )之外找到适合stub_status
指令的服务器
块。 如果您在该文件中没有看到合适的块,请搜索通常包含在nginx.conf中的其他配置文件。
我们还建议您只允许授权用户访问指标,例如在位置
或服务器
块中包含允许
和拒绝
指令。
stub_status
模块配置完成后,不要忘记重新加载 NGINX 配置(例如,使用service
nginx
reload
命令)。 您可以在此处阅读有关 NGINX 控制信号的更多信息。
要显示stub_status
指标,请进行curl
查询。 以下内容适用于上面显示的配置:
$ curl http://127.0.0.1/nginx_status活动连接: 2 服务器接受处理的请求 841845 841845 1631067 正在读取: 0 写作: 1 等待: 1
如果这不起作用,请检查对/nginx_status 的请求被路由到哪里。 在许多情况下,另一个服务器
块可能是您无法访问stub_status
指标的原因。 要了解有关这些实例范围的 NGINX 指标的更多信息,请参阅参考文档。
在 NGINX 中启用并运行stub_status
模块后,您可以继续安装和配置您选择的监控系统。
NGINX访问日志和错误日志包含大量适合指标收集的有用信息。 您可以使用 NGINX变量来完全自定义访问日志格式。 某些监控工具可以利用 NGINX 日志文件来收集指标。
为了满足各种性能和安全要求,请考虑使用 NGINX syslog功能。 当日志文件写入磁盘时,syslog 允许 NGINX 通过网络协议发送日志数据。 例如,您可以设置专用的 Linux 系统来从各种 NGINX 实例收集所有日志数据。
有关日志记录的更多信息,请参阅NGINX Plus 管理指南。
我们有一个用于 NGINX 监控的原生工具。 它被称为NGINX Amplify ,它是一个 SaaS 工具,您可以使用免费监控最多五台服务器(更多数量的服务器可订阅)。
NGINX Amplify 的使用非常简单。 您可以在不到十分钟的时间内获得所有关键 NGINX 指标的开箱即用图表。 NGINX Amplify 自动使用来自stub_status
和访问日志的指标,并且可以收集各种操作系统信息。
使用 NGINX Amplify,您可以可视化您的 NGINX 性能,并监控操作系统、PHP-FPM、Docker 容器等。 Amplify 的一个独特功能是针对您的 NGINX 配置的静态分析器,它可以提供使配置更安全、更高效的建议。
在这里阅读有关 NGINX Amplify 的更多信息,并免费试用。
NGINX Plus通过专门的 API 模块提供了获取性能指标的更好方法。
API 模块提供了一组详细的指标,主要关注负载均衡和虚拟服务器统计。 例如,所有 HTTP 状态代码的细分( 1xx
, 2xx
, 3xx
, 4xx
, 5xx
)用于表示服务器
块。 HTTP和TCP/UDP上游服务器均提供健康状态信息。 缓存指标包括每个缓存区域的命中数和未命中数。
除了收集一组扩展的指标之外,该 API 还允许您重新配置HTTP和TCP/UDP上游服务器组并管理键值变量,而无需重新加载配置或重新启动 NGINX Plus。
NGINX Plus 还附带一个利用附加指标的集成仪表板。 这些附加指标也可用于 NGINX Amplify。
许多其他监控产品可以收集并呈现 NGINX 指标。 以下链接描述了最常见的集成场景:
“这篇博文可能引用了不再可用和/或不再支持的产品。 有关 F5 NGINX 产品和解决方案的最新信息,请探索我们的NGINX 产品系列。 NGINX 现在是 F5 的一部分。 所有之前的 NGINX.com 链接都将重定向至 F5.com 上的类似 NGINX 内容。”