Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Contributor Insights-Regelsyntax in CloudWatch
In diesem Abschnitt wird die Syntax für Contributor Insights-Regeln erläutert. Verwenden Sie diese Syntax nur, wenn Sie eine Regel durch Eingabe eines JSON Blocks erstellen. Wenn Sie den Assistenten zum Erstellen einer Regel verwenden, müssen Sie die Syntax nicht kennen. Weitere Hinweise zum Erstellen von Regeln mit dem Assistenten finden Sie unter Erstellen Sie eine Contributor Insights-Regel in CloudWatch.
Bei der Übereinstimmung von Regeln zum Protokollieren von Ereignisfeldnamen und -werten wird zwischen Groß- und Kleinschreibung unterschieden.
Das folgende Beispiel veranschaulicht die Syntax für JSON Protokolle.
{ "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" }
Felder in Contributor Insights-Regeln
- Schema
-
Der Wert von
Schema
für eine Regel, die CloudWatch Logdaten analysiert, muss immer{"Name": "CloudWatchLogRule", "Version": 1}
- LogGroupNames
-
Ein Array von Zeichenfolgen. Für jedes Element im Array können Sie optional
*
am Ende einer Zeichenfolge verwenden, um alle Protokollgruppen mit Namen einzuschließen, die mit diesem Präfix beginnen.Seien Sie vorsichtig bei der Verwendung von Platzhaltern mit Protokollgruppennamen. Für jedes Protokollereignis, das einer Regel entspricht, fallen Gebühren an. Wenn Sie versehentlich mehr Protokollgruppen suchen, als Sie beabsichtigten, können unerwartete Gebühren anfallen. Weitere Informationen finden Sie unter CloudWatch Amazon-Preise
. - LogGroupARNs
-
Wenn Sie diese Regel in einem CloudWatch kontoübergreifenden Observability-Monitoring-Konto erstellen, können Sie
LogGroupARNs
damit Log-Gruppen in Quellkonten angeben, die mit dem Monitoring-Konto verknüpft sind, und Log-Gruppen im Monitoring-Konto selbst angeben. Sie müssen entwederLogGroupNames
oderLogGroupARNs
in Ihrer Regel angeben, aber nicht beides.LogGroupARNs
ist ein Array von Zeichenfolgen. Für jedes Element im Array können Sie es in bestimmten Situationen optional*
als Platzhalter verwenden. Sie können zum Beispielarn:aws:logs:us-west-1:*:log-group/MyLogGroupName2
angeben, um Protokollgruppen mit dem NamenMyLogGroupName2
in allen Quellkonten und im Überwachungskonto in der Region USA West (Nordkalifornien) festzulegen. Sie können aucharn:aws:logs:us-west-1:111122223333:log-group/GroupNamePrefix*
angeben, um alle Protokollgruppen in USA-West (Nordkalifornien) in 111122223333 anzugeben, deren Namen mitGroupNamePrefix
beginnen.Sie können keine unvollständige AWS Konto-ID als Präfix mit einem Platzhalter angeben.
Seien Sie vorsichtig bei der Verwendung von Platzhaltern für ProtokollgruppenARNs. Für jedes Protokollereignis, das einer Regel entspricht, fallen Gebühren an. Wenn Sie versehentlich mehr Protokollgruppen suchen, als Sie beabsichtigten, können unerwartete Gebühren anfallen. Weitere Informationen finden Sie unter CloudWatch Amazon-Preise
. - LogFormat
-
Gültige Werte sind
JSON
undCLF
. - Contribution (Beitrag)
-
Dieses Objekt enthält ein
Keys
-Array mit bis zu vier Elementen, optional ein einzelnesValueOf
und optional ein Array von bis zu vierFilters
. - Schlüssel
-
Ein Array mit bis zu vier Protokollfeldern, die als Dimensionen zum Klassifizieren von Contributors verwendet werden. Wenn Sie mehrere Schlüssel eingeben, wird jede eindeutige Kombination von Werten für die Schlüssel als eindeutiger Contributor gezählt. Die Felder müssen in der Notation des JSON Eigenschaftsformats angegeben werden.
- ValueOf
-
(Optional) Geben Sie dies nur an, wenn Sie
Sum
als Wert vonAggregateOn
angeben.ValueOf
gibt ein Protokollfeld mit numerischen Werten an. Bei diesem Regeltyp werden die Contributors nach ihrer Summe des Wertes dieses Feldes und nicht nach ihrer Anzahl von Vorkommen in den Protokolleinträgen geordnet. Wenn Sie beispielsweise Contributors nach ihremBytesSent
-Gesamtwert über einen Zeitraum hinweg sortieren möchten, würden SieValueOf
aufBytesSent
setzen undSum
fürAggregateOn
angeben. - Filter
-
(Optional) Gibt ein Array von bis zu vier Filtern an, um die Protokollereignisse einzuschränken, die im Bericht enthalten sind. Wenn Sie mehrere Filter angeben, wertet Contributor Insights sie mit einem logischen AND Operator aus. Sie können hiermit irrelevante Protokollereignisse aus Ihrer Suche herausfiltern. Alternativ können Sie einen einzelnen Contributor auswählen, um dessen Verhalten zu analysieren.
Jedes Element im Array muss ein
Match
-Feld und ein Feld enthalten, das den Typ des zu verwendenden übereinstimmenden Operators angibt.Das
Match
-Feld gibt ein Protokollfeld an, das im Filter ausgewertet werden soll. Das Protokollfeld wird in der Notation des JSON Eigenschaftsformats angegeben.Das übereinstimmende Operatorfeld muss eines der folgenden sein:
In
,NotIn
,StartsWith
,GreaterThan
,LessThan
,EqualTo
,NotEqualTo
oderIsPresent
. Wenn das OperatorfeldIn
,NotIn
oderStartsWith
ist, folgt ein Array von Zeichenfolgenwerten, auf die überprüft werden soll. Contributor Insights wertet das Array von Zeichenfolgenwerten mit einem OR-Operator aus. Das Array kann bis zu 10 Zeichenfolgenwerte enthalten.Wenn das Operatorfeld
GreaterThan
,LessThan
,EqualTo
oderNotEqualTo
ist, folgt ein einzelner numerischer Wert, mit dem verglichen werden soll.Wenn das Operatorfeld
IsPresent
ist, folgt entwedertrue
oderfalse
. Dieser Operator gleicht Protokollereignisse basierend daraufhin ab, ob das angegebene Protokollfeld in dem Protokollereignis vorhanden ist. DasisPresent
funktioniert nur mit Werten im Blattknoten der JSON Eigenschaften. Beispielsweise wertet ein Filter, der nach Übereinstimmungen mitc-count
sucht, kein Protokollereignis mit einem Wert vondetails.c-count.c1
aus.Im Folgenden finden Sie vier Filterbeispiele:
{"Match": "$.httpMethod", "In": [ "PUT", ] } {"Match": "$.StatusCode", "EqualTo": 200 } {"Match": "$.BytesReceived", "GreaterThan": 10000} {"Match": "$.eventSource", "StartsWith": [ "ec2", "ecs" ] }
- AggregateOn
-
Gültige Werte sind
Count
undSum
. Gibt an, ob der Bericht basierend auf der Häufigkeit des Auftretens oder einer Summe der Werte des Feldes aggregiert werden soll, das imValueOf
-Feld angegeben ist.
JSONNotation des Eigenschaftsformats
Die Match
Felder Keys
ValueOf
, und folgen dem JSON Eigenschaftsformat mit Punktnotation, wobei $
es sich um die Wurzel des JSON Objekts handelt. Danach folgt ein Punkt und dann eine alphanumerische Zeichenfolge mit dem Namen der Untereigenschaft. Mehrere Eigenschaftenebenen werden unterstützt.
Das erste Zeichen der Zeichenfolge kann nur A-Z oder a-z sein. Die folgenden Zeichen der Zeichenfolge können A-Z, a-z oder 0-9 sein.
Die folgende Liste zeigt gültige Beispiele für das JSON Eigenschaftsformat:
$.userAgent $.endpoints[0] $.users[1].name $.requestParameters.instanceId
Zusätzliches Feld in Regeln für CLF Protokolle
Protokollereignisse im Common Log Format (CLF) haben keine Namen für die Felder wie bei JSON anderen. Um die Felder bereitzustellen, die für Contributor Insights-Regeln verwendet werden sollen, kann ein CLF Protokollereignis als Array behandelt werden, dessen Index bei beginnt1
. Sie können das erste Feld als "1"
, das zweite Feld als "2"
usw. angeben.
Um eine Regel für ein CLF Protokoll leichter lesbar zu machen, können Sie verwendenFields
. Auf diese Weise können Sie einen Benennungsalias für CLF Feldpositionen angeben. Sie können beispielsweise angeben, dass der Speicherort „4" eine IP-Adresse ist. Einmal angegeben, kann IpAddress
als Eigenschaft in Keys
, ValueOf
und Filters
in der Regel verwendet werden.
Im Folgenden finden Sie ein Beispiel für eine Regel für ein CLF Protokoll, das das Fields
Feld verwendet.
{ "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" }