2010-11-13 9 views
7

Ich habe einen mobilen Service über 7 Server verteilt jeder von ihnen eine bestimmte Aufgabe zu tun. Ich möchte Informationen von ihnen protokollieren und später Business Intelligence von ihnen ableiten. Ich habe es auf Flume gerundet. Wie kann ich damit Informationen sammeln? Mein System ist in PHP geschrieben. Funktioniert rumme an PHP?Distributed Logging mit Gerinne

+1

hat jemand mit Gerinne gearbeitet ???? –

Antwort

0

Gerinne Agenten können auf verschiedenen Betriebssystemen sitzen, einschließlich Windows und Linux.

Kurz gesagt, wenn Sie auf einem dieser Betriebssysteme hosten, gibt es keinen Grund, warum Sie Ihre Protokolle nicht aus mehreren Boxen zusammenfassen können.

10

Es hängt von Ihren Bedürfnissen und Ihrer Serverumgebung ab. Eine Sache, die ich Ihnen sagen kann, ist, dass Flume keine direkte Integration mit PHP hat. Es gibt jedoch andere Möglichkeiten.

Ich betreibe Server in Amazon EC2 gehostet läuft eine Kombination von rsyslog + rumme. In meinem Setup sammle ich Weblogs von meinen Servern mit nginx auf Linux-Servern. Die Nginx-Server geben Webanforderungsprotokolle als Syslog-Meldungen an rsyslog aus. rsyslog macht eine tcp-Anfrage an meinen zentralen Kanal-Sammler; Der Gerinne-Sammler hört diese Nachrichten mit der SyslogTcp-Senke ab; Der Gerinne-Sammler leitet die Nachrichten an Amazon S3 weiter. Ich analysiere dann die Log-Dateien mit Amazon EMR zu einem späteren Zeitpunkt.

In Ihrer Situation kann PHP auch so konfiguriert werden, dass es in syslog schreibt (http://php.net/manual/en/function.syslog.php); Aus diesem Grund können Sie eine ähnliche Konfiguration vornehmen und die Protokolle von Syslog an einen zentralen Gerinne-Kollektor-Knoten weiterleiten lassen.

Wenn Sie sich nicht auf Syslog-Nachrichten verlassen möchten, können Sie auch Runtime-Clients auf Ihren Servern ausführen lassen. Die rumme clients können so konfiguriert werden, dass sie lokale Log-Dateien mit der rumple-tail-sink-Funktion abschwächen, oder sie können alle Log-Dateien in einem bestimmten Verzeichnis mit der tailDir-sinke von runse ablegen und zu einem rumpelsammler strömen lassen.

Ein schöner Vorteil von rumme ist, dass Sie es so konfigurieren können, dass Nachrichten mit einer sehr guten Wahrscheinlichkeit geliefert werden, dass es sein Ziel für wichtige Nachrichten erreicht, während andere Nachrichten mit niedrigeren Lieferanforderungen gesendet werden können.

Das Gerinne Bedienungsanleitung ist die beste Ort, um detailliertere Informationen zu erhalten: http://flume.apache.org/FlumeUserGuide.html

Ein weiterer guter Ort zu suchen ist auf freenode zu springen und den #flume Kanal beizutreten.