Syntaxe des modèles de filtres pour les filtres de métriques, les filtres d'abonnements, les filtres d'événements du journal et Live Tail - Amazon CloudWatch Logs

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.

Syntaxe des modèles de filtres pour les filtres de métriques, les filtres d'abonnements, les filtres d'événements du journal et Live Tail

Note

Pour plus d'informations sur la façon d'interroger vos groupes de journaux avec le langage de requête Amazon CloudWatch Logs Insights, consultez CloudWatch Syntaxe de requête Logs Insights.

Avec CloudWatch Logs, vous pouvez utiliser des filtres de métriques pour transformer les données des journaux en métriques exploitables, des filtres d'abonnements pour acheminer les événements des journaux vers d'autres services AWS, des filtres d'événements du journal pour rechercher des événements du journal et Live Tail pour visualiser de manière interactive vos journaux en temps réel au fur et à mesure qu'ils sont ingérés.

Les modèles de filtres constituent la syntaxe utilisée par les filtres de métriques, les filtres d'abonnements, les filtres d'événements du journal et Live Tail pour faire correspondre les termes dans les événements du journal. Les termes peuvent être des mots, des phrases exactes ou des valeurs numériques. Les expressions régulières (regex) peuvent être utilisées pour créer des modèles de filtres autonomes ou peuvent être intégrées aux modèles de filtres JSON et aux modèles de filtres délimités par des espaces.

Créez des modèles de filtre à partir des termes que vous souhaitez faire correspondre. Les modèles de filtre renvoient uniquement les événements du journal contenant les termes que vous définissez. Vous pouvez tester les modèles de filtre dans la console CloudWatch.

Syntaxe des expressions régulières (regex) prise en charge

Lorsque vous utilisez des expressions régulières pour rechercher et filtrer les données de journaux, vous devez entourer vos expressions de %.

Les modèles de filtres contenant des expressions régulières ne peuvent inclure que les éléments suivants :

  • Des caractères alphanumériques : un caractère alphanumérique est un caractère qui est soit une lettre (de A à Z ou de a à z) soit un chiffre (de 0 à 9).

  • Des caractères de symbole pris en charge : « _ », « # », « = », « @ », « / », « ; », « , » et « - ». Par exemple, %something!% serait rejeté, car « ! » n'est pas pris en charge.

  • Des opérateurs pris en charge : « ^ », « $ », « ? », « [ », « ] », « { », « } », « | », « \ », « * », « + » et « . ».

Les opérateurs ( et ) ne sont pas pris en charge. Vous ne pouvez pas utiliser de parenthèses pour définir un sous-modèle.

Les caractères multi-octets ne sont pas pris en charge.

Note

Quotas

Il existe un maximum de 5 modèles de filtres contenant des expressions régulières pour chaque groupe de journaux lors de la création de filtres de métriques ou de filtres d'abonnements.

Il existe une limite de 2 expressions régulières pour chaque modèle de filtres lors de la création d'un modèle de filtres délimités ou JSON pour les filtres de métriques et les filtres d'abonnements ou lors du filtrage des événements des journaux ou Live Tail.

