Ich möchte NGinx-Statistiken über Munin überwachen, aber die Nginx-Plugins zeigen keine Daten an. Kann man diagnostizieren, warum nur eines der Munin Nginx-Plugins zu funktionieren scheint?
Der Server läuft unter CentOS 5.3
Die Nginx-Plugins verwenden die folgende URL, um die Statusinformationen abzurufen:
http://127.0.0.1/nginx_status
Normalerweise ist diese URL für nginx nicht so konfiguriert, dass Statusdaten angezeigt werden.
Aus der Dokumentation der Plugins geht hervor, dass nginx so konfiguriert werden muss, dass Statusdaten in einer bestimmten URL angezeigt werden.
Sie müssen den Nginx-Status aktivieren, indem Sie der Konfiguration der Site die folgenden Zeilen hinzufügen:
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;
}
}
Vergessen Sie nicht, den Server nach dem Hinzufügen dieser Konfiguration neu zu starten, und stellen Sie sicher, dass die Stus-URL die Statusdaten zurückgibt.
Für die vollständige Dokumentation jedes Plugins können Sie Folgendes ausführen:
munindoc nginx_request
Hoffe das hilft.
apt install libwww-perl time
auf Munin-Knoten für sein Protokoll Probleme mitUse of uninitialized value $LWP::VERSION
Nginx-Plugins angeben .http://localhost/
bevorzugt die Standard-URL der verwendeten nginx_ * -Plugins möglicherweise IPv6 und stimmt daher nicht mit der nginx-Konfiguration überein, die nur IPv4 localhost zulässt . Durch die Fixierung URL in/etc/munin/plugin-conf.d/munin-node
bishttp://127.0.0.1/nginx_status
schließlich das Plugin Arbeits gemacht.Nach meiner Erfahrung funktionieren diese Plugins aufgrund einer falschen Konfiguration von Nginx wahrscheinlich nicht. Hier ist eine kurze Liste, was in diesem Fall zu tun ist:
1. Überprüfen Sie die Nginx-Installation
Nginx muss mit dem HttpStubStatusModule- Modul kompiliert werden. Sie können dies überprüfen, indem Sie den folgenden Befehl ausführen (unter sudo oder root):
Wenn Sie die folgende Ausgabe sehen, können Sie fortfahren.
Andernfalls müssen Sie nginx mit aktiviertem erforderlichen Modul neu kompilieren oder von einer anderen Quelle installieren (in meinem Fall hatte das Standard-Debian-Repo die richtige Version).
2. Überprüfen Sie die Nginx-Konfiguration
Ich gehe davon aus, dass Sie die erforderliche Konfiguration platziert und aktiviert haben . Um zu sehen, ob es funktioniert, können Sie
ssh
zu Ihrem Server und ausführenWenn Sie hier keine Fehler erhalten, liegt das Problem in der Plugin-Konfiguration. Wenn der Server hier einen Fehler zurückgibt, können Sie das Debugging durchführen, indem Sie die Konfiguration ändern:
Danach können Sie in der Datei
/var/log/nginx/status.error.log
den genauen Grund sehen, warum der Server einen Fehler zurückgegeben hat:In meinem Fall (wie Sie dem Protokoll entnehmen können) war das Problem
client: ::1
, während die Konfiguration nur den Zugriff von erlaubte127.0.0.1
Um das Problem zu beheben, können Sie entweder dem Vorschlag von cepharum folgen oder die Konfiguration des virtuellen Hosts ändern:
(Beachten Sie, dass ich auch durch
listen: 127.0.0.1
Port 80 (ipv4 + ipv6) ersetzt habe, da ersteres auch nicht funktioniert hat)3. Überprüfen Sie die Systemkonfiguration und die Abhängigkeiten
Führen Sie aus, um zu überprüfen, ob das Plugin selbst funktioniert
(Beachten Sie, dass das Plugin "eingeschaltet" sein muss - ein Symlink muss vorhanden sein
/etc/munin/plugins
- lesen Sie das Handbuch, wenn nicht)Wenn Sie Fehler mit der
LWP
Bibliothek erhalten (z. B.LWP::UserAgent
oderLWP::VERSION
), fehlt Ihrem System ein Paket, das vomnginx_status
Plugin benötigt wird .Führen Sie unter Debian / Ubuntu aus
Auf CentOS
Danach testen Sie das Plugin erneut mit
munin-run
. Die erwartete Ausgabe (Zahlen werden unterschiedlich sein):quelle
/var/log/munin-update.log
(Service nginx_status on servername / 127.0.0.1: 4949 hat keine Daten für das Warten auf das Etikett zurückgegeben) hätte ich jahrelang suchen können, um herauszufinden, dasslibwww-perl
das fehlte. Vielen Dank für diese ausführliche Antwort.Möglicherweise hilfreich:
Verwenden Sie zusätzlich die Debug-Option, um munin-run.
Überprüfen Sie die Plugin-Datei auf fest codierte Pfade und stellen Sie sicher, dass diese für Ihr System korrekt sind:
Das Nginx-Plugin kann davon abhängen, dass Nginx mit bestimmten Modulen kompiliert wird oder die Ausgabe in einem bestimmten Format protokolliert. Gibt es eine Dokumentationsseite für die Plugins?
quelle
Entscheidend ist die URL in der Munin-Konfiguration.
Du wirst brauchen
Hinweis
Nicht
quelle
Installieren Sie libwww-perl und führen Sie den Befehl aus
munin-run nginx_status
, um Statistiken anzuzeigen.Starten Sie den Muni-Node-Dienst neu.
quelle