Heim  >  Artikel  >  Backend-Entwicklung  >  In PHP implementiertes Protokollerfassungssystem

In PHP implementiertes Protokollerfassungssystem

不言
不言Original
2018-04-18 13:59:592214Durchsuche

In diesem Artikel wird hauptsächlich das in PHP implementierte Protokollsammelsystem vorgestellt, das einen bestimmten Referenzwert hat. Jetzt kann ich es mit allen teilen. Freunde in Not können sich darauf beziehen.

Aktuelle Geschäfte betreffen das Sammeln von Protokollen von Remote-Servern Aus der Idee heraus, die Erweiterung des Technologie-Stacks zu begrenzen, habe ich es mit PHP implementiert

Es gibt einige kleine Punkte, die während des Implementierungsprozesses beachtet werden müssen, die wie folgt aufgezeichnet werden:

1. Da es viele Server gibt, müssen Sie auf jedem Server Software installieren, was Betriebs- und Wartungskosten verursacht . Es ist nicht erforderlich, Software auf dem Hersteller (Server) zu installieren.

Jeder Server ist mit SSH-Verbindungsberechtigungen konfiguriert 🎜>

3. Die Protokolldateien werden auf jedem Server nach den gleichen Verzeichnisregeln abgelegt.

4 Bitte beachten Sie, dass das INI-Dateiproblem aufgrund von Netzwerkproblemen oder SSH-Verbindungen fehlschlägt 🎜>


6 .Protokollkürzung und -komprimierung Normalerweise kürzt und komprimiert unser Betrieb die Protokolle jeden Tag zu einem festen Zeitpunkt, daher gibt es zwei Arten von Dateien, die gelesen werden müssen: komprimierte und unkomprimierte Protokolle , die separat verarbeitet werden müssen. Zeitstempel in Sekunden reichen nicht aus, um Anfragen in Millisekunden zu messen Quelle und derselbe UA können als A-Anfrage betrachtet werden.

8. Verwenden Sie readdir, um das Remote-Verzeichnis im SSH-Format zu lesen Unnötiges herausfiltern Nachdem die Datei erstellt wurde, sortieren Sie sie nach der Dateierstellungszeit und verarbeiten Sie sie einzeln.

9 Wenn Sie file_get_contents verwenden, reagiert die Schnittstelle für längere Zeit nicht mehr . Ich habe es mit fopen und fread Schritt für Schritt gelesen (egal wie groß es ist, es ist nutzlos, es wird eine Fortschrittsanzeige ausgegeben). 🎜>10. Speichern Sie die komprimierte Datei im Cache-Verzeichnis, um sie zu sichern und erneut zu verwenden. Überprüfen Sie zunächst das Cache-Verzeichnis Es muss aus dem Netzwerk entfernt werden.


11 . Zeichnen Sie den Abschluss der Komprimierungsprotokollverarbeitung auf. Nachdem das PHP-Programm ausgeführt wurde, muss die Verarbeitung nicht wiederholt werden . Das unkomprimierte Protokoll zeigt, dass kein Caching erforderlich ist (verwenden Sie ftell, fseek ). Beurteilung. Wenn das Dateidatum vom Aufnahmedatum abweicht oder die Datei kleiner als die Dateigröße im Datensatz ist, bedeutet dies, dass die Datei aktualisiert wurde und der Dateizeiger zurückgesetzt werden muss 🎜> Andernfalls können Sie (fseek) direkt an der zuletzt verarbeiteten Position positionieren

15. Verwenden Sie reguläre Regeln, das heißt, es kann nach Leerzeichen unterschieden werden Trennzeichen. Sie können zum Verarbeiten auch die Klassenbibliothek logParser verwenden, indem Sie den Iterator-Coroutine-Modus verwenden. Lesen Sie den letzten Protokollzeitstempel (Millisekunden), die IP-Adresse und den UA jedes Servers. 17. Ich habe MYSQL verwendet, um das Protokoll zu speichern, sobald MYSQL ausgeführt wird Sie können viel Laufzeit verschwenden und alle auf einmal einfügen.

18 Zusätzlich zum SSH-Verbindungsfehler wird eine Zerlegung verursacht fehlschlägt, und es wird auch eine Ausnahme ausgelöst. Fangen Sie es vom Hauptprogramm ab und führen Sie es erneut aus:

PHP-Ausgabeprotokoll

PHP schreibt Protokollfunktion


PHP implementiert eine Protokollfunktion

Das obige ist der detaillierte Inhalt vonIn PHP implementiertes Protokollerfassungssystem. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn