Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Herangehensweise Request-Logging

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Herangehensweise Request-Logging

    Hallo zusammen,

    bei uns tritt es in letzter Zeit öfters auf, das ein bestimmter Apache Prozess aus der Reihe tanzt. D.h. er braucht jede Menge Ram und Prozessorleistung und läuft ewig lange.

    Um herauszufinden welcher Request dahinter steckt, würde ich gerne die ausgeführten Requests mitloggen.

    Eigentlich wäre mod_log_config vom Apache dafür bestens geeignet, denn es würde mir alle benötigten Infos liefern, wie Remote-IP, Apache-PID, Url usw.

    Allerdings loggt der Apache das erst nachdem er den Request zu Ende geführt hat und ich will bei mir ja den Übeltäter auf frischer Tat ertappen.

    Mod_log_forensic wäre die Alternative, allerdings ist das überhaupt nicht konfigurierbar. Da bekomme ich also die benötigten Infos leider nicht raus.

    Ich werde also das Logfile wohl per PHP schreiben müssen, bspw. über die bootstrap-File.

    Damit ich das ganze nicht irgenwann in einer gigabytegroßen Datei habe, würde ich gerne das Logging-Prinzip von Unix, also Log -> Archivierung -> Entsorgung, benutzen.

    Leider finde ich im Manual nichts dazu, ob error_log() mit Option 3 das ganze automatisch macht oder ob ich das alles selber einbauen muss.

    Habt ihr sowas schonmal gemacht? Kennt ihr andere/sinnvolle Möglichkeiten?

    Das Ergebnis sollte (hier mit mod_log_config) in etwa so aussehen:

    [18/Apr/2011:15:36:34 +0200] 192.168.0.14 PID:25173 GET example.com /provider/newMessages/count/1
    Vielen Dank im Vorraus
    Gruß
    cy

  • #2
    Für die Archivierung und Entsorgung von Logfiles würde ich den logrotate-Daemon nutzen (ich kann mir nicht vorstellen, dass PHP das selbst macht, dafür ist logrotate zuständig).
    Der Daemon lässt sich beliebig konfigurieren. Du kannst also jede beliebige Datei als Log nutzen.
    Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

    Kommentar


    • #3
      [man]syslog[/man]
      Zumindest bzgl. Unix.
      [url]www.php-maven.org[/url] PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
      Twitter @ [url]https://twitter.com/#!/mepeisen[/url] und Facebook @ [url]http://t.co/DZnKSUih[/url]

      Kommentar


      • #4
        Zitat von Manko10 Beitrag anzeigen
        Für die Archivierung und Entsorgung von Logfiles würde ich den logrotate-Daemon nutzen (ich kann mir nicht vorstellen, dass PHP das selbst macht, dafür ist logrotate zuständig).
        Der Daemon lässt sich beliebig konfigurieren. Du kannst also jede beliebige Datei als Log nutzen.
        Ahh, thx. Ich glaube damit komme ich weiter.

        Kommentar


        • #5
          PHP selbst kann kein log-rotate, dafür muss man entweder sich auf externe log-rotation tools/deamons verlassen oder logging-frameworks nutzen,

          z.B.: http://logging.apache.org/log4php/
          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

          Kommentar


          • #6
            Es hat ja auch niemand etwas anderes behauptet. Auf den logrotate-Daemon habe ich ja schon hingewiesen.
            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

            Kommentar


            • #7
              Zitat von tr0y Beitrag anzeigen
              PHP selbst kann kein log-rotate
              Ja, aber wenn man error_log nutzt(), um in eine Datei zu loggen, kann man deren Namen ja schon mal wenigstens unter Nutzung von date('...') beeinflussen, um sich stündlich/täglich/wöchentlich/... eine neue Datei erzeugen zu lassen - damit verhindert man ganz simpel, dass alles in einer einzigen Logdatei landet, die irgendwann „riesig“ wird.

              Archivieren/Packen älterer Dateien kann man dann immer noch mit einem „externen“ Mechanismus machen, der nicht im loggenden Script selber implementiert ist, so dass man dieses nicht unnötig ausbremst.
              [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

              Kommentar

              Lädt...
              X