Exemple : Extraction des champs d'un journal Apache et attribution de dimensions - Amazon CloudWatch Logs

Exemple : Extraction des champs d'un journal Apache et attribution de dimensions

Parfois, au lieu de compter, il peut s'avérer utile d'utiliser des valeurs d'événements du journal individuels pour les valeurs de métriques. Cet exemple montre comment vous pouvez créer une règle d'extraction afin de créer une métrique qui mesure le nombre d'octets transférés par un serveur Apache.

Cette règle d'extraction correspond aux sept champs de l'événement de journal. La valeur de la métrique correspond à la valeur du septième jeton correspondant. Vous pouvez voir la référence au jeton sous la forme « $7 » dans le champ metricValue de la règle d'extraction.

Cet exemple montre également comment affecter des dimensions à la métrique que vous créez.

Pour créer un filtre de métrique à l'aide de la console CloudWatch

  1. Ouvrez la console CloudWatch à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le panneau de navigation, choisissez Groupes de journaux.

  3. Choisissez le nom du groupe de journaux du serveur Apache.

  4. Choisissez Actions, Créer un filtre de métriques.

  5. Pour Modèle de filtre, saisissez [ip, id, user, timestamp, request, status_code, size].

  6. (Facultatif) Pour tester votre modèle de filtre, sous Test Pattern (Modèle de test), saisissez un ou plusieurs événements du journal à utiliser pour tester le modèle. Chaque événement de journal doit se trouver sur une seule ligne, car des sauts de ligne sont utilisés pour séparer les événements du journal dans la boîte Messages d'événements du journal.

  7. Choisissez Next (Suivant), puis, pour Filter name (Nom du filtre), tapez size.

  8. Sous Metric details (Détails de la métrique), pour Metric namespace (Espace de nom de la métrique), saisissez MyNameSpace. Comme il s'agit d'un nouvel espace de nom, assurez-vous que l'option Create new (Créer un nouveau) est sélectionnée.

  9. Pour Nom de la métrique, saisissez BytesTransferred

  10. Pour Valeur de la métrique, saisissez $size.

  11. Pour Unit (Unité), sélectionnez Bytes (Octets).

  12. Pour Dimension Name, tapez IP.

  13. Pour Dimension Value (Valeur de la dimension), tapez $.ip et ensuite choisissez Next (Suivant).

  14. Choisissez Créer un filtre de métriques.

Pour créer ce filtre de métrique à l'aide de AWS CLI

A partir d'une invite de commande, exécutez la commande suivante :

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name BytesTransferred \ --filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \ --metric-transformation \ metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue=$size
aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name BytesTransferred \ --filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \ --metric-transformation \ metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue=$size,unit=Bytes,dimensions='{EventType=$eventtype}'
Note

Dans cette commande, utilisez ce format pour spécifier plusieurs dimensions.

aws logs put-metric-filter \ --log-group-name my-log-group-name \ --filter-name my-filter-name \ --filter-pattern 'my-filter-pattern' \ --metric-transformation \ metricName=my-metric-name,metricNamespace=my-metric-namespace,metricValue=my-token,unit=unit,dimensions='{dimension1=$dim,dimension2=$dim2,dim3=$dim3}''

Vous pouvez utiliser les données suivantes dans les appels PutLogEvents pour tester cette règle. Si vous n'avez pas supprimé la règle de surveillance de l'exemple précédent, vous allez générer deux métriques différentes.

127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287 127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308 127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3