Utilisation des opérateurs pris en charge

  • ^ : ancre la correspondance au début d'une chaîne. Par exemple, %^[hc]at% correspond à « hat » et « cat », mais uniquement au début d'une chaîne.

  • $ : ancre la correspondance à la fin d'une chaîne. Par exemple, %[hc]at$% correspond à « hat » et « cat », mais uniquement à la fin d'une chaîne.

  • ? : correspond à zéro ou plusieurs instances du terme qui suit. Par exemple, %colou?r% peut correspondre à la fois « color » et « colour ».

  • [] : définit une classe de caractères. Correspond à la liste de caractères ou à la plage de caractères figurant entre crochets. Par exemple, %[abc]% correspond à « a », « b » ou « c » ; %[a-z]% correspond à n'importe quelle lettre minuscule comprise entre « a » et « z » ; et %[abcx-z]% correspond à « a », « b », « c », « x », « y » ou « z ».

  • {m, n} : correspond au terme précédent au moins m fois et pas plus de n fois. Par exemple, %a{3,5}% correspond uniquement à « aaa », « aaaa » et « aaaaa ».

    Note

    m ou n peuvent être omis si vous choisissez de ne pas définir de minimum ou de maximum.

  • | : valeur booléenne « Or », qui correspond au terme situé de part et d'autre de la barre verticale. Par exemple, %gra|ey% peut correspondre à « gray » ou « grey ».

    Note

    Un terme est un caractère unique ou une classe de caractères répétitifs qui utilise l'un des opérateurs suivants : ?, *,+ ou {n,m}.

  • \ : caractère d'échappement, qui vous permet d'utiliser la signification littérale d'un opérateur au lieu de sa signification particulière. Par exemple, %\[.\]% correspond à n'importe quel caractère entouré de « [ » et « ] » puisque les crochets ne sont pas inclus, tels que « [a] », « [b] », « [7] », « [@] », « []] » et « [ ] ».

    Note

    %10\.10\.0\.1% est la bonne façon de créer une expression régulière correspondant à l'adresse IP 10.10.0.1.

  • * : correspond à zéro ou plusieurs instances du terme qui suit. Par exemple, %ab*c% peut correspondre à « ac », « abc » et « abbbc » ; %ab[0-9]*% peut correspondre à « ab », « ab0 » et « ab129 ».

  • + : correspond à une ou plusieurs instances du terme qui suit. Par exemple, %ab+c% peut correspondre à « abc », « abbc » et « abbbc », mais pas à « ac ».

  • . : correspond à un seul caractère. Par exemple, %.at% correspond à une chaîne de trois caractères se terminant par « at », y compris « hat », « cat », « bat », « 4at », « #at » et «  at » (en commençant par un espace).

    Note

    Lorsque vous créez une expression régulière pour faire correspondre les adresses IP, il est important d'échapper à l'opérateur .. Par exemple, %10.10.0.1% peut correspondre à « 10010,051 », ce qui n'est peut-être pas l'objectif réel de l'expression.

  • \d, \D : correspond à un caractère numérique ou non numérique. Par exemple, %\d% est équivalent à %[0-9]% et %\D% est équivalent à %[^0-9]%.

    Note

    L'opérateur majuscule indique l'inverse de son équivalent en minuscules.

  • \s, \S : correspond à un caractère d'espace ou à un caractère autre qu'un espace.

    Note

    L'opérateur majuscule indique l'inverse de son équivalent en minuscules. Les espaces incluent les caractères de tabulation (\t), d'espace ( ) et de nouvelle ligne (\n).

  • \w, \W : correspond à un caractère alphanumérique ou non alphanumérique. Par exemple, %\w% est équivalent à %[a-zA-Z_0-9]% et %\W% est équivalent à %[^a-zA-Z_0-9]%.

    Note

    L'opérateur majuscule indique l'inverse de son équivalent en minuscules.

  • \xhh : correspond à la mise en correspondance ASCII d'un caractère hexadécimal à deux chiffres. \x est la séquence d'échappement qui indique que les caractères suivants représentent la valeur hexadécimale ASCII. hh spécifie les deux chiffres hexadécimaux (0-9 et A-F) qui pointent vers un caractère de la table ASCII.

    Note

    Vous pouvez utiliser \xhh pour faire correspondre les caractères de symbole qui ne sont pas pris en charge par le modèle de filtres. Par exemple, %\x3A% correspond à : ; %\x28% correspond à (.

Utilisation de modèles de filtres pour faire correspondre les termes à une expression régulière (regex)

Vous pouvez faire correspondre les termes des événements de votre journal à l'aide d'un modèle regex entouré de % (signes de pourcentage avant et après le modèle regex). L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal contenant le mot-clé AUTHORIZED.

Pour obtenir la liste des expressions régulières prises en charge, consultez la section Expressions régulières prises en charge.

%AUTHORIZED%

Ce modèle de filtre renvoie les messages d'événements du journal, tels que les suivants :

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [SUCCESS 200] AUTHORIZED REQUEST

Utilisation de modèles de filtres pour faire correspondre les termes dans les événements du journal non structurés

Les exemples suivants contiennent des extraits de code qui montrent comment utiliser des modèles de filtres pour faire correspondre des termes dans les événements du journal non structurés.

Note

Les modèles de filtre sont sensibles à la casse. Placez les phrases et les termes exacts qui incluent des caractères non alphanumériques entre des guillemets doubles ("").

Example: Match a single term

L'extrait de code suivant montre un exemple de modèle de filtre à terme unique qui renvoie tous les événements du journal où les messages contiennent le mot ERROR.

ERROR

Ce modèle de filtre fait correspondre des messages d'événements du journal, tels que les suivants :

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Example: Match multiple terms

L'extrait de code suivant montre un exemple de modèle de filtre à termes multiples qui renvoie tous les événements du journal où les messages contiennent les mots ERROR et ARGUMENTS.

ERROR ARGUMENTS

Le filtre renvoie les messages d'événements du journal, comme l'exemple suivant :

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Ce modèle de filtre ne renvoie pas les messages d'événements du journal suivants, car ils ne contiennent pas les deux termes spécifiés dans le modèle de filtre.

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

Example: Match optional terms

Vous pouvez utiliser la correspondance de modèles pour créer des modèles de filtres qui renvoient des événements du journal contenant des termes facultatifs. Insérez un point d'interrogation (« ? ») avant les termes que vous souhaitez faire correspondre. L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal dont les messages contiennent le mot ERREUR ou le mot ARGUMENTS.

?ERROR ?ARGUMENTS

Ce modèle de filtre fait correspondre des messages d'événements du journal, tels que les suivants :

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Note

Vous ne pouvez pas combiner le point d'interrogation (« ? ») avec d'autres modèles de filtre, tels que les termes d'inclusion et d'exclusion. Si vous combinez « ? » avec d'autres modèles de filtre, le point d'interrogation (« ? ») sera ignoré.

Par exemple, le modèle de filtre suivant correspond à tous les événements contenant le mot REQUEST, mais le filtre de point d'interrogation (« ? ») est ignoré et n'a aucun effet.

?ERROR ?ARGUMENTS REQUEST

Correspondance des événements du journal

  • [INFO] REQUEST FAILED

  • [WARN] UNAUTHORIZED REQUEST

  • [ERROR] 400 BAD REQUEST

Example: Match exact phrases

L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal lorsque les messages contiennent la phrase exacte INTERNAL SERVER ERROR.

"INTERNAL SERVER ERROR"

Ce modèle de filtre renvoie le message d'événement du journal suivant :

  • [ERROR 500] INTERNAL SERVER ERROR

Example: Include and exclude terms

Vous pouvez créer des modèles de filtre qui renvoient des événements du journal lorsque les messages incluent certains termes et en excluent d'autres. Insérez un symbole moins (« - ») avant les termes que vous souhaitez exclure. L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal lorsque les messages incluent le terme ERROR et excluent le terme ARGUMENTS.

ERROR -ARGUMENTS

Ce modèle de filtre renvoie les messages d'événements du journal, tels que les suivants :

  • [ERROR 400] BAD REQUEST

  • [ERROR 401] UNAUTHORIZED REQUEST

Ce modèle de filtre ne renvoie pas les messages d'événements du journal suivants, car ils contiennent le mot ARGUMENTS.

  • [ERROR 419] MISSING ARGUMENTS

  • [ERROR 420] INVALID ARGUMENTS

Example: Match everything

Vous pouvez faire correspondre tout dans vos événements du journal à l'aide des guillemets doubles. L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie tous les événements du journal.

" "

Utilisation de modèles de filtres pour faire correspondre les termes dans les événements du journal JSON

La procédure suivante décrit comment écrire la syntaxe des modèles de filtres qui font correspondre les termes JSON contenant des chaînes et des valeurs numériques.

Writing filter patterns that match strings

Vous pouvez créer des modèles de filtres pour faire correspondre des chaînes dans les événements du journal JSON. L'extrait de code suivant montre un exemple de syntaxe pour les modèles de filtres basés sur des chaînes.

{ PropertySelector EqualityOperator String }

Placez les modèles de filtres entre accolades (« {} »). Les modèles de filtres basés sur des chaînes doivent contenir les parties suivantes :

  • Sélecteur de propriétés

    Définissez les sélecteurs de propriétés à l'aide d'un symbole dollar suivi d'un point (« $. »). Les sélecteurs de propriétés constituent des chaînes alphanumériques qui prennent en charge le trait d'union « - » et le caractère de soulignement « _ ». Les chaînes ne prennent pas en charge la notation scientifique. Les sélecteurs de propriétés pointent vers des nœuds de valeur dans les événements du journal JSON. Les nœuds de valeur peuvent être des chaînes ou des nombres. Insérez les matrices après les sélecteurs de propriétés. Les éléments des tableaux suivent un système de numérotation basé sur le zéro, ce qui signifie que le premier élément du tableau est l'élément 0, le deuxième élément est l'élément 1, et ainsi de suite. Placez les éléments entre crochets (« [] »). Si un sélecteur de propriétés pointe vers une matrice ou vers un objet, le modèle de filtre ne pourra pas correspondre au format du journal. Si la propriété JSON contient un point ("."), la notation entre crochets peut être utilisée pour sélectionner cette propriété.

    Note

    Sélecteur de caractères génériques

    Vous pouvez utiliser le caractère générique JSON pour sélectionner n'importe quel élément du tableau ou n'importe quel champ d'objet JSON.

    Quotas

    Vous ne pouvez utiliser qu'un seul sélecteur de caractères génériques dans un sélecteur de propriétés.

  • Opérateur d'égalité

    Définissez les opérateurs d'égalité à l'aide de l'un des symboles suivants : égal (« = ») ou inégal (« != »). Les opérateurs d'égalité renvoient une valeur booléenne (vrai ou faux).

  • Chaîne

    Vous pouvez placer des chaînes entre guillemets doubles (""). Les chaînes contenant des types différents des caractères alphanumériques et le symbole de soulignement doivent être placées entre guillemets doubles. Utilisez l'astérisque (« * ») comme joker pour faire correspondre du texte.

    Note

    Vous pouvez utiliser n'importe quelle expression régulière conditionnelle lors de la création des modèles de filtres pour faire correspondre les termes des événements du journal JSON. Pour obtenir la liste des expressions régulières prises en charge, consultez la section Expressions régulières prises en charge.

L'extrait de code suivant contient un exemple de modèle de filtre qui montre comment formater un modèle de filtre pour faire corresponde un terme JSON à une chaîne.

{ $.eventType = "UpdateTrail" }
Writing filter patterns that match numeric values

Vous pouvez créer des modèles de filtres pour faire correspondre des valeurs numériques dans les événements du journal JSON. L'extrait de code suivant montre un exemple de syntaxe pour les modèles de filtres qui font correspondre des valeurs numériques.

{ PropertySelector NumericOperator Number }

Placez les modèles de filtres entre accolades (« {} »). Les modèles de filtres qui font correspondre des valeurs numériques doivent comporter les parties suivantes :

  • Sélecteur de propriétés

    Définissez les sélecteurs de propriétés à l'aide d'un symbole dollar suivi d'un point (« $. »). Les sélecteurs de propriétés constituent des chaînes alphanumériques qui prennent en charge le trait d'union « - » et le caractère de soulignement « _ ». Les chaînes ne prennent pas en charge la notation scientifique. Les sélecteurs de propriétés pointent vers des nœuds de valeur dans les événements du journal JSON. Les nœuds de valeur peuvent être des chaînes ou des nombres. Insérez les matrices après les sélecteurs de propriétés. Les éléments des tableaux suivent un système de numérotation basé sur le zéro, ce qui signifie que le premier élément du tableau est l'élément 0, le deuxième élément est l'élément 1, et ainsi de suite. Placez les éléments entre crochets (« [] »). Si un sélecteur de propriétés pointe vers une matrice ou vers un objet, le modèle de filtre ne pourra pas correspondre au format du journal. Si la propriété JSON contient un point ("."), la notation entre crochets peut être utilisée pour sélectionner cette propriété.

    Note

    Sélecteur de caractères génériques

    Vous pouvez utiliser le caractère générique JSON pour sélectionner n'importe quel élément du tableau ou n'importe quel champ d'objet JSON.

    Quotas

    Vous ne pouvez utiliser qu'un seul sélecteur de caractères génériques dans un sélecteur de propriétés.

  • Opérateur numérique

    Définissez les opérateurs numériques à l'aide de l'un des symboles suivants : supérieur à (« > »), inférieur à (« < »), égal (« = »), inégal (« != »), supérieur ou égal à (« >= ») ou inférieur ou égal à (« <= »).

  • Nombre

    Vous pouvez utiliser des entiers contenant les symboles plus (« + ») ou moins (« - »), et suivre une notation scientifique. Utilisez l'astérisque (« * ») comme joker pour faire correspondre des nombres.

L'extrait de code suivant contient des exemples qui montrent comment formater des modèles de filtres pour faire correspondre des termes JSON à des valeurs numériques.

// Filter pattern with greater than symbol { $.bandwidth > 75 } // Filter pattern with less than symbol { $.latency < 50 } // Filter pattern with greater than or equal to symbol { $.refreshRate >= 60 } // Filter pattern with less than or equal to symbol { $.responseTime <= 5 } // Filter pattern with equal sign { $.errorCode = 400} // Filter pattern with not equal sign { $.errorCode != 500 } // Filter pattern with scientific notation and plus symbol { $.number[0] = 1e-3 } // Filter pattern with scientific notation and minus symbol { $.number[0] != 1e+3 }

Les exemples suivants contiennent des extraits de code qui montrent comment les modèles de filtres peuvent faire correspondre des termes dans un événement du journal JSON.

Note

Si vous testez un exemple de modèles de filtre avec l'exemple d'événement du journal JSON, vous devez saisir l'exemple de journal JSON sur une seule ligne.

Événement du journal JSON

{ "eventType": "UpdateTrail", "sourceIPAddress": "111.111.111.111", "arrayKey": [ "value", "another value" ], "objectList": [ { "name": "a", "id": 1 }, { "name": "b", "id": 2 } ], "SomeObject": null, "cluster.name": "c" }
Example: Filter pattern that matches string values

Ce modèle de filtre fait correspondre la chaîne "UpdateTrail" dans la propriété "eventType".

{ $.eventType = "UpdateTrail" }
Example: Filter pattern that matches string values (IP address)

Ce modèle de filtre contient un joker et fait correspondre la propriété "sourceIPAddress", car elle ne contient pas de numéro avec le préfixe "123.123.".

{ $.sourceIPAddress != 123.123.* }
Example: Filter pattern that matches a specific array element with a string value

Ce modèle de filtre fait correspondre l'élément "value" dans la matrice "arrayKey".

{ $.arrayKey[0] = "value" }
Example: Filter pattern that matches a string using regex

Ce modèle de filtre fait correspondre la chaîne "Trail" dans la propriété "eventType".

{ $.eventType = %Trail% }
Example: Filter pattern that uses a wildcard to match values of any element in the array using regex

Le modèle de filtre contient une expression régulière qui fait correspondre l'élément "value" dans la matrice "arrayKey".

{ $.arrayKey[*] = %val.{2}% }
Example: Filter pattern that uses a wildcard to match values of any element with a specific prefix and subnet using regex (IP address)

Ce modèle de filtre contient une expression régulière qui fait correspondre l'élément "111.111.111.111" dans la propriété "sourceIPAddress".

{ $.* = %111\.111\.111\.1[0-9]{1,2}% }
Note

Quotas

Vous ne pouvez utiliser qu'un seul sélecteur de caractères génériques dans un sélecteur de propriétés.

Example: Filter pattern that matches a JSON property with a period (.) in the key
{ $.['cluster.name'] = "c" }
Example: Filter pattern that matches JSON logs using IS

Vous pouvez créer des modèles de filtres qui font correspondre des champs dans les journaux JSON avec la variable IS. La variable IS peut faire correspondre des champs contenant les valeurs NULL, TRUE ou FALSE. Le modèle de filtre suivant renvoie les journaux JSON où la valeur de SomeObject est NULL.

{ $.SomeObject IS NULL }
Example: Filter pattern that matches JSON logs using NOT EXISTS

Vous pouvez créer des modèles de filtres avec la variable NOT EXISTS pour renvoyer des journaux JSON qui ne contiennent pas de champs spécifiques dans les données du journal. Le modèle de filtre suivant utilise NOT EXISTS pour renvoyer des journaux JSON qui ne contiennent pas le champ SomeOtherObject.

{ $.SomeOtherObject NOT EXISTS }
Note

Les variables IS NOT et EXISTS ne sont actuellement pas prises en charge.

Vous pouvez utiliser les opérateurs logiques AND (« && ») et OR (« || ») dans les modèles de filtres pour créer des expressions composées faisant correspondre des événements du journal où deux ou plusieurs conditions sont vraies. Les expressions composées prennent en charge l'utilisation de parenthèses (« () ») et l'ordre d'opérations standard suivant : () > && > ||. Les exemples suivants contiennent des extraits de code qui montrent comment utiliser des modèles de filtres avec des expressions composées pour faire correspondre des termes dans un objet JSON.

Objet JSON

{ "user": { "id": 1, "email": "John.Stiles@example.com" }, "users": [ { "id": 2, "email": "John.Doe@example.com" }, { "id": 3, "email": "Jane.Doe@example.com" } ], "actions": [ "GET", "PUT", "DELETE" ], "coordinates": [ [0, 1, 2], [4, 5, 6], [7, 8, 9] ] }
Example: Expression that matches using AND (&&)

Ce modèles de filtre contient une expression composée qui fait correspondre "id" dans "user" avec une valeur numérique de 1 et "email" dans le premier élément de la matrice "users" avec la chaîne "John.Doe@example.com".

{ ($.user.id = 1) && ($.users[0].email = "John.Doe@example.com") }
Example: Expression that matches using OR (||)

Ce modèle de filtre contient une expression composée qui fait correspondre "email" dans "user" avec la chaîne "John.Stiles@example.com".

{ $.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch" && $.actions[2] = "nonmatch" }
Example: Expression that doesn't match using AND (&&)

Ce modèle de filtre contient une expression composée qui ne trouve pas de correspondance, car l'expression ne correspond pas à la troisième action de "actions".

{ ($.user.email = "John.Stiles@example.com" || $.coordinates[0][1] = "nonmatch") && $.actions[2] = "nonmatch" }
Note

Quotas

Vous ne pouvez utiliser qu'un seul sélecteur de caractères génériques dans un sélecteur de propriétés, et jusqu'à trois sélecteurs de caractères génériques dans un modèle de filtre avec des expressions composées.

Example: Expression that doesn't match using OR (||)

Ce modèle de filtre contient une expression composée qui ne trouve pas de correspondance, car l'expression ne correspond pas à la première propriété de "users" ou à la troisième action de "actions".

{ ($.user.id = 2 && $.users[0].email = "nonmatch") || $.actions[2] = "GET" }

Utilisation des modèles de filtres pour faire correspondre des termes dans des événements du journal délimités par des espaces

Vous pouvez créer des modèles de filtres pour faire correspondre les termes des événements du journal délimités par des espaces. La procédure suivante fournit un exemple d'événement du journal délimité par des espaces et décrit comment écrire la syntaxe des modèles de filtres qui font correspondre les termes dans l'événement du journal délimité par des espaces.

Note

Vous pouvez utiliser n'importe quelle expression régulière conditionnelle lorsque vous créez des modèles de filtre pour faire correspondre les termes des événements du journal délimités par des espaces. Pour obtenir la liste des expressions régulières prises en charge, consultez la section Expressions régulières prises en charge.

Example: Space-delimited log event

L'extrait de code suivant montre un événement du journal délimité par des espaces contenant sept champs : ip, user, username, timestamp, request, status_code et bytes.

127.0.0.1 Prod frank [10/Oct/2000:13:25:15 -0700] "GET /index.html HTTP/1.0" 404 1534
Note

Les caractères entre crochets (« [] ») et les guillemets doubles (« ») sont considérés comme des champs uniques.

Writing filter patterns that match terms in a space-delimited log event

Pour créer un modèle de filtre qui fait correspondre les termes dans un événement du journal délimité par des espaces, placez le modèle de filtre entre crochets (« [] ») et spécifiez des champs dont les noms sont séparés par des virgules (« , »). Le modèle de filtre suivant analyse sept champs.

[ip=%127\.0\.0\.[1-9]%, user, username, timestamp, request =*.html*, status_code = 4*, bytes]

Vous pouvez utiliser des opérateurs numériques ( >, <, =, !=, >= ou <=) et l'astérisque (*) comme caractère générique ou expression régulière pour définir les conditions de votre modèle de filtre. Dans l'exemple de modèle de filtre, ip utilise une expression régulière qui correspond à la plage d'adresses IP 127.0.0.1 à 127.0.0.9, request contient un caractère générique qui indique qu'elle doit extraire une valeur avec .html et status_code contient un caractère générique qui indique qu'elle doit extraire une valeur commençant par 4.

Si vous ne connaissez pas le nombre de champs que vous analysez dans un événement du journal délimité par des espaces, vous pouvez utiliser des points de suspension (...) pour référencer n'importe quel champ non nommé. Les points de suspension peuvent référencer autant de champs que nécessaire. L'exemple suivant montre un modèle de filtre avec des points de suspension représentant les quatre premiers champs non nommés montrés dans l'exemple de modèle de filtre précédent.

[..., request =*.html*, status_code = 4*, bytes]

Vous pouvez également utiliser les opérateurs logiques AND (&&) et OR (||) pour créer des expressions composées. Le modèle de filtre suivant contient une expression composée qui indique que la valeur de status_code doit être 404 ou 410.

[ip, user, username, timestamp, request =*.html*, status_code = 404 || status_code = 410, bytes]

Vous pouvez utiliser la correspondance de modèles pour créer des modèles de filtres délimités par des espaces qui font correspondre des termes dans un ordre spécifique. Spécifiez l'ordre de vos termes à l'aide d'indicateurs. Utilisez w1 pour représenter votre premier terme, puis w2, et ainsi de suite, pour représenter l'ordre de vos termes ultérieurs. Insérez des virgules (« , ») entre vos termes. Les exemples suivants contiennent des extraits de code qui montrent comment utiliser la correspondance de modèles avec des modèles de filtres délimités par des espaces.

Note

Vous pouvez utiliser n'importe quelle expression régulière conditionnelle lorsque vous créez des modèles de filtre pour faire correspondre les termes des événements du journal délimités par des espaces. Pour obtenir la liste des expressions régulières prises en charge, consultez la section Expressions régulières prises en charge.

Événement du journal délimité par des espaces

INFO 09/25/2014 12:00:00 GET /service/resource/67 1200 INFO 09/25/2014 12:00:01 POST /service/resource/67/part/111 1310 WARNING 09/25/2014 12:00:02 Invalid user request ERROR 09/25/2014 12:00:02 Failed to process request
Example: Match terms in order

Le modèle de filtre délimité par des espaces suivant renvoie les événements du journal où le premier mot des événements du journal est ERROR.

[w1=ERROR, w2]
Note

Lorsque vous créez des modèles de filtres délimités par des espaces qui utilisent la correspondance de modèles, vous devez inclure un indicateur vide après avoir spécifié l'ordre de vos termes. Par exemple, si vous créez un modèle de filtre qui renvoie les événements du journal où le premier mot est ERROR, incluez un indicateur vide w2 après le terme w1.

Example: Match terms with AND (&&) and OR (||)

Vous pouvez utiliser les opérateurs logiques AND (« && ») et OR (« || ») pour créer des modèles de filtres délimités par des espaces contenant des conditions. Le modèle de filtre suivant renvoie les événements du journal lorsque le premier mot des événements est ERROR ou WARNING.

[w1=ERROR || w1=WARNING, w2]
Example: Exclude terms from matches

Vous pouvez créer des modèles de filtres délimités par des espaces qui renvoient des événements du journal qui excluent un ou plusieurs termes. Placez un symbole moins (« - ») avant les termes que vous souhaitez exclure. L'extrait de code suivant montre un exemple de modèle de filtre qui renvoie les événements du journal lorsque les premiers mots ne sont pas ERROR et WARNING.

[w1!=ERROR && w1!=WARNING, w2]
Example: Match the top level item in a resource URI

L'extrait de code suivant montre un exemple de modèle de filtre qui correspond à l'élément de premier niveau d'un URI de ressource à l'aide d'une expression régulière.

[logLevel, date, time, method, url=%/service/resource/[0-9]+$%, response_time]
Example: Match the child level item in a resource URI

L'extrait de code suivant montre un exemple de modèle de filtre qui correspond à l'élément de niveau enfant d'un URI de ressource à l'aide d'une expression régulière.

[logLevel, date, time, method, url=%/service/resource/[0-9]+/part/[0-9]+$%, response_time]