Nginx: PHP-FPM Statusseite einschalten

Gegenüber Apache ist Nginx ein reiner Datenauslieferer. Anwendungen werden hier nicht wie beim Apache als Module geladen, sondern müssen als eigenständige Prozesse, über FastCGI erreichbar, bereitgestellt werden. Um PHP bereitzustellen kann PHP-FPM verwendet werden. Über FastCGI kann es entweder über einen Unix-Socket oder per TCP/IP angesprochen werden und mit Nginx kommunizieren.

Um die Serverlast im Auge zu behalten kennt man unter Apache die vom Modul mod_status bereitgestellt Statusseite. Unter Nginx kann mit stub_status on; ebenfalls an entsprechender Stelle eine Statusseite eingeschaltet werden. Für PHP-FPM müssen mehre Einstellungen vorgenommen werden.

Zuerst einmal muss in PHP-FPM festgelegt werden, unter welcher URL bzw. dessen Pfad die Statusseite ausgegeben werden soll. Diese wird in der Konfigurationsdatei des jeweiligen PHP-FPM-Pools eingetragen. Unter Debian heißt der Standard-Pool www und die entsprechende Konfiguration befindet sich in /etc/php5/fpm/pool.d/www.conf.

Ich verwende hier /fpmstatus, da eindeutiger und das vorgegebene /status bei mir schon belegt war.

Anschließend muss in Nginx festgelegt werden, dass dieser Pfad an PHP-FPM weitergeleitet wird.

Hier wird festgelegt, dass die Pfade /fpmstatus und /fpmping an PHP-FPM weitergeleitet werden und nur ein Zugriff von localhost auf diese Pfade zulässig ist.

Nach einem Neustart von Nginx und PHP-FPM kann nun auf die entsprechende URL zugegriffen werden:

Die ausgegebenen Werte bedeuten im einzelnen:

start timeZeitpunkt, wann PHP-FPM gestartet wurde
start sinceAnzahl der Sekunden seit dem Start von PHP-FPM
accepted connAnzahl der akzeptierten Verbindungen
listen queueAnzahl der wartenden Anfragen in der Warteschlange. Sollte hier ein Wert größer 0 auftauchen, so sollte die Anzahl der FPM-Prozesse erhöht werden.
max listen queuedie Maximalanzahl der jemals in der Warteschlange wartenden Anfragen
listen queue lendie Größe der Warteschlange
idle processesAnzahl der unbeschäftigten Prozesse
active processesAnzahl der Prozesse, die aktuell Anfragen bearbeiten
total processesGesamtanzahl der Prozesse, Summe aus beiden vorgenannten Werten
max active processesMaximalanzahl der jemals gleichzeitig aktiven Prozesse
max children reachedAnzahl, wie oft die maximale Anzahl der gleichzeitig aktiven Prozesse erreicht wurde. Steht hier eine Zahl größer 0 sollte die Maximalanzahl der Prozesse erhöht werden.
slow requestsofern die Auswertung von "slow requests" in FPM eingeschaltet ist, wird hier angezeigt, wie oft solche slow requests aufgetreten sind

Erweiterte Statistiken für alle FPM-Prozesse lassen sich ebenfalls ausgeben:

Hier wird für jeden FPM-Prozess unter anderem angezeigt, welche URL er gerade bearbeitet und wie viele Anfragen er insgesammt seit dem Start schon verarbeitet hat.

Die Statusseite kann auch in anderen Formaten ausgegen werden:

  • http://localhost/fpmstatus
  • http://localhost/fpmstatus?json
  • http://localhost/fpmstatus?html
  • http://localhost/fpmstatus?xml

Die erweiterte Statusseite versteht die unterschiedlichen Ausgabeformate ebenfalls:

  • http://localhost/fpmstatus?full
  • http://localhost/fpmstatus?json&full
  • http://localhost/fpmstatus?html&full
  • http://localhost/fpmstatus?xml&full

Besonders die XML- und JSON-Ausgabe lassen sich einfach weiterverarbeiten. Die HTML-Ausgabe kann auf entsprechende Webseiten eingebunden werden.

Nginx: PHP-FPM Statusseite einschalten
5 (100%) 1 vote

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.