Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Interrogation des journaux avec CloudWatch Logs Insights
CloudWatch Logs Insights vous permet de rechercher et d'analyser de manière interactive les données du journal d'accès au serveur. Les requêtes sont exécutées sur le groupe de journaux dans lequel vos journaux sont fournis et renvoient les résultats en quelques secondes.
Note
Pour interroger les journaux envoyés à un compartiment à usage général Amazon S3, consultezInterrogation des journaux d’accès pour les demandes à l’aide d’Amazon Athena. Pour interroger le miroir des tables S3 avec SQL, consultezInterrogation des journaux d'accès dans les tables S3.
Prise en main
-
Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/
. -
Dans le volet de navigation, choisissez Logs, puis Logs Insights.
-
Sélectionnez le groupe de journaux d'accès au serveur dans le sélecteur de groupes de journaux.
-
Choisissez un intervalle de temps pour votre requête.
-
Entrez une requête et choisissez Exécuter la requête.
Analyse du trafic
Les requêtes suivantes vous aident à comprendre le volume des demandes et les modèles de trafic.
Exemple Volume des demandes au fil du temps
stats count(*) as requests by bin(5m) as interval | sort interval asc
Exemple Mixage des demandes par type d'opération
stats count(*) as cnt by operation | sort cnt desc
Exemple Trafic par compartiment
stats count(*) as requests, sum(bytes_sent_size) as bytes_out by bucket_arn | sort requests desc
Résolution des problèmes d'erreur
Les requêtes suivantes vous aident à identifier et à diagnostiquer les erreurs.
Exemple Répartition du taux d'erreur
filter http_status >= 400 | stats count(*) as error_count by http_status, error_code, operation | sort error_count desc
Exemple 403 Demandes d'accès refusées
filter http_status = 403 | stats count(*) as denied_count by key_name, remote_ip, requester | sort denied_count desc
Exemple 404 requêtes introuvables
filter http_status = 404 | stats count(*) as miss_count by key_name, error_code, remote_ip | sort miss_count desc
Exemple 503 événements SlowDown (d'étranglement)
filter http_status = 503 | stats count(*) as throttle_count by key_name, remote_ip | sort throttle_count desc
Modèles d’accès
Les requêtes suivantes vous aident à comprendre qui accède à vos données et comment.
Exemple Trafic par adresse IP source
stats count(*) as total_requests, sum(http_status >= 400) as errors, sum(bytes_sent_size) as bytes_transferred by remote_ip | sort total_requests desc
Exemple Opérations par le demandeur
stats count(*) as requests by requester, operation | sort requests desc
Exemple Clés les plus consultées
filter operation like /REST\.(GET|PUT)\.OBJECT/ | stats count(*) as access_count, sum(bytes_sent_size) as bytes_out by key_name | sort access_count desc | limit 10
Analyse de latence
Les requêtes suivantes vous aident à identifier les demandes lentes et les tendances de latence.
Exemple Latence par type d'opération
filter operation like /REST\.(GET|PUT)\.OBJECT/ | stats avg(total_duration) as avg_ms, pct(total_duration, 50) as p50_ms, pct(total_duration, 95) as p95_ms, max(total_duration) as max_ms, count(*) as requests by operation
Exemple Touches les plus lentes grâce à la latence p95
filter operation like /REST\.GET\.OBJECT/ | stats avg(total_duration) as avg_ms, pct(total_duration, 95) as p95_ms, count(*) as requests by key_name | sort p95_ms desc | limit 10
Exemple Latence dans le temps
filter operation like /REST\.(GET|PUT)\.OBJECT/ | stats avg(total_duration) as avg_ms, pct(total_duration, 95) as p95_ms by bin(5m) as interval | sort interval asc
Attribution des coûts
Les requêtes suivantes vous aident à comprendre le transfert de données et à identifier les facteurs de coût.
Exemple Transfert de données par opération
filter operation like /REST\.(GET|PUT|DELETE)\.OBJECT/ | stats sum(bytes_sent_size) as total_bytes_out, sum(object_size) as total_object_bytes, count(*) as request_count by operation | sort total_bytes_out desc
Exemple Les plus gros objets servis
filter operation like /REST\.GET\.OBJECT/ and bytes_sent_size > 0 | stats max(object_size) as max_size, avg(object_size) as avg_size, count(*) as reads by key_name | sort max_size desc | limit 10
Analyse de sécurité
Les requêtes suivantes vous aident à détecter les modèles d'accès suspects.
Exemple IP avec des taux d'erreur élevés
stats count(*) as total, sum(http_status >= 400) as errors by remote_ip | filter errors > 10 | sort errors desc
Exemple Tentatives d'accès par clé infructueuses
filter http_status >= 400 | stats count(*) as attempts by remote_ip, key_name, operation, http_status | sort attempts desc | limit 20
Exemple Distribution des versions TLS
stats count(*) as cnt by tls_version | sort cnt desc