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 règles de Contributor Insights dans CloudWatch
Cette section explique la syntaxe des règles de Contributor Insights. Utilisez cette syntaxe uniquement lorsque vous créez une règle en entrant un bloc JSON. Si vous utilisez l'Assistant pour créer une règle, vous n'avez pas besoin de connaître la syntaxe. Pour de plus amples informations sur la création de règles à l'aide de l'Assistant, veuillez consulter Créez une règle Contributor Insights dans CloudWatch.
Toutes les correspondances entre les règles et les noms et valeurs des champs d'événements de journal sont sensibles à la casse.
L'exemple suivant illustre la syntaxe des journaux JSON.
{ "Schema": { "Name": "CloudWatchLogRule", "Version": 1 }, "LogGroupNames": [ "API-Gateway-Access-Logs*", "Log-group-name2" ], "LogFormat": "JSON", "Contribution": { "Keys": [ "$.ip" ], "ValueOf": "$.requestBytes", "Filters": [ { "Match": "$.httpMethod", "In": [ "PUT" ] } ] }, "AggregateOn": "Sum" }
Champs dans les règles de Contributor Insights
- Schema
-
La valeur de
Schema
pour une règle qui analyse les données des CloudWatch journaux doit toujours être{"Name": "CloudWatchLogRule", "Version": 1}
- LogGroupNames
-
Tableau de chaînes. Pour chaque élément du tableau, vous pouvez éventuellement utiliser
*
à la fin d'une chaîne pour inclure tous les groupes de journaux dont les noms commencent par ce préfixe.Veillez à utiliser des caractères génériques avec des noms de groupes de journaux. Vous encourez des frais pour chaque événement de journal correspondant à une règle. Si vous recherchez accidentellement plus de groupes de journaux que vous ne le souhaitez, des frais inattendus peuvent vous être facturés. Pour plus d'informations, consultez Amazon CloudWatch Pricing
. - LogGroupARNs
-
Si vous créez cette règle dans un CloudWatch compte de surveillance d'observabilité entre comptes, vous pouvez l'utiliser
LogGroupARNs
pour spécifier des groupes de journaux dans les comptes sources liés au compte de surveillance, et pour spécifier des groupes de journaux dans le compte de surveillance lui-même. Vous devez spécifierLogGroupNames
ouLogGroupARNs
dans votre règle, mais pas les deux.LogGroupARNs
est un tableau de chaînes de caractères. Pour chaque élément du tableau, vous pouvez utiliser*
comme caractère générique dans certaines situations. Par exemple, vous pouvez spécifierarn:aws:logs:us-west-1:*:log-group/MyLogGroupName2
pour spécifier les groupes de journaux nommésMyLogGroupName2
dans tous les comptes sources et dans le compte de surveillance, dans la région USA Ouest (Californie du Nord). Vous pouvez également spécifierarn:aws:logs:us-west-1:111122223333:log-group/GroupNamePrefix*
pour spécifier tous les groupes de journaux dans la région USA Ouest (Californie du Nord) en 111122223333 dont le nom commence parGroupNamePrefix
.Vous ne pouvez pas spécifier un identifiant de AWS compte partiel comme préfixe avec un joker.
Faites attention lorsque vous utilisez des caractères génériques avec un groupe ARNs de journaux. Vous encourez des frais pour chaque événement de journal correspondant à une règle. Si vous recherchez accidentellement plus de groupes de journaux que vous ne le souhaitez, des frais inattendus peuvent vous être facturés. Pour plus d'informations, consultez Amazon CloudWatch Pricing
. - LogFormat
-
Les valeurs valides sont
JSON
etCLF
. - Contribution
-
Cet objet comprend un tableau
Keys
avec jusqu'à quatre membres, éventuellement un seulValueOf
, et éventuellement un tableau comportant jusqu'à quatreFilters
. - Clés
-
Tableau comportant jusqu'à quatre champs de journal utilisés comme dimensions pour classer les contributeurs. Si vous entrez plusieurs clés, chaque combinaison unique de valeurs pour les clés est comptabilisée comme un contributeur unique. Les champs doivent être spécifiés à l'aide de la notation de format de propriété JSON.
- ValueOf
-
(Facultatif) Spécifiez cette valeur uniquement lorsque vous spécifiez
Sum
comme valeur deAggregateOn
.ValueOf
spécifie un champ de journal avec des valeurs numériques. Dans ce type de règle, les contributeurs sont classés en fonction de leur somme de la valeur de ce champ, au lieu de leur nombre d'occurrences dans les entrées du journal. Par exemple, si vous souhaitez trier les contributeurs en fonction de leurBytesSent
total sur une période, vous devez définirValueOf
surBytesSent
et spécifierSum
pourAggregateOn
. - Filtres
-
Spécifie un tableau comprenant jusqu'à quatre filtres pour limiter les événements du journal inclus dans le rapport. Si vous spécifiez plusieurs filtres, Contributor Insights les évalue avec un opérateur AND logique. Vous pouvez utiliser cela pour filtrer les événements de journal non pertinents dans votre recherche ou vous pouvez l'utiliser pour sélectionner un seul contributeur afin d'analyser son comportement.
Chaque membre du tableau doit inclure un champ
Match
et un champ indiquant le type d'opérateur correspondant à utiliser.Le champ
Match
spécifie un champ journal à évaluer dans le filtre. Le champ journal est spécifié à l'aide de la notation de format de propriété JSON.Le champ opérateur correspondant doit être l'un des éléments suivants :
In
,NotIn
,StartsWith
,GreaterThan
,LessThan
,EqualTo
,NotEqualTo
ouIsPresent
. Si le champ opérateur estIn
,NotIn
, ouStartsWith
, il est suivi d'un tableau de valeurs de chaîne à vérifier. Contributor Insights évalue le tableau de valeurs de chaîne avec un opérateur OR. Le tableau peut inclure jusqu'à 10 valeurs de chaîne.Si le champ opérateur est
GreaterThan
,LessThan
,EqualTo
ouNotEqualTo
, il est suivi d'une seule valeur numérique à comparer.Si le champ opérateur est
IsPresent
, il est suivi detrue
ou defalse
. Cet opérateur met en correspondance les événements de journal selon que le champ de journal spécifié est présent ou non dans l'événement de journal. LeisPresent
fonctionne uniquement avec des valeurs dans le nœud feuille des propriétés JSON. Par exemple, un filtre qui recherche des correspondances dec-count
n'évalue pas un événement de journal avec une valeur dedetails.c-count.c1
.Consultez les quatre exemples de filtres suivants :
{"Match": "$.httpMethod", "In": [ "PUT", ] } {"Match": "$.StatusCode", "EqualTo": 200 } {"Match": "$.BytesReceived", "GreaterThan": 10000} {"Match": "$.eventSource", "StartsWith": [ "ec2", "ecs" ] }
- AggregateOn
-
Les valeurs valides sont
Count
etSum
. Spécifie si le rapport doit être agrégé en fonction d'un nombre d'occurrences ou d'une somme des valeurs du champ spécifié dans le champValueOf
.
Notation de format de propriété JSON
Les champs Keys
, ValueOf
et Match
suivent le format de propriété JSON avec notation point, où $
représente la racine de l'objet JSON. Ceci est suivi d'un point, puis d'une chaîne alphanumérique avec le nom de la sous-propriété. Plusieurs niveaux de propriétés sont pris en charge.
Le premier caractère de la chaîne doit être une lettre majuscule ou minuscule. Les caractères suivants de la chaîne peuvent être des lettres majuscules, minuscules ou des chiffres de 0 à 9.
La liste suivante illustre des exemples valides de format de propriété JSON :
$.userAgent $.endpoints[0] $.users[1].name $.requestParameters.instanceId
Champ supplémentaire dans les règles des journaux CLF
Les événements du journal Common Log Format (CLF) n'ont pas de noms pour les champs comme le fait JSON. Pour fournir les champs à utiliser pour les règles Contributor Insights, un événement de journal CLF peut être traité comme un tableau avec un index commençant à partir de 1
. Vous pouvez spécifier le premier champ comme "1"
, le second champ comme "2"
, etc.
Pour faciliter la lecture d'une règle pour un journal CLF, vous pouvez utiliser Fields
. Cela vous permet de fournir un alias de dénomination pour les emplacements de champ CLF. Par exemple, vous pouvez spécifier que l'emplacement « 4 » est une adresse IP. Une fois spécifié, IpAddress
peut être utilisé comme propriété dans Keys
, ValueOf
et Filters
dans la règle.
Voici un exemple de règle pour un journal CLF qui utilise le champ Fields
.
{ "Schema": { "Name": "CloudWatchLogRule", "Version": 1 }, "LogGroupNames": [ "API-Gateway-Access-Logs*" ], "LogFormat": "CLF", "Fields": { "4": "IpAddress", "7": "StatusCode" }, "Contribution": { "Keys": [ "IpAddress" ], "Filters": [ { "Match": "StatusCode", "EqualTo": 200 } ] }, "AggregateOn": "Count" }