status server apache tidak ditemukan. periksa apakah mod_status diaktifkan

9

Saya telah mengaktifkan apache_plugin pada simpul munin:
ln -sv /usr/share/munin/plugins/apache_* /etc/munin/plugins/

Setelah me-restart node dengan di service munin-node restartsini adalah kesalahan yang saya dapatkan:

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

Namun mod_statussudah diaktifkan:

$ a2enmod status
Module status already enabled

Dan memulai ulang apache tidak ada bedanya.

Jika saya mencoba menjalankan plugin secara manual di sini adalah apa yang saya dapatkan (saya membaca bahwa mendapatkan U adalah berita buruk jadi setidaknya itu konsisten).

$ 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

Adakah yang tahu mengapa saya masih menerima server-status not foundpesan itu dan bagaimana saya bisa menghilangkannya?

Jawaban yang diperbarui 1

Saran Shane benar tentang pengaturan penangan permintaan menggunakan Locationdan SetHandlerdi situs apache. Untuk informasi lebih lanjut, mod_statussilakan merujuk ke halaman ini

Saya dapat memverifikasi yang muninsecara efektif membuat permintaan yang sesuai dengan melihat di /var/log/apache2/access.logmana saya mendapatkan ini:

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

Dalam pengaturan kasus saya, Locationitu tidak cukup karena saya menjalankan Drupalsitus dan .htaccessdikombinasikan dengan mod_rewritemenulis ulang permintaan. Untuk memperbaikinya, saya harus menambahkan baris berikut ke blog saya.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]

Harap dicatat bahwa ini tidak mewakili masalah keamanan karena akses ke /server-statusdibatasi 127.0.0.1pada situs apache.

Jawaban yang diperbarui 2

Tampaknya menambahkan Locationke situs apache sama sekali tidak diperlukan karena ini sudah didefinisikan dalam /etc/apache2/mods-enabled/status.conf. Btw, jika Anda ingin menambahkan ExtendedStatus Onarahan, itu dalam file yang harus Anda lakukan.

Maks
sumber

Jawaban:

5

Sepertinya itu mencoba untuk benar-benar membuat permintaan ke modul status. Apakah Anda memiliki konfigurasi yang tepat untuk lokasi status di Anda VirtualHost? Sesuatu seperti ini:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 127.0.0.1
</Location>
Shane Madden
sumber
Poin yang valid memang meskipun dalam kasus saya, saya juga harus melakukan beberapa mod_rewritepekerjaan (lihat pertanyaan yang diperbarui dengan jawaban)
Max
3

Saya tahu saya bisa lari

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

tapi tidak

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

Yang pertama adalah memukul server default, yang kedua adalah server virtual.

Jadi saya secara eksplisit menambahkan bagian apache ke /etc/munin/plugin-conf.d/munin-node

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

dan mendapat grafik apache munin saya.

Marji
sumber
2

Saya menemukan solusi dari Many Ayromlou di situs ini :

Masalahnya adalah aturan .htaccess ini di wordpress mengambil alih info server dan url status server yang diaktifkan di konfigurasi apache dan mengembalikan halaman yang tidak ditemukan kesalahan. Saya menemukan banyak situs yang menyarankan menambahkan aturan seperti:

  RewriteCond %{REQUEST_URI} !=/server-status

Ini tidak berhasil untuk saya. Saya tidak yakin apakah versi wordpress multisite (yang saya gunakan) menyebabkan hal ini. Aturan yang bekerja dengan indah adalah sebagai berikut:

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

Aturan ini menghentikan mesin penulisan ulang setiap kali info server atau status server diurai sebagai bagian dari URL.

janfai
sumber
1

mod_status dibangun ke server web Apache untuk mendapatkan status server dari browser web. Dengan modul ini kita dapat dengan mudah mengetahui seberapa baik kinerja server. Semua laporan dihasilkan dalam format html.

Langkah 1. Periksa apakah modul status diaktifkan atau tidak apache2ctl -M atau ls / etc / apache2 / situs-enabled

Langkah 2. Jika tidak diaktifkan, aktifkan dengan perintah,

sudo a2enmod status

langkah3. Konfigurasikan akses,

Buka /etc/apache2/mods-enabled/status.conf dan beri komentar pada baris,

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

Dan tambahkan baris berikut,

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

Kami dapat membatasi akses status server untuk IP tertentu dalam konfigurasi ini dengan mengedit, Perbolehkan dari our_public_ipaddress alih-alih Perbolehkan dari semua

Simpan file status.conf.

Step4. Mulai ulang apache dengan perintah,

/etc/init.d/apache2 restart

Step5. Periksa halaman status server di browser

http: // server-ip / server-status

Semoga ini bisa membantu.

Amol
sumber
0

Saya mengalami masalah yang sama. Inilah beberapa langkah diagnostik lainnya. Coba lakukan

munin-run apache_processes autoconf

Itu cara yang lebih langsung untuk melihat kesalahan yang sama " tidak (tidak ada status server apache pada port 80) "

Sekarang coba lakukan

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

Bagi saya itu memberi 403 Terlarang .

Saya juga melihat 'klien ditolak oleh konfigurasi server: / var / www / server-status' di log kesalahan apache utama saya

Anda mendapatkan hal yang sama?

Bagi saya sebenarnya jawaban Shane Madden menyelesaikannya.

Harry Wood
sumber
Halo Harry, jika Anda mengalami masalah yang sama maka silakan pilih pertanyaan karena meningkatkan kemungkinan mendapatkan jawaban.
Maks
Akan lakukan, segera setelah saya memiliki reputasi yang cukup untuk memilih :-)
Harry Wood
0

Jika / server-status hanya dilarang dari 127.0.0.1 Anda dapat membuat konfigurasi VirtualHost untuk 127.0.0.1 dengan konten berikut:

<VirtualHost *:80>
    ServerAdmin [email protected]
    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>

Berikut penjelasan lebih rinci

druss
sumber