2013-07-09 12 views
7

Wir haben eine Website mit AWS EC2 und automatischer Skalierung in einem typischen LAMP-Stack (ubuntu) erstellt.Wie behalte ich Apache-Logs in EC2, wenn AWS automatisch skaliert wird

Skalierung usw. funktioniert gut, da die Instanzen jedoch "temporär" sind, werden unsere Apache-Protokolle nach Lastspitzen nicht beibehalten (da wir die Volumes oder Instanzen nicht beibehalten).

Gibt es eine "Best Practice/am zuverlässigsten" Möglichkeit, unsere Apache-Logs für diese Instanzen beizubehalten?

Eine Idee bestand darin, Protokolldateien während des Herunterfahrens nach S3 zu kopieren, indem ein Bash-Skript geschrieben wurde, das mit der /etc/rc0.d-Funktionalität ausgeführt wurde (Ausführen eines Skripts beim Herunterfahren).

+0

Was hast du hier gemacht? Ich sehe den gleichen Ansatz, aber ich finde, ich habe keine Zeit während des Herunterfahrens, um zu s3 zu wechseln. – digidigo

+0

Wir gingen mit dem Ansatz, den ich vorgeschlagen habe, der unzuverlässig sein kann, siehe Link unten (obwohl es soweit funktioniert). Die angebotene Lösung könnte besser sein. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html ZITAT: "Wenn Sie ein Skript bei der Instance-Beendigung ausführen, wird Ihre Instanz möglicherweise abnormal beendet, da wir keine Möglichkeit haben, dies sicherzustellen Diese Herunterfahrskripts werden ausgeführt. Amazon EC2 versucht, eine Instanz sauber herunterzufahren und Skripts zum Herunterfahren des Systems auszuführen, jedoch können bestimmte Ereignisse (z. B. Hardwarefehler) die Ausführung dieser Skripts zum Herunterfahren des Systems verhindern. " – BoomShaka

+0

Eine weitere mögliche gute lesen: https://forums.aws.amazon.com/message.jspa?messageID=183672# – BoomShaka

Antwort

8

Die "beste Vorgehensweise" wäre, alle Ihre Protokolle auf einem Server zu aggregieren, mit dem Sie sie archivieren und durchsuchen können. Sie könnten ältere Protokolle in S3 und eventuell in Glacier sichern.

Um all dies zu ermöglichen, müssen Sie Apache einrichten, um stündliche oder minutiöse Protokolle zu schreiben und einen Cronjob zu schreiben, um sie an einen zentralen Ort zu rsync oder in S3 hochzuladen.

Auschecken http://logstash.net/ für eine Open-Source-Aggregation & Suchlösung, die Sie auf Ihrer eigenen Instanz und http://loggly.com/ für eine nicht-freie vollständig gehostete Lösung ausführen können.

EDIT: Mein erster Gedanke war "tun Sie es nicht beim Herunterfahren." Sie sollten Ihre Log-Dateien so regelmäßig wie möglich synchronisieren und als Ergebnis (wenn Sie zum Beispiel minütliche Logs durchführen) erhalten Sie "fast Echtzeit" Log Aggregation/Backup und Suche.