trạng thái máy chủ apache không tìm thấy. kiểm tra xem mod_status đã được bật chưa


9

Tôi đã kích hoạt các apache_plugin trên nút munin:
ln -sv /usr/share/munin/plugins/apache_* /etc/munin/plugins/

Sau khi khởi động lại nút với service munin-node restartđây là những lỗi tôi gặp phải:

$ 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]

Tuy nhiên mod_statusđã được kích hoạt:

$ a2enmod status
Module status already enabled

Và khởi động lại apache không tạo ra sự khác biệt.

Nếu tôi cố gắng chạy các plugin theo cách thủ công thì đây là những gì tôi nhận được (tôi đọc rằng nhận được một chữ U là tin xấu nên ít nhất đó là nhất quán).

$ 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

Có ai biết tại sao tôi vẫn nhận được server-status not foundtin nhắn và làm thế nào tôi có thể thoát khỏi nó không?

Cập nhật câu trả lời 1

Đề xuất của Shane là chính xác về việc thiết lập trình xử lý yêu cầu bằng cách sử dụng LocationSetHandlertrong trang web apache. Để biết thêm thông tin về mod_statusxin vui lòng tham khảo trang này

Tôi có thể xác minh rằng muninthực hiện các yêu cầu phù hợp một cách hiệu quả bằng cách xem /var/log/apache2/access.lognơi tôi nhận được điều này:

127.0.0.1 - - [10/Nov/2011:07:24:15 +0000] "GET /server-status?auto HTTP/1.1" 404 7774 "-" "libwww-perl/5.834

Trong trường hợp của tôi, cài đặt Locationkhông đủ khi tôi đang chạy một Drupaltrang web và .htaccesskết hợp với mod_rewriteviệc viết lại các yêu cầu. Để sửa nó, tôi phải thêm dòng sau vào.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]

Xin lưu ý rằng điều này không đại diện cho vấn đề bảo mật vì quyền truy cập /server-statusbị hạn chế 127.0.0.1trong trang web apache.

Cập nhật câu trả lời 2

Dường như việc thêm Locationvào trang web apache là không cần thiết vì tất cả điều này đã được xác định trong /etc/apache2/mods-enabled/status.conf. Btw, nếu bạn muốn thêm ExtendedStatus Onchỉ thị, đó là trong tệp mà bạn nên làm.

Câu trả lời:


5

Có vẻ như nó đang cố gắng thực sự yêu cầu mô-đun trạng thái. Bạn có một cấu hình thích hợp cho vị trí trạng thái trong của bạn VirtualHost? Một cái gì đó như thế này:

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

Điểm hợp lệ thực sự mặc dù trong trường hợp của tôi, tôi cũng phải thực hiện một số mod_rewritecông việc (xem câu hỏi cập nhật có câu trả lời)
Tối đa

3

Tôi phát hiện ra tôi có thể chạy

$ wget http://localhost/server-status?auto

nhưng không

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

Cái đầu tiên là đánh vào máy chủ mặc định, cái thứ hai là máy chủ ảo.

Vì vậy, tôi rõ ràng đã thêm một phần apache vào /etc/munin/plugin-conf.d/munin-node

[apache_*]
env.url   http://localhost:%d/server-status?auto
env.ports 80

và có đồ thị apache munin của tôi.


2

Tôi tìm thấy giải pháp từ Nhiều Ayromlou trên trang web này :

Vấn đề là các quy tắc .htaccess này trong wordpress tiếp quản các thông tin máy chủ và trạng thái máy chủ được kích hoạt trong cấu hình của apache và trả về một trang không tìm thấy lỗi. Tôi đã xem qua nhiều trang web đề xuất thêm một quy tắc như:

  RewriteCond %{REQUEST_URI} !=/server-status

Điều này đã không làm việc cho tôi. Tôi không chắc liệu phiên bản nhiều trang của wordpress (mà tôi đang sử dụng) có gây ra điều này không. Các quy tắc làm việc đẹp là như sau:

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

Quy tắc này dừng công cụ viết lại bất cứ khi nào thông tin máy chủ hoặc trạng thái máy chủ được phân tích cú pháp như một phần của URL.


1

mod_status được tích hợp vào máy chủ web Apache để lấy trạng thái máy chủ từ trình duyệt web. Với mô-đun này, chúng ta có thể dễ dàng tìm ra máy chủ hoạt động tốt như thế nào. Tất cả các báo cáo được tạo ra trong một định dạng html.

Bước 1. Kiểm tra xem mô-đun trạng thái có được bật hay không apache2ctl -M hoặc ls / etc / apache2 / site-enable

Bước 2. Nếu không được bật, hãy kích hoạt nó bằng lệnh,

tình trạng sudo a2enmod

bước 3. Cấu hình truy cập,

Mở /etc/apache2/mods-enables/status.conf và nhận xét các dòng,

        #<Location /server-status>
        #    SetHandler server-status
        #    Require local
        #Require ip 192.0.2.0/24
        #</Location>

Và thêm dòng sau,

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

Chúng tôi có thể hạn chế quyền truy cập trạng thái máy chủ cho các IP cụ thể trong cấu hình này bằng cách chỉnh sửa, Cho phép từ our_public_ipaddress thay vì Cho phép từ tất cả

Lưu tập tin status.conf.

Bước 4. Khởi động lại apache bằng lệnh,

/etc/init.d/apache2 khởi động lại

Bước 5. Kiểm tra trang trạng thái máy chủ trong trình duyệt

http: // server-ip / server-status

Hy vọng điều này sẽ hữu ích.


0

Tôi đã có cùng một vấn đề. Dưới đây là một số bước chẩn đoán. Hãy thử làm

munin-run apache_processes autoconf

Đó là cách trực tiếp hơn để thấy cùng một lỗi " không (không có trạng thái máy chủ apache trên các cổng 80) "

Bây giờ hãy thử làm

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

Đối với tôi đó là cho 403 Cấm .

Tôi cũng đã thấy 'máy khách bị từ chối bởi cấu hình máy chủ: / var / www / status-status' trong nhật ký lỗi apache chính của tôi

Bạn nhận được như nhau?

Đối với tôi trong thực tế, câu trả lời của Shane Madden đã giải quyết nó.


Xin chào Harry, nếu bạn gặp vấn đề tương tự thì hãy bỏ phiếu cho câu hỏi vì nó làm tăng xác suất nhận được câu trả lời.
Tối đa

Sẽ làm được, ngay khi tôi có đủ danh tiếng để bầu chọn :-)
Harry Wood

0

Nếu / trạng thái máy chủ chỉ bị cấm từ 127.0.0.1, bạn có thể tạo cấu hình Virtualhost cho 127.0.0.1 với nội dung sau:

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

Dưới đây là giải thích chi tiết hơn

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.