ActionTrail conserve les événements des 90 derniers jours. Pour interroger et analyser des événements plus anciens, créez une piste afin d'acheminer les événements vers Simple Log Service (SLS), puis utilisez des instructions SQL dans SLS.
Syntaxe des instructions SQL
Les instructions SQL suivent 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 d'interrogation 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 ne renvoyer queNé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 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