Esempio: conteggio di codici HTTP 404 - CloudWatch Registri Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempio: conteggio di codici HTTP 404

Utilizzando CloudWatch Logs, è possibile monitorare quante volte i server Apache restituiscono una risposta HTTP 404, che è il codice di risposta per la pagina non trovata. Potresti voler monitorare questo per comprendere quanto spesso i visitatori del tuo sito non sono in grado di individuare le risorse ricercate. Supponiamo che i tuoi record di log siano strutturati per includere le seguenti informazioni per ogni log eventi (visita del sito):

  • Indirizzo IP del richiedente

  • Identità RFC 1413

  • Username

  • Timestamp

  • Richiedi metodo con risorsa di richiesta e protocollo

  • Codice di risposta HTTP per richiesta

  • Byte trasferiti nella richiesta

Un esempio del genere potrebbe apparire come segue:

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

Potresti specificare una regola che cerca di confrontare gli eventi di tale struttura per errori HTTP 404, come mostrato nell'esempio seguente:

Per creare un filtro metrico utilizzando la console CloudWatch
  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel pannello di navigazione, selezionare Log groups (Gruppi di log).

  3. Scegli Actions, Crea filtro parametri.

  4. In Modello di filtro, digitare [IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes].

  5. (Facoltativo) Per testare il modello di filtro, in Test Pattern (Modello di test), inserisci uno o più log eventi da utilizzare per testare il modello. Ogni log eventi deve essere all'interno di una riga, in quanto le interruzioni di riga vengono utilizzate per separare i log eventi nella casella Log event messages (Messaggi di registro eventi).

  6. Scegliere Avanti, quindi per Nome filtro, digitare HTTP404Errors.

  7. In Dettagli parametro, per Spazio dei nomi del parametro, immettere MyNameSpace.

  8. Per Nome parametro, immettere ApacheNotFoundErrorCount.

  9. Verificare che il Valore parametro sia 1. Questo specifica che il conteggio viene incrementato di 1 per ogni evento di errore 404.

  10. In Valore predefinito immettere 0, quindi scegliere Avanti.

  11. Scegli Crea filtro parametri.

Per creare un filtro metrico utilizzando il AWS CLI

Al prompt dei comandi, esegui il comando seguente:

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 questo esempio, sono stati utilizzati caratteri letterali, ad esempio le parentesi quadre sinistra e destra, le virgolette e la stringa di caratteri 404. Il modello deve corrispondere con l'intero messaggio del log eventi, in modo da essere considerato per il monitoraggio.

Puoi verificare la creazione del filtro parametri utilizzando il comando describe-metric-filters. L'output visualizzato dovrebbe essere di questo tipo:

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]" } ] }

Ora puoi pubblicare alcuni eventi manualmente:

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"

Subito dopo aver inserito questi eventi di registro di esempio, puoi recuperare la metrica denominata nella CloudWatch console come. ApacheNotFoundErrorCount