아파치 서버 상태를 찾을 수 없습니다. mod_status가 활성화되어 있는지 확인하십시오


9

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지시문 을 추가하려면 해당 파일에 지시문 을 추가하십시오 .

답변:


5

실제로 상태 모듈에 요청하려고하는 것 같습니다. 의 상태 위치에 대한 적절한 구성이 VirtualHost있습니까? 이 같은:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>

실제로 내 경우에는 몇 가지 mod_rewrite작업 을 수행해야했지만 유효한 대답 (업데이트 된 질문 참조)
Max

3

나는 내가 달릴 수 있다는 것을 알았다

$ 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 아파치 그래프를 얻었다.


2

이 사이트 에서 Many Ayromlou의 솔루션을 찾았습니다 .

문제는 워드 프레스의 이러한 .htaccess 규칙이 아파치 구성에서 활성화 된 server-info 및 server-status url을 인계하여 페이지를 찾을 수 없음 오류를 반환한다는 것입니다. 나는 다음과 같은 규칙 추가를 제안하는 수많은 사이트를 발견했습니다.

  RewriteCond %{REQUEST_URI} !=/server-status

이것은 나를 위해 작동하지 않았습니다. 다중 사이트 버전의 워드 프레스 (사용중인) 가이 원인인지 확실하지 않습니다. 아름답게 작동 한 규칙은 다음과 같습니다.

  RewriteRule ^(server-info|server-status) - [L]

이 규칙은 server-info 또는 server-status가 URL의 일부로 구문 분석 될 때마다 다시 쓰기 엔진을 중지합니다.


1

웹 브라우저에서 서버 상태를 얻기 위해 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

이것이 도움이되기를 바랍니다.


0

나는 같은 문제를 겪고 있었다. 진단 단계가 더 있습니다. 시도해보십시오

munin-run apache_processes autoconf

즉 "같은 오류가 볼 수있는보다 직접적인 방법 없음 (포트 80에없는 아파치 서버 상태) "

이제 해보십시오

wget http://127.0.0.1/server-status?auto

나를 위해 403 Forbidden을 제공 합니다.

또한 주요 아파치 오류 로그에 '서버 구성으로 클라이언트가 거부되었습니다 : / var / www / server-status'가 나타 났습니다.

당신은 같은거야?

사실 Shane Madden의 대답으로 해결되었습니다.


안녕 해리, 같은 문제가 발생하면 답변을 얻을 확률이 높아 지므로 질문에 투표하십시오.
최대

내가 투표하기에 충분한 평판을 얻 자마자 할 것입니다 :-)
Harry Wood

0

/ 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>

자세한 설명 은 다음과 같습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.