As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Consultas de exemplo
Esta seção contém uma lista de comandos de consulta gerais e úteis que você pode executar no CloudWatch console
Para obter mais informações sobre a sintaxe das consultas, consulte CloudWatch Sintaxe de consulta do Logs Insights.
Tópicos
- Consultas gerais
- Consultas de logs do Lambda
- Consultas para registros de VPC fluxo da Amazon
- Consultas de logs do Route 53
- Consultas para registros CloudTrail
- Consultas para Amazon API Gateway
- Consultas para gateway NAT
- Consultas para logs do servidor Apache
- Consultas para a Amazon EventBridge
- Exemplos do comando de análise
Consultas gerais
Encontre os 25 eventos de log adicionados mais recentemente.
fields @timestamp, @message | sort @timestamp desc | limit 25
Obtenha uma lista do número de exceções por hora.
filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc
Obtenha uma lista de eventos de log que não sejam exceções.
fields @message | filter @message not like /Exception/
Obtenha o evento de log mais recente para cada valor exclusivo do campo server
.
fields @timestamp, server, severity, message | sort @timestamp asc | dedup server
Obtenha o evento de log mais recente para cada valor exclusivo do campo server
para cada tipo severity
.
fields @timestamp, server, severity, message | sort @timestamp desc | dedup server, severity
Consultas de logs do Lambda
Determine a quantidade de memória provisionada excessivamente.
filter @type = "REPORT" | stats max(@memorySize / 1000 / 1000) as provisonedMemoryMB, min(@maxMemoryUsed / 1000 / 1000) as smallestMemoryRequestMB, avg(@maxMemoryUsed / 1000 / 1000) as avgMemoryUsedMB, max(@maxMemoryUsed / 1000 / 1000) as maxMemoryUsedMB, provisonedMemoryMB - maxMemoryUsedMB as overProvisionedMB
Crie um relatório de latência.
filter @type = "REPORT" | stats avg(@duration), max(@duration), min(@duration) by bin(5m)
Procure invocações de funções lentas e elimine solicitações duplicadas que podem surgir de novas tentativas ou código no lado do cliente. Nessa consulta, @duration
está em milissegundos.
fields @timestamp, @requestId, @message, @logStream | filter @type = "REPORT" and @duration > 1000 | sort @timestamp desc | dedup @requestId | limit 20
Consultas para registros de VPC fluxo da Amazon
Encontre as 15 principais transferências de pacotes nos hosts:
stats sum(packets) as packetsTransferred by srcAddr, dstAddr | sort packetsTransferred desc | limit 15
Encontre as 15 principais transferências de bytes para hosts em uma determinada sub-rede.
filter isIpv4InSubnet(srcAddr, "192.0.2.0/24") | stats sum(bytes) as bytesTransferred by dstAddr | sort bytesTransferred desc | limit 15
Encontre os endereços IP usados UDP como protocolo de transferência de dados.
filter protocol=17 | stats count(*) by srcAddr
Encontre os endereços IP nos quais os registros do fluxo foram ignorados durante a janela de captura.
filter logStatus="SKIPDATA" | stats count(*) by bin(1h) as t | sort t
Encontre um único registro para cada conexão para ajudar a solucionar problemas de conectividade com a rede.
fields @timestamp, srcAddr, dstAddr, srcPort, dstPort, protocol, bytes | filter logStream = 'vpc-flow-logs' and interfaceId = 'eni-0123456789abcdef0' | sort @timestamp desc | dedup srcAddr, dstAddr, srcPort, dstPort, protocol | limit 20
Consultas de logs do Route 53
Encontre a distribuição de registros por hora por tipo de consulta.
stats count(*) by queryType, bin(1h)
Encontre os 10 DNS resolvedores com o maior número de solicitações.
stats count(*) as numRequests by resolverIp | sort numRequests desc | limit 10
Encontre o número de registros por domínio e subdomínio em que o servidor não conseguiu concluir a DNS solicitação.
filter responseCode="SERVFAIL" | stats count(*) by queryName
Consultas para registros CloudTrail
Encontre o número de entradas de log de cada serviço, tipo de evento e da região da AWS .
stats count(*) by eventSource, eventName, awsRegion
Encontre os EC2 hosts da Amazon que foram iniciados ou parados em uma determinada AWS região.
filter (eventName="StartInstances" or eventName="StopInstances") and awsRegion="us-east-2"
Encontre as AWS regiões, os nomes ARNs de usuário e IAM os usuários recém-criados.
filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn
Encontre o número de registros em que ocorreu uma exceção ao invocar o. API UpdateTrail
filter eventName="UpdateTrail" and ispresent(errorCode) | stats count(*) by errorCode, errorMessage
Encontre entradas de registro em que TLS 1.0 ou 1.1 foi usado
filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ] | stats count(*) as numOutdatedTlsCalls by userIdentity.accountId, recipientAccountId, eventSource, eventName, awsRegion, tlsDetails.tlsVersion, tlsDetails.cipherSuite, userAgent | sort eventSource, eventName, awsRegion, tlsDetails.tlsVersion
Encontre o número de chamadas por serviço que usaram TLS as versões 1.0 ou 1.1
filter tlsDetails.tlsVersion in [ "TLSv1", "TLSv1.1" ] | stats count(*) as numOutdatedTlsCalls by eventSource | sort numOutdatedTlsCalls desc
Consultas para Amazon API Gateway
Encontre os 10 últimos erros 4XX
fields @timestamp, status, ip, path, httpMethod | filter status>=400 and status<=499 | sort @timestamp desc | limit 10
Identifique as 10 Amazon API Gateway solicitações mais antigas em seu grupo de registros de Amazon API Gateway acesso
fields @timestamp, status, ip, path, httpMethod, responseLatency | sort responseLatency desc | limit 10
Retorne a lista dos API caminhos mais populares em seu grupo de registros de Amazon API Gateway acesso
stats count(*) as requestCount by path | sort requestCount desc | limit 10
Crie um relatório de latência de integração para seu grupo de registros de Amazon API Gateway acesso
filter status=200 | stats avg(integrationLatency), max(integrationLatency), min(integrationLatency) by bin(1m)
Consultas para gateway NAT
Se você notar custos mais altos do que o normal em sua AWS fatura, você pode usar o CloudWatch Logs Insights para encontrar os principais contribuidores. Para obter mais informações sobre os seguintes comandos de consulta, consulte Como posso encontrar os principais contribuidores para o tráfego por meio do NAT gateway no meu? VPC
nota
Nos comandos de consulta a seguir, substitua “x.x.x.x” pelo IP privado do seu NAT gateway e substitua “y.y” pelos dois primeiros octetos do seu intervalo. VPC CIDR
Encontre as instâncias que estão enviando mais tráfego por meio do seu NAT gateway.
filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10
Determine o tráfego que vai e sai das instâncias em seus NAT gateways.
filter (dstAddr like 'x.x.x.x' and srcAddr like 'y.y.') or (srcAddr like 'xxx.xx.xx.xx' and dstAddr like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10
Determine os destinos da Internet com os quais suas instâncias VPC se comunicam com mais frequência para uploads e downloads.
Para uploads
filter (srcAddr like 'x.x.x.x' and dstAddr not like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10
Para downloads
filter (dstAddr like 'x.x.x.x' and srcAddr not like 'y.y.') | stats sum(bytes) as bytesTransferred by srcAddr, dstAddr | sort bytesTransferred desc | limit 10
Consultas para logs do servidor Apache
Você pode usar o CloudWatch Logs Insights para consultar os registros do servidor Apache. Para obter mais informações sobre as consultas a seguir, consulte Simplificando os registros do servidor Apache com CloudWatch o Logs Insights no blog
Encontre os campos mais relevantes para que você possa revisar seus logs de acesso e verificar se há tráfego no caminho /admin da aplicação.
fields @timestamp, remoteIP, request, status, filename| sort @timestamp desc | filter filename="/var/www/html/admin" | limit 20
Encontre o número de GET solicitações exclusivas que acessaram sua página principal com o código de status “200" (sucesso).
fields @timestamp, remoteIP, method, status | filter status="200" and referrer= http://34.250.27.141/ and method= "GET" | stats count_distinct(remoteIP) as UniqueVisits | limit 10
Encontre o número de vezes que o serviço Apache foi reiniciado.
fields @timestamp, function, process, message | filter message like "resuming normal operations" | sort @timestamp desc | limit 20
Consultas para a Amazon EventBridge
Obtenha o número de EventBridge eventos agrupados por tipo de detalhe do evento
fields @timestamp, @message | stats count(*) as numberOfEvents by `detail-type` | sort numberOfEvents desc
Exemplos do comando de análise
Use uma expressão de glob para extrair os campos @user
, @method
e @latency
do campo de log @message
e retornar a latência média para cada combinação exclusiva de @method
e @user
.
parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user
Use uma expressão regular para extrair os campos @user2
, @method2
e @latency2
do campo de log @message
e retornar a latência média para cada combinação exclusiva de @method2
e @user2
.
parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(latency2) by @method2, @user2
Extrai os campos loggingTime
, loggingType
e loggingMessage
, aplica o filtro para eventos de logs que contêm strings ERROR
ou INFO
e exibe apenas os campos loggingMessage
e loggingType
para eventos que contêm uma string ERROR
.
FIELDS @message | PARSE @message "* [*] *" as loggingTime, loggingType, loggingMessage | FILTER loggingType IN ["ERROR", "INFO"] | DISPLAY loggingMessage, loggingType = "ERROR" as isError