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
그리고 아파치를 다시 시작해도 차이가 없습니다.
내가 수동으로 플러그인을 실행하려고하면 내가 얻는 것입니다 (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
셰인의 제안을 사용하여 요청 처리기를 설정하는 방법에 대한 정확 Location
하고 SetHandler
아파치 사이트입니다. 자세한 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
.
업데이트 된 답변 2
Location
아파치 사이트에 추가하는 것은 이미에 정의되어 있으므로 필요하지 않은 것으로 보입니다 /etc/apache2/mods-enabled/status.conf
. Btw, ExtendedStatus On
지시문 을 추가하려면 해당 파일에 지시문 을 추가하십시오 .
답변
실제로 상태 모듈에 요청하려고하는 것 같습니다. 의 상태 위치에 대한 적절한 구성이 VirtualHost
있습니까? 이 같은:
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
답변
나는 내가 달릴 수 있다는 것을 알았다
$ wget http://localhost/server-status?auto
하지만
$ wget http://127.0.0.1/server-status?auto
첫 번째는 기본 서버에, 두 번째는 가상 서버에 도달합니다.
그래서 아파치 섹션을 명시 적으로 추가했습니다. /etc/munin/plugin-conf.d/munin-node
[apache_*]
env.url http://localhost:%d/server-status?auto
env.ports 80
그리고 나의 munin 아파치 그래프를 얻었다.
답변
이 사이트 에서 Many Ayromlou의 솔루션을 찾았습니다 .
문제는 워드 프레스의 이러한 .htaccess 규칙이 아파치 구성에서 활성화 된 server-info 및 server-status url을 인계하여 페이지를 찾을 수 없음 오류를 반환한다는 것입니다. 나는 다음과 같은 규칙 추가를 제안하는 수많은 사이트를 발견했습니다.
RewriteCond %{REQUEST_URI} !=/server-status
이것은 나를 위해 작동하지 않았습니다. 다중 사이트 버전의 워드 프레스 (사용중인) 가이 원인인지 확실하지 않습니다. 아름답게 작동 한 규칙은 다음과 같습니다.
RewriteRule ^(server-info|server-status) - [L]
이 규칙은 server-info 또는 server-status가 URL의 일부로 구문 분석 될 때마다 다시 쓰기 엔진을 중지합니다.
답변
웹 브라우저에서 서버 상태를 얻기 위해 Apache 웹 서버에 내장 된 mod_status 이 모듈을 사용하면 서버의 성능을 쉽게 확인할 수 있습니다. 모든 보고서는 html 형식으로 생성됩니다.
1 단계. 상태 모듈이 활성화되어 있는지 확인하십시오. apache2ctl -M 또는 ls / etc / apache2 / sites-enabled
2 단계. 활성화되어 있지 않으면 명령으로 활성화하십시오.
sudo a2enmod 비행 상태
step3. 액세스 구성
/etc/apache2/mods-enabled/status.conf를 열고 행을 주석으로 처리하십시오.
#<Location /server-status>
# SetHandler server-status
# Require local
#Require ip 192.0.2.0/24
#</Location>
그리고 다음 줄을 추가하십시오.
<Location /server-status>
SetHandler server-status
Order deny,allow
Allow from all
</Location>
우리는이 구성에서 특정 IP에 대한 서버 상태의 액세스를 모두에서 허용 대신에 our_public_ipaddress에서 허용을 편집하여 제한 할 수 있습니다.
status.conf 파일을 저장하십시오.
4 단계. 명령으로 아파치를 다시 시작하십시오.
/etc/init.d/apache2 restart
5 단계. 브라우저에서 서버 상태 페이지 확인
http : // server-ip / server-status
이것이 도움이되기를 바랍니다.
답변
나는 같은 문제를 겪고 있었다. 진단 단계가 더 있습니다. 시도해보십시오
munin-run apache_processes autoconf
즉 “같은 오류가 볼 수있는보다 직접적인 방법 없음 (포트 80에없는 아파치 서버 상태) “
이제 해보십시오
wget http://127.0.0.1/server-status?auto
나를 위해 403 Forbidden을 제공 합니다.
또한 주요 아파치 오류 로그에 ‘서버 구성으로 클라이언트가 거부되었습니다 : / var / www / server-status’가 나타 났습니다.
당신은 같은거야?
사실 Shane Madden의 대답으로 해결되었습니다.
답변
/ server-status가 127.0.0.1에서만 금지 된 경우 다음 컨텐츠를 사용하여 127.0.0.1에 대한 VirtualHost 구성을 작성할 수 있습니다.
<VirtualHost *:80>
ServerAdmin superadmin@somemail.com
ServerName 127.0.0.1
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options +FollowSymLinks
AllowOverride None
order allow,deny
allow from all
</Directory>
</VirtualHost>
자세한 설명 은 다음과 같습니다