Consultas de exemplo - CloudWatch Registros da Amazon

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 informações sobre como executar um comando de consulta, consulte Tutorial: Executar e modificar uma consulta de amostra no Guia do usuário do Amazon CloudWatch Logs.

Para obter mais informações sobre a sintaxe das consultas, consulte CloudWatch Sintaxe de consulta do Logs Insights.

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 na página de suporte AWS premium.

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 AWS Cloud Operations & Migrations.

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 loggingTimeloggingType e loggingMessage, aplica o filtro para eventos de logs que contêm strings ERROR ou INFO e exibe apenas os campos loggingMessageloggingType 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