Beispiel: Zählen von HTTP-404-Codes - CloudWatch Amazon-Protokolle

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Beispiel: Zählen von HTTP-404-Codes

Mithilfe von CloudWatch Logs können Sie überwachen, wie oft Ihre Apache-Server eine HTTP 404-Antwort zurückgeben. Dabei handelt es sich um den Antwortcode für die Seite, die nicht gefunden wurde. Sie sollten diese Zahl überwachen, um zu verstehen, wie oft die Besucher Ihrer Website die gesuchte Ressource nicht finden. Gehen Sie davon aus, dass die Protokolldatensätze so strukturiert sind, dass sie folgende Informationen für jedes Protokollereignis (Besuch der Website) enthalten:

  • IP-Adresse des Anforderers

  • RFC 1413-Identität

  • Username

  • Zeitstempel

  • Anforderungsmethode mit angeforderter Ressource und Protokoll

  • Anzufordernder HTTP-Antwortcode

  • Bei der Anforderung übertragene Bytes.

Ein Beispiel könnte folgendermaßen aussehen:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326

Sie können eine Regel festlegen, die versucht, Ereignisse in der Struktur der HTTP 404-Fehler zu finden. Dies ist in folgendem Beispiel dargestellt:

Um einen Metrikfilter mit der CloudWatch Konsole zu erstellen
  1. Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie im Navigationsbereich Protokollgruppen aus.

  3. Wählen Sie Actions, Metrikfilter erstellen aus.

  4. Geben Sie für Filtermuster [IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes] ein.

  5. (Optional) Um das Filtermuster zu testen, geben Sie unter Test Pattern (Muster testen) ein oder mehrere Protokollereignisse ein, die zum Testen des Musters verwendet werden sollen. Jedes Protokollereignis muss innerhalb einer einzelnen Zeile liegen, da Zeilenumbrüche verwendet werden, um Protokollereignisse im Anzeigebereich Log event messages (Ereignismeldungen protokollieren) zu trennen.

  6. Wählen Sie Weiter und geben Sie dann für Filtername HTTP404Errors ein.

  7. Geben Sie unter Metric Details (Metrikdetails) für Metric Namespace (Metrik-Namespace) MyNameSpace ein.

  8. Geben Sie für Metrikname ApacheNotFoundErrorCount ein.

  9. Vergewissern Sie sich, dass Metrikwert „1“ lautet. Dadurch ist festgelegt, dass die Zählung für jedes Protokollereignis „404 Error“ um 1 erhöht wird.

  10. Geben Sie für Standardwert „0“ ein und wählen Sie dann Weiter.

  11. Wählen Sie Metrikfilter erstellen aus.

Um einen Metrikfilter mit dem zu erstellen AWS CLI

Führen Sie über die Eingabeaufforderung den folgenden Befehl aus:

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name HTTP404Errors \ --filter-pattern '[ip, id, user, timestamp, request, status_code=404, size]' \ --metric-transformations \ metricName=ApacheNotFoundErrorCount,metricNamespace=MyNamespace,metricValue=1

In diesem Beispiel werden Literalzeichen wie die linke und rechte eckige Klammern, Anführungszeichen und die Zeichenfolge 404 verwendet. Das Muster muss mit der gesamten Protokollereignisnachricht für das zu überwachende Protokollereignis übereinstimmen.

Sie können überprüfen, ob der Metrikfilter erstellt wurde, indem Sie den Befehl describe-metric-filters ausführen. Die Ausgabe sollte in etwa wie folgt aussehen:

aws logs describe-metric-filters --log-group-name MyApp/access.log { "metricFilters": [ { "filterName": "HTTP404Errors", "metricTransformations": [ { "metricValue": "1", "metricNamespace": "MyNamespace", "metricName": "ApacheNotFoundErrorCount" } ], "creationTime": 1399277571078, "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]" } ] }

Jetzt können Sie einige Ereignisse manuell veröffentlichen:

aws logs put-log-events \ --log-group-name MyApp/access.log --log-stream-name hostname \ --log-events \ timestamp=1394793518000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 404 2326" \ timestamp=1394793528000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2326"

Kurz nachdem Sie diese Beispielprotokollereignisse gespeichert haben, können Sie die Metrik abrufen, die in der CloudWatch Konsole als benannt ist ApacheNotFoundErrorCount.