nginx: Status-Seite aktivieren

nginx, die bekannte Apache-Alternative, sollte mittlerweile jedem ein Begriff sein. Allerdings wissen viele nicht, dass auch nginx eine Status-Seite nach dem Apache-Vorbild bietet, die perfekt ist, um Statistiken zu erstellen und den nginx zu überwachen. Folgend möchte ich kurz erläutern, wie man diese Seite aktiviert und nutzt.

Voraussetzung

Vorausetzung für die Aktivierung der Status-Seite ist ein mit dem HttpStubStatusModule kompilierter nginx. Bisher war das auf allen Maschinen, die ich nutzte, der Fall – darunter Debian, Ubuntu und CentOS. Leicht herauszufinden ist das, indem man folgendes Kommando absetzt:

nginx -V 2>&1 | grep -o with-http_stub_status_module

Sofern nun der folgenden Text angezeigt wird, ist alles vorbereitet.

with-http_stub_status_module

Ist dies nicht der Fall, sollte man entsprechende Vorbereitungen treffen, auf die ich in diesem Artikel nicht näher eingehen möchte.

Konfiguration

In der aktivierten Website (oft default), muss folgender Absatz innerhalb des server-Blocks eingefügt werden:

location /nginx_status {
        stub_status on;
        access_log   off;
        allow 127.0.0.1;
        deny all;
}

Hier ist lediglich die allow-Zeile zu beachten, die den Bedürfnissen entsprechend angepasst werden sollte. Natürlich kann auch die Location geändert werden, einen echten Sicherheitsvorteil bringt dies aber nicht mit sich – der Zugriff wird sowieso per allow begrenzt. Dies bietet sich an, wenn man den nginx per Nagios-Plugin überwachen möchte.

Danach muss nginx neugestartet werden.

Ausgabe

Mit Hilfe des folgenden Kommandos kann leicht ermittelt werden, ob nginx alles richtig ausliefert.

wget http://localhost/nginx_status

Folgende Ausgabe sollte der nginx liefern:

Active connections: 43 
server accepts handled requests
 7368 7368 10993 
Reading: 0 Writing: 5 Waiting: 38

Natürlich wird diese Ausgabe von Server zu Server unterschiedlich sein.

Interpretation

Die Ausgabe ist recht einfach zu verstehen, trotzdem möchte ich hier kurz darauf eingehen.

  • Active connections: Zahl aller zu diesem Zeitpunkt geöffneten Verbindungen
  • server accepts handled requests
    • 1. Wert: alle akzeptierten Verbindungen
    • 2. Wert: alle verarbeiteten Verbindungen (im Normfall sind Wert 1 und 2 gleich)
    • 3. Wert: alle verarbeiteten Anfragen (dieser Wert ist im Normfall größer als Wert 1 und 2)
  • Reading: Webserver liest die Request-Header ein
  • Writing: Webserver liest Request-Body ein, bearbeitet die Anfrage oder gibt dem Client eine Antwort
  • Waiting: Zahl der keep-alive-Verbindungen

Auf Basis dieser Hinweise ist es nun möglich, entweder entsprechende Monitoring-Plugins zu nutzen oder eine eigene Routine zu erstellen, die die Werte ausliest.

Ich nutze zu diesem Zweck Bloonix, eine Monitoring-Software in der Cloud, mit der man kostengünstig einige Services überwachen kann und Graphen von diesen erstellen kann.

 

 

Schreibe einen Kommentar