ActionTrail conserve les événements pendant 90 jours. Pour interroger et analyser des événements plus anciens, créez une piste pour acheminer les événements vers Simple Log Service (SLS), puis utilisez des instructions SQL dans SLS.
Syntaxe des instructions SQL
Les instructions SQL respectent le format suivant : <Query statement> | <Analytic statement>.
Le tableau ci-dessous répertorie les instructions de requête et d'analyse pour chaque méthode de requête prise en charge.
|
Méthode de requête |
Instruction de requête |
Instruction d'analyse |
|
Requête d'événements |
|
|
|
Résumé des événements |
|
|
|
Événements Insight |
|
|
Exemples d'instructions SQL
-
Exemple 1 : Interroger tous les événements de gestion de type écriture
* AND "event.eventCategory": Management AND "event.eventRW": Write | select "event.acsRegion" as acsRegion, "event.apiVersion" as apiVersion, "event.eventId" as eventId, "event.eventName" as eventName, "event.eventRW" as eventRW, "event.eventSource" as eventSource, from_unixtime(__time__) as eventTime, "event.eventType" as eventType, "event.eventVersion" as eventVersion, "event.errorCode" as errorCode, "event.errorMessage" as errorMessage, "event.requestId" as requestId, "event.requestParameterJson" as requestParameterJson, "event.resourceName" as resourceName, "event.resourceType" as resourceType, "event.serviceName" as serviceName, "event.sourceIpAddress" as sourceIpAddress, "event.userAgent" as userAgent, "event.userIdentity.accessKeyId" as accessKeyId, "event.userIdentity.accountId" as accountId, "event.userIdentity.principalId" as principalId, "event.userIdentity.type" as type, "event.userIdentity.userName" as userName -
Exemple 2 : Interroger les résumés de tous les événements de gestion de type écriture
RemarqueSi vous spécifiez une plage de temps étendue pour votre requête, nous vous recommandons d'ajouter
LIMIT Nà l'instruction afin de renvoyer uniquementNévénements. Par exemple, définirLIMIT 20renvoie 20 événements.* AND "event.eventCategory": Management AND "event.eventRW": Write | SELECT "event.serviceName" AS serviceName, "event.eventName" AS eventName, "event.eventRW" AS eventRW, "event.sourceIpAddress" AS sourceIpAddress, "event.resourceName" AS resourceName, "event.resourceType" AS resourceType, "event.userIdentity.userName" AS userName, "event.userIdentity.type" AS userType, "event.userIdentity.accessKeyId" AS accessKeyId, "event.acsRegion" AS eventRegion, COUNT("event.eventId") AS n, date_trunc('hour', __time__) AS time GROUP BY time, serviceName, eventName, eventRW, sourceIpAddress, resourceType, resourceName, accessKeyId, userType, userName, eventRegion ORDER BY time DESC LIMIT 20 -
Exemple 3 : Interroger toutes les anomalies d'adresse IP dans les événements Insight
* AND "event.eventCategory": Insight AND event.insightDetails.insightType: IpInsight | select from_unixtime(__time__) as eventTime, "event.acsRegion" as eventRegion, "event.insightDetails.sourceIpAddress" as sourceIpAddress, "event.insightDetails.insightContext.statistics.insightCount" as count -
Exemple 4 : Interroger les événements de gestion initiés depuis une adresse IP source spécifique
* AND "event.eventCategory": Management AND "event.sourceIpAddress": "10.12.XX.XX" | select from_unixtime(__time__) as eventTime, "event.eventName" as eventName, "event.serviceName" as serviceName, "event.sourceIpAddress" as sourceIpAddress, "event.userIdentity.userName" as userName, "event.acsRegion" as acsRegion