我已经apache_
在munin节点上启用了插件:
ln -sv /usr/share/munin/plugins/apache_* /etc/munin/plugins/
重新启动节点后,service munin-node restart
这里是我得到的错误:
$ munin-node-configure --suggest 2>/dev/null | grep "apache\|Plugin\|------"
Plugin | Used | Suggestions
------ | ---- | -----------
apache_accesses | yes | no [apache server-status not found. check if mod_status is enabled]
apache_processes | yes | no [apache server-status not found. check if mod_status is enabled]
apache_volume | yes | no [apache server-status not found. check if mod_status is enabled]
但是mod_status
已经启用:
$ a2enmod status
Module status already enabled
重新启动apache并没有什么不同。
如果我尝试手动运行插件,这就是我所得到的(我读到获得U是个坏消息,因此至少是一致的)。
$ munin-run apache_accesses --debug
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Set /rgid/ruid/egid/euid/ to /110/65534/110 110 /65534/
# Setting up environment
# About to run '/etc/munin/plugins/apache_accesses'
accesses80.value U
$ munin-run apache_processes --debug
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Set /rgid/ruid/egid/euid/ to /110/65534/110 110 /65534/
# Setting up environment
# About to run '/etc/munin/plugins/apache_processes'
busy80.value U
idle80.value U
free80.value U
$ munin-run apache_volume --debug
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Set /rgid/ruid/egid/euid/ to /110/65534/110 110 /65534/
# Setting up environment
# About to run '/etc/munin/plugins/apache_volume'
volume80.value U
有人知道为什么我仍然收到server-status not found
消息以及如何摆脱它吗?
更新的答案1
Shane的建议关于使用Location
和SetHandler
在apache站点中设置请求处理程序是正确的。有关更多信息,mod_status
请参阅此页面
munin
通过查看/var/log/apache2/access.log
我从哪里得到的信息,我可以验证它是否有效地发出了适当的请求:
127.0.0.1 - - [10/Nov/2011:07:24:15 +0000] "GET /server-status?auto HTTP/1.1" 404 7774 "-" "libwww-perl/5.834
就我而言,设置Location
还不够,因为我正在运行一个Drupal
网站,并且.htaccess
与之mod_rewrite
一起重写了请求。要解决此问题,我必须在我的行中添加以下行.htaccess
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=/server-status # <= added this line
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
请注意,这并不代表安全问题,因为对访问/server-status
的限制仅限127.0.0.1
于apache网站。
更新的答案2
似乎Location
根本不需要将添加到apache站点,因为已经在中定义了/etc/apache2/mods-enabled/status.conf
。顺便说一句,如果要添加ExtendedStatus On
指令,则应在该文件中执行该指令。
mod_rewrite
工作(见与答案更新问题)