Comment puis-je utiliser les requêtes CloudWatch Logs Insights avec mes journaux de flux d'un VPC ?

Date de la dernière mise à jour : 07/04/2022

Je veux utiliser les requêtes Amazon CloudWatch Logs Insights pour traiter mes journaux de flux d'Amazon Virtual Private Cloud (Amazon VPC) qui se trouvent dans un groupe de journaux. Comment procéder ?

Brève description

Après avoir activé les journaux de flux d'un VPC ciblant CloudWatch Logs, vous verrez un flux de journaux pour chaque interface réseau Elastic. CloudWatch Logs Insights est un outil de requête qui peut effectuer des requêtes complexes sur les évènements du journal stockés dans des groupes de journaux. En cas de problème, vous avez la possibilité d'utiliser CloudWatch Logs Insights pour identifier les causes possibles et valider les correctifs déployés.

Pour plus d'informations sur les types de journaux pris en charge, consultez Journaux pris en charge et champs découverts.

Solution

Exécuter une requête

Pour exécuter une requête, procédez comme suit :

1.    Ouvrez la console Cloudwatch.

2.    Sélectionnez Logs (Journaux),Logs Insights (Informations des journaux).

3.    Dans le tableau de bord de Logs Insights (Informations des journaux), sélectionnez le groupe de journaux pour lequel vous voulez analyser et visualiser les données.

4.    Vous pouvez créer une requête, ou exécuter l'un des exemples de requêtes fournis pour les journaux de flux d'un VPC. Si vous créez une requête personnalisée, commencez par consulter les didacticiels fournis dans la documentation Amazon CloudWatch. Pour plus d'informations sur la syntaxe des requêtes, consultez Syntaxe des requêtes CloudWatch Logs Insights.

5.    Sélectionnez History (Historique) pour afficher les requêtes précédemment exécutées. Vous pouvez ré-exécuter les requêtes à partir de History (Historique).

6.    Pour exporter vos résultats, sélectionnez Export results (Exporter les résultats), puis choisissez un format.

Exemples de requêtes

Scénario 1

Vous avez un serveur Web, un serveur d'applications et un serveur de base de données. L'application ne fonctionne pas comme prévu. Par exemple, vous recevez un délai d'expiration ou une erreur HTTP 503 et vous essayez de déterminer la cause de l'erreur.

Variables d'exemple :

  • Action (Action) est définie sur "REJECT" (REJETER) afin que seules les connexions rejetées soient renvoyées.
  • La requête inclut uniquement les réseaux internes.
  • La liste des adresses IP du serveur affiche les connexions entrantes et sortantes (srcAddr et dstAddr).
  • Limit (Limite) est définie sur 5 afin que seules les cinq premières entrées soient affichées.
  • Adresse IP du serveur Web : 10.0.0.4
  • Adresse IP du serveur d'applications : 10.0.0.5
  • Adresse IP du serveur de base de données : 10.0.0.6
filter(
action="REJECT" and
dstAddr like   /^(10\.|192\.168\.)/and
srcAddrlike   /^(10\.|192\.168\.)/ and
(
srcAddr = "10.0.0.4" or
dstAddr = "10.0.0.4" or
srcAddr = "10.0.0.5" or
dstAddr = "10.0.0.5" or
srcAddr = "10.0.0.6" or
dstAddr = "10.0.0.6" or
)
)|
stats count(*) as records by srcAddr,dstAddr,dstPort,protocol |
sort records desc |
limit 5

Scénario 2

Vous rencontrez des délais d'attente intermittents sur une interface réseau Elastic donnée. La requête suivante vérifie les éventuels rejets sur l'interface réseau Elastic sur une période donnée.

fields @timestamp, interfaceId, srcAddr, dstAddr, action
| filter (interfaceId = 'eni-05012345abcd' and action = 'REJECT')
| sort @timestamp desc
| limit 5

Scénario 3

L'exemple de requête suivant analyse les journaux de flux d'un VPC pour produire un rapport sur une interface réseau Elastic spécifique. La requête vérifie la quantité de trafic envoyé vers les différents ports.

fields @timestamp, @message
 | stats count(*) as records by dstPort, srcAddr, dstAddr as Destination
 | filter interfaceId="eni-05012345abcd"
 | filter dstPort="80" or dstPort="443" or dstPort="22" or dstPort="25"
 | sort HitCount desc
 | limit 10

Scénario 4

La requête suivante filtre les journaux de flux d'un VPC pour répertorier les adresses IP qui tentent de se connecter avec une adresse IP ou un CIDR spécifique dans votre VPC.

Pour une adresse IP spécifique :

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter srcAddr like "172.31."

Pour un CIDR spécifique :

fields @timestamp, srcAddr, dstAddr
 | sort @timestamp desc
 | limit 5
 | filter isIpv4InSubnet(srcAddr,"172.31.0.0/16)

Remarque : Pour obtenir des exemples de requêtes supplémentaires, consultez Exemples de requêtes.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?