Überwachung von PHP-Anwendungen: Tools und Praktiken für Entwickler

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Überwachung von PHP-Anwendungen: Von grundlegenden Metriken bis zum fortgeschrittenen Profiling



Die Überwachung von PHP-Anwendungen bedeutet nicht nur „zu prüfen, ob die Website ausgefallen ist“. Es ist ein umfassender Prozess der Erfassung, Analyse und Visualisierung von Daten über die Arbeit des Codes, des Servers und der Datenbank. Für das Bildungsportal pythonlib.ru (das sich an PHP richtet) haben wir die wichtigsten Tools und Methoden zusammengestellt, die Ihnen helfen, den Puls Ihres Projekts im Auge zu behalten.



Warum PHP überwachen?

  • Erkennung von Engpässen: Langsame Datenbankabfragen, lange Schleifen, suboptimale Algorithmen.
  • Vorbeugung von Ausfällen: Fatale Fehler, Überschreitung von Speicherlimits, fehlender Speicherplatz.
  • Analyse der Benutzererfahrung: Seitenladezeiten, Anzahl der Anfragen pro Sekunde (RPS), Fehlerquote.
  • Sicherheit: Verdächtige Anfragemuster, Injection-Angriffe.


Wichtige Tools zur PHP-Überwachung



1. Xdebug – Der Klassiker des Profilings

Xdebug ist eine Erweiterung für PHP, die Stack-Tracing, Profiling und Debugging bietet. Für die Überwachung verwenden Sie den Profiling-Modus (profiler_enable_trigger).

Beispielkonfiguration für php.ini:

zend_extension=xdebug.soxdebug.mode=profilexdebug.output_dir=/tmp/xdebugxdebug.profiler_output_name=cachegrind.out.%p

Das Ergebnis sind cachegrind.out-Dateien, die mit KCachegrind oder Webgrind analysiert werden können.



2. Pinba – Echtzeit-Überwachung

Pinba (PHP Is Not A Bottleneck Anymore) ist ein leichtgewichtiger Metrik-Sammler, der als PHP-Modul und C-Server arbeitet. Er sendet Daten über Ausführungszeit, Speicher, Anzahl der Anfragen und Fehler an MySQL.

Beispiel für die Verwendung im Code:

// Timer startenpinba_timer_start('my_script');

// Ihr Code$data = heavyCalculation();

// Timer stoppen und Daten sendenpinba_timer_stop('my_script');

// Zusätzliche Tagspinba_script_name_set('api/v1/users');pinba_hostname_set('web-01');

Die Daten landen automatisch in den Pinba-Tabellen, von wo aus sie in Grafana visualisiert werden können.



3. Tideways – Kommerzieller Profiler

Tideways (ehemals XHProf) ist eine PHP-Erweiterung, die das Profiling von Produktionsumgebungen mit minimalem Overhead ermöglicht. Es sammelt:

  • Ausführungszeit jeder Funktion.
  • Anzahl der Aufrufe.
  • Speicherverbrauch.

Installation über Composer:

composer require tideways/php-xhprof-extension

Profiling starten:

$profiler = new Tideways\\Profiler();$profiler->start();

// Ihr Code$result = expensiveOperation();

$profiler->stop();$data = $profiler->getCallgraph(); // Daten zur Visualisierung


Fehlerprotokollierung: Grundlage der Überwachung

Ohne eine qualitativ hochwertige Protokollierung ist die Überwachung nutzlos. Verwenden Sie PSR-3-kompatible Bibliotheken wie Monolog.

Beispiel für die Einrichtung von Monolog zum Senden kritischer Fehler an Telegram:

use Monolog\\Logger;use Monolog\\Handler\\TelegramBotHandler;

$logger = new Logger('app');$handler = new TelegramBotHandler( 'YOUR_BOT_TOKEN', 'YOUR_CHAT_ID', Logger::CRITICAL);$logger->pushHandler($handler);

try { // gefährlicher Code} catch (\\Throwable $e) { $logger->critical('Fehler im Zahlungsmodul', [ 'exception' => $e, 'user_id' => $userId, 'ip' => $_SERVER['REMOTE_ADDR'] ]);}


Zu überwachende Metriken

Hier ist ein minimaler Satz von Metriken für jede PHP-Anwendung:

  • Antwortzeit (Response Time) – Durchschnitt, 95. und 99. Perzentil.
  • Anzahl der Anf

Empfehlungen