Miko Asked: 2010-02-26 22:36:45 +0800 CST2010-02-26 22:36:45 +0800 CST 2010-02-26 22:36:45 +0800 CST Nginx Munin 插件显示无数据 772 我想通过 Munin 监控 NGinx 统计信息,但 Nginx 插件没有显示数据。是否可以诊断为什么只有一个 munin nginx 插件似乎在工作? 服务器在 CentOS 5.3 上运行 nginx munin 6 个回答 Voted Best Answer Tom Feiner 2010-02-28T02:15:15+08:002010-02-28T02:15:15+08:00 nginx 插件依赖以下 URL 来获取状态信息: http://127.0.0.1/nginx_status 通常,nginx 没有配置这个 URL 来显示状态数据。 从插件的文档中,我看到需要将 nginx 配置为在特定 URL 中显示状态数据。 您需要通过在站点的配置中添加以下行来启用 nginx 状态: server { listen 127.0.0.1; server_name localhost; location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } 添加此配置后不要忘记重新启动服务器,并确保 stus URL 返回状态数据。 对于每个插件的完整文档,您可以运行: munindoc nginx_request 希望这可以帮助。 badew 2018-03-14T05:10:30+08:002018-03-14T05:10:30+08:00 根据我的经验,由于 nginx 配置错误,这些插件可能无法正常工作。以下是在这种情况下要做什么的简短清单: 1.检查nginx安装 Nginx 必须使用HttpStubStatusModule模块编译。您可以通过运行以下命令(在 sudo 或 root 下)来检查: nginx -V 2>&1 | grep -o with-http_stub_status_module 如果您看到以下输出,那么您可以继续。 with-http_stub_status_module 否则,您必须在启用所需模块的情况下重新编译 nginx 或从不同的源安装(在我的情况下,默认的 Debian 存储库具有正确的版本)。 2.检查nginx配置 我假设您已经放置并启用了所需的 config。要查看它是否正常工作,您可以ssh到您的服务器并运行 wget http://localhost/nginx_status 如果这里没有错误,那么问题出在插件配置上。如果服务器在这里返回错误,您可以通过修改配置进行调试: location /nginx_status { stub_status on; access_log off; error_log /var/log/nginx/status.error.log; allow 127.0.0.1; deny all; } 之后,在文件中/var/log/nginx/status.error.log您可以看到服务器返回错误的确切原因: [error] 2203#0: *1442 access forbidden by rule, client: ::1, server: localhost, request: "GET /nginx_status HTTP/1.1", host: "localhost" 在我的情况下(从日志中可以看到)问题是client: ::1,而配置只允许从127.0.0.1 要解决此问题,您可以按照cepharum 的建议或修改虚拟主机配置: server { listen 80; listen [::]:80; server_name localhost; location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; allow ::1; deny all; } } (注意我也换成listen: 127.0.0.1了80端口(ipv4+ipv6),因为前者也不行) 3.检查系统配置和依赖 要检查插件本身是否正常工作,请运行 munin-run nginx_status (请注意,插件必须“打开” - 符号链接必须存在-如果没有,/etc/munin/plugins请阅读手册) 如果您遇到LWP库错误(例如LWP::UserAgent或LWP::VERSION),则您的系统缺少nginx_status插件所需的包。 在 Debian / Ubuntu 上,运行 apt install libwww-perl 在 CentOS 上 yum install perl-libwww-perl 之后再次使用 . 测试插件munin-run。预期输出(数字会有所不同): total.value 1 reading.value 0 writing.value 1 waiting.value 0 CarpeNoctem 2010-02-27T06:28:17+08:002010-02-27T06:28:17+08:00 可能有帮助: cd /etc/munin/plugins munin-run PLUGINNAME 另外使用调试选项来运行 munin-run。 检查插件文件是否有硬编码路径,并验证它们是否适合您的系统: grep '/' PLUGINNAME nginx 插件可能依赖于使用某些模块编译的 Nginx 或以某种格式输出的日志。插件是否有任何文档页面? Tien Do Xuan 2012-10-06T09:19:07+08:002012-10-06T09:19:07+08:00 关键是 munin 配置中的 url。 你会需要 [nginx*] env.url http://localhost/nginx_status 笔记 nginx_status 不是 nginx-status Izunna Calvin DIke 2020-02-07T12:48:24+08:002020-02-07T12:48:24+08:00 安装libwww-perl然后运行命令munin-run nginx_status查看统计信息。 重启多节点服务。 BurninLeo 2020-11-25T02:51:47+08:002020-11-25T02:51:47+08:00 如果您需要设置与 不同的 URL http://localhost/nginx_status,请确保将插件配置添加到正确的文件中(munin.conf是错误的文件)。 最好,创建一个新文件/etc/munin/plugin-conf.d/nginx [nginx*] env.url http://localhost/status.pool1 当然,正确的 URL 是在 PHP-FPM 池配置中定义的(例如,/etc/php/7.4/fpm/pool.d/www.conf),并且访问是在网络服务器的配置中授予的(参见上面的答案)。 使用sudo munin-run nginx_status可能有助于搜索其他错误。
nginx 插件依赖以下 URL 来获取状态信息:
通常,nginx 没有配置这个 URL 来显示状态数据。
从插件的文档中,我看到需要将 nginx 配置为在特定 URL 中显示状态数据。
您需要通过在站点的配置中添加以下行来启用 nginx 状态:
添加此配置后不要忘记重新启动服务器,并确保 stus URL 返回状态数据。
对于每个插件的完整文档,您可以运行:
希望这可以帮助。
根据我的经验,由于 nginx 配置错误,这些插件可能无法正常工作。以下是在这种情况下要做什么的简短清单:
1.检查nginx安装
Nginx 必须使用HttpStubStatusModule模块编译。您可以通过运行以下命令(在 sudo 或 root 下)来检查:
如果您看到以下输出,那么您可以继续。
否则,您必须在启用所需模块的情况下重新编译 nginx 或从不同的源安装(在我的情况下,默认的 Debian 存储库具有正确的版本)。
2.检查nginx配置
我假设您已经放置并启用了所需的 config。要查看它是否正常工作,您可以
ssh
到您的服务器并运行如果这里没有错误,那么问题出在插件配置上。如果服务器在这里返回错误,您可以通过修改配置进行调试:
之后,在文件中
/var/log/nginx/status.error.log
您可以看到服务器返回错误的确切原因:在我的情况下(从日志中可以看到)问题是
client: ::1
,而配置只允许从127.0.0.1
要解决此问题,您可以按照cepharum 的建议或修改虚拟主机配置:
(注意我也换成
listen: 127.0.0.1
了80端口(ipv4+ipv6),因为前者也不行)3.检查系统配置和依赖
要检查插件本身是否正常工作,请运行
(请注意,插件必须“打开” - 符号链接必须存在-如果没有,
/etc/munin/plugins
请阅读手册)如果您遇到
LWP
库错误(例如LWP::UserAgent
或LWP::VERSION
),则您的系统缺少nginx_status
插件所需的包。在 Debian / Ubuntu 上,运行
在 CentOS 上
之后再次使用 . 测试插件
munin-run
。预期输出(数字会有所不同):可能有帮助:
另外使用调试选项来运行 munin-run。
检查插件文件是否有硬编码路径,并验证它们是否适合您的系统:
nginx 插件可能依赖于使用某些模块编译的 Nginx 或以某种格式输出的日志。插件是否有任何文档页面?
关键是 munin 配置中的 url。
你会需要
笔记
不是
安装libwww-perl然后运行命令
munin-run nginx_status
查看统计信息。重启多节点服务。
如果您需要设置与 不同的 URL
http://localhost/nginx_status
,请确保将插件配置添加到正确的文件中(munin.conf
是错误的文件)。最好,创建一个新文件
/etc/munin/plugin-conf.d/nginx
当然,正确的 URL 是在 PHP-FPM 池配置中定义的(例如,
/etc/php/7.4/fpm/pool.d/www.conf
),并且访问是在网络服务器的配置中授予的(参见上面的答案)。使用
sudo munin-run nginx_status
可能有助于搜索其他错误。