答案1
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
希望这可以帮助。
答案2
根据我的经验,这些插件很可能由于 nginx 配置错误而无法正常工作。以下是在这种情况下应采取的措施的简要列表:
1.检查nginx安装
Nginx 必须使用HttpStubStatus模块模块。您可以通过运行以下命令(在 sudo 或 root 下)进行检查:
nginx -V 2>&1 | grep -o with-http_stub_status_module
如果您看到以下输出,那么您可以继续。
with-http_stub_status_module
否则,您必须重新编译 nginx 并启用所需的模块或从不同的源安装(就我而言,默认的 Debian repo 具有正确的版本)。
2.检查nginx配置
我假设你已经放置并启用了所需配置。要查看它是否正常工作,您可以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
答案3
可能有帮助:
cd /etc/munin/plugins
munin-run PLUGINNAME
另外使用 munin-run 的调试选项。
检查插件文件中是否有任何硬编码路径,并验证它们是否适合您的系统:
grep '/' PLUGINNAME
nginx 插件可能依赖于 Nginx 使用某些模块进行编译或以某种格式输出日志。插件有文档页面吗?
答案4
安装libwww-perl然后运行命令munin-run nginx_status
查看统计数据。
重新启动 muni-node 服务。