Use instruções SQL em consultas avançadas de eventos para consultar ou analisar eventos entregues ao Simple Log Service por meio de um trail.
Para usar strings em instruções analíticas, coloque-as entre aspas simples (''). Strings sem aspas ou entre aspas duplas ("") indicam nomes de campos ou colunas. Por exemplo, 'status' indica a string status, enquanto status ou "status" indica o campo de log status.
Exemplos
-
Consulta de texto completo
Especifique uma palavra-chave, como o nome de um campo ou o valor de um campo.
Exemplo: selecione eventos que contenham a palavra-chave
DescribeInstances.DescribeInstances -
Correspondência exata baseada em propriedades
Especifique uma propriedade de evento no formato
[Event property name]:[Event property value]. É necessário especificar um nome e um valor exatos. Para obter mais informações sobre as propriedades de eventos, consulte Event properties neste tópico.Exemplo: selecione eventos em que o valor de
event.eventSourcesejaactiontrail.cn-hangzhou.aliyuncs.com.event.eventSource: actiontrail.cn-hangzhou.aliyuncs.com -
Correspondência aproximada baseada em atributos
Especifique uma propriedade de evento no formato
[Event property name]:[Event property value]. O nome deve ser exato. Para o valor, adicione um asterisco (*) para corresponder a vários caracteres ou um ponto de interrogação (?) para corresponder a um único caractere.-
Exemplo 1: selecione todos os eventos de acesso baseados em pares de AccessKey.
event.userIdentity.accessKeyId: * -
Exemplo 2: selecione eventos em que o valor de
event.eventSourcecomece comactiontrail.event.eventSource: actiontrail*
-
-
Consulta de múltiplas condições
Use parênteses
()e os operadores lógicosANDouORpara executar uma consulta com múltiplas condições.-
Exemplo 1: selecione todos os eventos de falha em acessos baseados em pares de AccessKey.
event.errorCode: * AND event.userIdentity.accessKeyId: * -
Exemplo 2: selecione eventos em que o valor de
event.eventNamesejaCreate,CreateInstanceouRunInstances.event.eventName: Create OR event.eventName: CreateInstance OR event.eventName: RunInstances -
Exemplo 3: selecione eventos em que o valor de
event.serviceNamesejakafkae o valor de eventName sejaCreate,CreateInstanceouRunInstances.(event.serviceName: AliKafka AND ( event.eventName: Create OR event.eventName: CreateInstance OR event.eventName: RunInstances )
-
-
Consulta de agregação
Utilize a sintaxe de consulta de agregação do Simple Log Service para gerar estatísticas agregadas sobre eventos. Por exemplo, use a cláusula
GROUP BYpara gerar estatísticas agregadas de campos específicos.-
Exemplo 1: selecione a quantidade de eventos agregados por service de cloud.
* | SELECT "event.serviceName" AS service, COUNT(*) AS count FROM log GROUP BY "event.serviceName" -
Exemplo 2: selecione a quantidade de eventos agregados por usuário e service de cloud.
* | SELECT "event.userIdentity.principalId" AS principalId, "event.serviceName" AS service, COUNT(*) AS count FROM log GROUP BY principalId,service
-
Propriedades de eventos
A tabela a seguir descreve os atributos de evento compatíveis com o ActionTrail.
|
Categoria |
Nome da propriedade do evento |
Descrição |
|
Operador |
|
O ID da conta Alibaba Cloud. |
|
|
O ID da chave. |
|
|
|
O ID do solicitante. |
|
|
|
O tipo de conta. |
|
|
|
O nome de usuário. |
|
|
Ação |
|
O nome do service. |
|
|
O tipo de leitura/gravação. |
|
|
|
O nome do evento. |
|
|
|
As informações da versão. |
|
|
|
A mensagem de erro. |
|
|
|
O código de erro. |
|
|
Recurso associado |
|
O tipo de recurso. |
|
|
O nome do recurso. |
|
|
Localização |
|
A região. |
|
|
O source do evento. |
|
|
|
O endereço IP de source. |
|
|
Outros |
|
O ID da solicitação. |
|
|
O ID do evento. |
Funções de agregação
A tabela a seguir descreve as funções de agregação compatíveis com o ActionTrail.
Parâmetro | Sintaxe | Descrição | Suporte SQL | Suporte SPL |
arbitrary(x) | Retorna um valor arbitrário não nulo de x. | √ | × | |
avg(x) | Calcula a média aritmética de x. | √ | × | |
bitwise_and_agg(x) | Retorna a operação AND bit a bit de todos os valores em x. | √ | × | |
bitwise_or_agg(x) | Retorna a operação OR bit a bit de todos os valores em x. | √ | × | |
bool_and(boolean expression) | Retorna verdadeiro se todos os logs atenderem à condição. A função | √ | × | |
bool_or(boolean expression) | Retorna verdadeiro se pelo menos um log atender à condição. | √ | × | |
checksum(x) | Calcula o checksum de x. | √ | × | |
count(*) | Retorna o número total de logs. | √ | × | |
count(1) | Retorna o número total de logs, o que equivale a | √ | × | |
count(x) | Retorna o número de logs em que o valor de x não é nulo. | √ | × | |
count_if(boolean expression) | Retorna o número de logs que atendem à condição especificada. | √ | × | |
every(boolean expression) | Retorna verdadeiro se todos os logs atenderem à condição. A função | √ | × | |
geometric_mean(x) | Calcula a média geométrica de x. | √ | × | |
kurtosis(x) | Calcula a curtose de x. | √ | × | |
map_union(x) | Retorna a união de mapas em uma coluna. Caso uma chave exista em múltiplos mapas, o sistema escolhe um valor arbitrário para ela. | √ | × | |
max(x) | Retorna o valor máximo em x. | √ | × | |
max(x, n) | Retorna os n maiores valores em x como um array. | √ | × | |
max_by(x, y) | Retorna o valor de x associado ao valor máximo de y. | √ | × | |
max_by(x, y, n) | Retorna um array com os valores de x correspondentes aos n maiores valores de y. | √ | × | |
min(x) | Retorna o valor mínimo em x. | √ | × | |
min(x, n) | Retorna os n menores valores em x como um array. | √ | × | |
min_by(x, y) | Retorna o valor de x associado ao valor mínimo de y. | √ | × | |
min_by(x, y, n) | Retorna um array com os valores de x correspondentes aos n menores valores de y. | √ | × | |
skewness(x) | Calcula a assimetria de x. | √ | × | |
sum(x) | Calcula a soma de x. | √ | × |
Palavras reservadas
O bloco de código a seguir mostra todas as palavras reservadas em instruções SQL:
AND
AS
BETWEEN
BY
CASE
CAST
CROSS
CUBE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
DISTINCT
ELSE
END
ESCAPE
EXCEPT
EXISTS
FROM
GROUP
GROUPING
HAVING
IN
INNER
INSERT
INTERSECT
INTO
IS
JOIN
LEFT
LIKE
LIMIT
LOCALTIME
LOCALTIMESTAMP
NATURAL
NOT
NULL
ON
OR
ORDER
OUTER
RIGHT
ROLLUP
SELECT
THEN
TRUE
UNION
UNNEST
VALUES
WHEN
WHERE
WITH