Yanıtlar:
Durum bilgisi almak için nginx eklentileri aşağıdaki URL'yi kullanır:
http://127.0.0.1/nginx_status
Genellikle, nginx bu URL'yi durum verilerini gösterecek şekilde yapılandırmaz.
Eklentilerin belgelerinden, nginx'in durum verilerini belirli bir URL'de gösterecek şekilde yapılandırılması gerektiğini görüyorum.
Sitenin yapılandırmasına aşağıdaki satırları ekleyerek nginx durumunu etkinleştirmeniz gerekir:
server {
listen 127.0.0.1;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Bu yapılandırmayı ekledikten sonra sunucuyu yeniden başlatmayı unutmayın ve stus URL'sinin durum verilerini döndürdüğünden emin olun.
Her eklentinin eksiksiz dokümantasyonu için şunları çalıştırabilirsiniz:
munindoc nginx_request
Bu yardımcı olur umarım.
http://localhost/
IPv6'yı tercih edebilir ve bu nedenle yalnızca IPv4 yerel ana bilgisayarlara izin veren nginx yapılandırmasıyla eşleşmez. Sonunda eklentinin çalışmasını /etc/munin/plugin-conf.d/munin-node
sağlamak için URL'yi düzelterek http://127.0.0.1/nginx_status
.
Deneyimlerime göre, bu eklentiler muhtemelen nginx yanlış yapılandırması nedeniyle çalışmıyor. Bu durumda ne yapılacağına dair kısa bir liste:
Nginx, HttpStubStatusModule modülü ile derlenmelidir . Aşağıdaki komutu çalıştırarak (sudo veya root altında) bunu kontrol edebilirsiniz:
nginx -V 2>&1 | grep -o with-http_stub_status_module
Aşağıdaki çıktıyı görürseniz, devam edebilirsiniz.
with-http_stub_status_module
Aksi takdirde, nginx'i gerekli modül etkin olarak yeniden derlemeniz veya farklı bir kaynaktan yüklemeniz gerekir (Benim durumumda, varsayılan Debian repo doğru sürüme sahipti).
Gerekli yapılandırmayı yerleştirip etkinleştirdiğinizi varsayıyorum . Çalışıp çalışmadığını görmek ssh
için sunucunuza gidebilir ve çalıştırabilirsiniz.
wget http://localhost/nginx_status
Burada hata almazsanız, sorun eklenti yapılandırmasıdır. Sunucu burada hata döndürürse, yapılandırmayı değiştirerek hata ayıklayabilirsiniz:
location /nginx_status {
stub_status on;
access_log off;
error_log /var/log/nginx/status.error.log;
allow 127.0.0.1;
deny all;
}
Bundan sonra, dosyada /var/log/nginx/status.error.log
sunucunun bir hata döndürmesinin nedenini tam olarak görebilirsiniz:
[error] 2203#0: *1442 access forbidden by rule, client: ::1, server: localhost, request: "GET /nginx_status HTTP/1.1", host: "localhost"
Benim durumumda (günlükten de görebileceğiniz gibi) sorun, client: ::1
yapılandırma yalnızca127.0.0.1
Sorunu çözmek için cepharum'un önerisini izleyebilir veya sanal ana bilgisayar yapılandırmasını değiştirebilirsiniz:
server {
listen 80;
listen [::]:80;
server_name localhost;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
allow ::1;
deny all;
}
}
( listen: 127.0.0.1
Bağlantı noktası 80 (ipv4 + ipv6) ile değiştirdiğime dikkat edin çünkü eski de çalışmadı)
Eklentinin çalışıp çalışmadığını kontrol etmek için çalıştırın
munin-run nginx_status
(eklentinin "açık" olması gerektiğini unutmayın - adresinde bir sembol bağlantısı bulunmalıdır /etc/munin/plugins
- yoksa kılavuzu okuyun )
LWP
Kitaplıkla ilgili hatalar alırsanız (örn. LWP::UserAgent
Veya LWP::VERSION
), sisteminizde nginx_status
eklenti için gereken bir paket eksik .
Debian / Ubuntu'da çalıştırın
apt install libwww-perl
CentOS'ta
yum install perl-libwww-perl
Bundan sonra eklentiyi kullanarak tekrar test edin munin-run
. Beklenen çıktı (sayılar farklı olacaktır):
total.value 1
reading.value 0
writing.value 1
waiting.value 0
/var/log/munin-update.log
(Sunucuadı / 127.0.0.1: 4949 üzerinde hizmet nginx_status hizmetinde etiket beklemek için veri döndürmedi) hata iletilerine dayanarak, bunun libwww-perl
eksik olduğunu bulmak için yıllarca araştırmış olabilirdim . Bu kapsamlı cevap için çok teşekkürler.
Muhtemelen yardımcı:
cd /etc/munin/plugins
munin-run PLUGINNAME
Ayrıca munin çalıştırmak için hata ayıklama seçeneğini kullanın.
Eklenti dosyasında sabit kodlanmış yollar olup olmadığını kontrol edin ve sisteminiz için doğru olduklarını doğrulayın:
grep '/' PLUGINNAME
Nginx eklentisi Nginx'in belirli modüllerle derlenmesine veya belirli bir formattaki log çıktısına güvenebilir. Eklentiler için herhangi bir belge sayfası var mı?
Önemli olan munin config'teki url.
İhtiyacın olacak
[nginx*]
env.url http://localhost/nginx_status
Not
nginx_status
Değil
nginx-status
Libwww-perl programını yükleyin ve munin-run nginx_status
istatistikleri görmek için komutu çalıştırın .
Çok düğümlü hizmeti yeniden başlatın.
apt install libwww-perl time
ileUse of uninitialized value $LWP::VERSION
ilgili günlük belirten sorunları için munin düğümleri üzerinde vardı .