Real-Time Events
Preview
Real-Time Events é um produto de Observe que fornece dados brutos, logs, de outros produtos da Azion em tempo real.
Um conjunto de variáveis pré-organizadas estão disponíveis para fazer consultas manuais utilizando diferentes fontes de dados, permitindo que você obtenha informações extensas e detalhadas sobre comportamentos, ocorrências e desempenho de suas aplicações por meio de logs.
Você pode usar o Real-Time Events para:
- Realizar pesquisas complexas.
- Inspecionar possíveis ataques.
- Executar investigações de debugging.
- Analisar o desempenho de aplicações.
- Analisar economia de aplicações e plataformas.
- Aumentar a confiabilidade dos seus dados.
- Diminuir o tempo de resolução de problemas.
- Melhorar a entrega de conteúdo com base em dados reais.
Implementação
Seção intitulada ImplementacaoTarefa | Guia |
---|---|
Primeiros passos | Primeiros passos do Real-Time Events |
Armazenamento de eventos
Seção intitulada Armazenamento de eventosO Real-Time Events armazena logs de eventos das últimas 168 horas, equivalente a 7 dias. Você pode consultar dados detalhados durante esse período.
Data sources
Seção intitulada Data sourcesData Source representa o produto ou serviço da Azion que gerou os eventos que você consultará. Ao enviar uma consulta, o data source representa o índice de onde você deseja coletar dados.
A seleção de um data source no menu suspenso é obrigatória. Você pode escolher entre:
Cada data source tem um conjunto específico de variáveis disponíveis, representando as informações específicas que você pode receber em sua consulta. Veja os pré-requisitos e as variáveis de cada data source e suas descrições a seguir.
Data Streaming
Seção intitulada Data StreamingRequer: Data Streaming
Exibe os registros de eventos de dados enviados para seus endpoints configurados.
Variável | Descrição |
---|---|
$client_id | Identificador exclusivo de cliente Azion. Exemplo: 4529r |
$data_streamed | Quantidade total de dados transmitidos em bytes para o endpoint configurado (attempt/sink/send). Exemplo: 1270 |
$endpoint_type | Tipo de endpoint usado no data streaming configurado. Pode ser: HTTP_POST , S3 , ELASTICSEARCH , QRADAR , AWS_KINESIS_FIREHOSE , KAFKA , DATADOG , BIG_QUERY , SPLUNK , AZURE_MONITOR , AZURE_BLOB_STORAGE |
$job_name | Identificador exclusivo da Azion para o tipo de streaming criado. Exemplo: Data Streaming HTTP , Data Streaming WAF |
$status_code | Código de status HTTP da requisição. Exemplo: 200 |
$streamed_lines | Quantidade total de linhas transmitidas para o endpoint configurado. Valor máximo de 2000 . Exemplo: 837 |
$time | Data e hora em que os dados foram enviados para o endpoint configurado. Exemplo: 31 October, 2023, 21:10:55 |
$url | URL para a qual os dados do cliente foram enviados/sink. Exemplo: https://s3.amazonaws.com |
Edge Applications
Seção intitulada Edge ApplicationsExibe os registros de eventos de requisições feitas para suas edge applications.
Variável | Descrição |
---|---|
$asn | Autonomous System Number Allocation (ASN), que são redes de endereços IP gerenciadas por uma ou mais operadoras de rede que têm uma política de roteamento clara e exclusiva. Exemplo: AS52580 |
$bytes_sent | Número de bytes enviados para o cliente. Exemplo: 191 |
$client | Identificador exclusivo de cliente Azion. Exemplo: 4529r |
$city | Nome da cidade do cliente remoto detectado pela geolocalização de endereço IP. Exemplo: Chicago , Boston |
$country | País do cliente remoto detectado pela geolocalização de endereço IP. Exemplo: United States , Russian Federation |
$host | Informação de host enviada na linha da requisição. Armazena: nome do host da linha da requisição, ou o nome do host do cabeçalho Host , ou o nome do servidor correspondente à requisição. Exemplo: website.com.br |
$http_referrer | Endereço da página da qual o usuário fez a requisição. Exemplo: https://domain.com |
$http_user_agent | Identificação da aplicação, do sistema operacional, do fornecedor e/ou da versão do usuário final. Valor do cabeçalho User-Agent . Exemplo: Mozilla/5.0 (Windows NT 10.0; Win64; x64) |
$proxy_status | Código de status de erro HTTP ou da origem quando nenhuma resposta é obtida da origem. Exemplo: 520 . Em caso de cache, a resposta é - . |
$remote_addr | Endereço IP da origem que gerou a requisição. Exemplo: 54.233.153.15 |
$remote_port | Porta remota da origem que gerou a requisição. Exemplo: 26081 |
$request_id | Identificador exclusivo da requisição. Exemplo: 5f222ae5938482c32a822dbf15e19f0f |
$request_length | Tamanho da requisição em bytes, incluindo a linha da requisição, cabeçalhos e corpo. Exemplo: 1133 |
$request_method | Método da requisição. Exemplo: GET or POST |
$request_time | Tempo de processamento da requisição decorrido desde que os primeiros bytes foram lidos a partir do cliente com resolução de milisegundos. Exemplo: 1.19 |
$request_uri | URI da requisição realizada pelo usuário, sem a informação do host e de protocolo e com argumentos. Exemplo: /v1?v=%20d boim |
$scheme | Esquema da requisição. Exemplo: HTTP ou HTTPS |
$sent_http_content_type | Cabeçalho Content-Type enviado na resposta da origem. Exemplo: text/html; charset=UTF-8 |
$server_addr | Endereço IP do servidor que recebeu a requisição. Exemplo: 179.191.169.73 |
$server_port | Porta remota do servidor que recebeu a requisição. Exemplo: 443 |
$server_protocol | Protocolo da requisição. Exemplo: HTTP/1.1 , HTTP/2.0 , HTTP/3.0 |
$ssl_cipher | String de cifra utilizada para estabelecimento de conexão TLS. Exemplo: TLS_AES_256_GCM_SHA384 |
$ssl_protocol | Protocolo de uma conexão TLS estabelecida. Exemplo: TLS v1.2 |
$state | Estado do cliente detectado pela geolocalização de endereço IP. Exemplo: CA , RS |
$status | Código de status HTTP da requisição. Exemplo: 200 |
$time | Data e hora da requisição. Exemplo: 31 October, 2023, 21:10:55 |
$traceback | Informa os nomes das rules criadas pela Rules Engine da sua edge application ou do seu edge firewall executadas pela requisição. Exemplo: export NODE_OPTIONS="--max-old-space-size=4096"{\"edge_firewall\":[\"BODY DS\",\"WAF Rules\"]} |
$upstream_addr | Endereço IP e porta do cliente. Também pode armazenar múltiplos servidores ou grupos de servidores. Exemplo: 192.168.1.1:80 . Quando a resposta é 127.0.0.1:1666 , o upstream é o Azion Cells Runtime. |
$upstream_bytes_received | Número de bytes recebidos pelo edge da origem, se o conteúdo não estiver em cache. Exemplo: 8304 |
$upstream_bytes_sent | Número de bytes enviados para a origem. Exemplo: 2733 |
$upstream_cache_status | Status do cache local do edge. Pode ser: MISS , BYPASS , EXPIRED , STALE , UPDATING , REVALIDATED ou HIT |
$upstream_response_time | Tempo, em milissegundos, para o edge receber uma resposta padrão da origem, incluindo cabeçalhos e corpo. Exemplo: 0,876 . Em caso de cache, a resposta é - . |
$upstream_status | Código de status HTTP da origem. Se um servidor não pode ser selecionado, a variável mantém o código de status 502 (Bad Gateway). Exemplo: 200 . Em caso de cache, a resposta é - . |
$waf_attack_action | Informa a ação do WAF em relação à ação. Pode ser: $BLOCK , $PASS , $LEARNING_BLOCK ou $LEARNING_PASS |
$waf_attack_family | Informa a classificação da família do ataque, que são categorias identificadas pelo WAF e classificadas de acordo com OWASP Top 10. Exemplo: $XSS . Veja as categorias. |
$waf_block | Informa se o WAF bloqueou ou não a ação. 0 quando a ação não foi bloqueada e 1 quando a ação foi bloqueada. Quando estiver em Learning Mode, ele não será bloqueado, independentemente do retorno. |
$waf_headers | Quando os cabeçalhos de requisição enviados pelo usuário são analisados pelo módulo WAF e marcados como bloqueados com $waf_block = 1 , ele contém uma string codificada em base64. Caso contrário, ele contém um caractere de traço - . Aplica-se aos modos WAF Learning ou Blocking. |
$waf_learning | Informa se o WAF está em Learning Mode. Pode ser 0 ou 1 |
$waf_match | Lista de infrações encontradas na requisição do usuário final. É formada por elementos chave-valor: a chave é referente ao tipo de infração detectada; o valor apresenta a string que gerou a infração. Exemplo: 0:1311:BODY:ctl00_cph_jp1_dados_container_clientstate . Saiba mais sobre as Allowed Rules do WAF. |
$waf_score | Informa a pontuação que será incrementada em caso de match com as regras criadas para o WAF. |
A variável $traceback
pode ser utilizada se você tem ativada a opção de Debug rules em sua aplicação. Saiba mais sobre Como fazer o debug de regras criadas com Rules Engine.
Edge Functions
Seção intitulada Edge FunctionsRequer: Edge Functions
Exibe os registros de eventos de requisições feitas às suas edge functions.
Variável | Descrição |
---|---|
$client_id | Identificador exclusivo de cliente Azion. Exemplo: 4529r |
$configuration_id | Identificador exclusivo de configuração Azion. Exemplo: 1595368520 |
$function_id | Número identificador exclusivo da função Azion. Pode ser encontrado no caminho da URL da função no RTM ou via requisição de API. Exemplo: 1111 |
$message_content | Campo aberto com uma mensagem usada no console.log para debugging. Exemplo: [Send event to endpoint] Generic error handler; TypeError: error sending request for url (https://http-intake.logs.datadoghq.com/v1/input): connection closed before message completed |
$message_level | Mensagem com o tipo de nível para a função. Pode ser: MDN , DEBUG , INFO , ERROR , LOG ou WARN |
$message_source | Fonte da mensagem. Pode ser: CONSOLE quando as mensagens são geradas pela API do Console ou RUNTIME quando está relacionado a uma mensagem de erro. |
$time | Data e hora da requisição. Exemplo: 31 October, 2023, 21:10:55 |
Edge Pulse
Seção intitulada Edge PulseExibe os registros de eventos de requisições feitas ao seu edge pulse utilizando os dados de desempenho medidos no navegador do usuário.
Variável | Descrição |
---|---|
$browser | UUID gerado para o navegador do cliente usado na requisição. Exemplo: 2648698a-61cb-45ad-bbb5-c569313185d4 |
$client_id | Identificador exclusivo de cliente Azion. Exemplo: 4529r |
$contentdownload | Tempo levado para baixar o conteúdo solicitado. Exemplo: 5 |
$dns | Tempo de resolução de DNS. Exemplo: 0 |
$downlink | Retorna o volume médio de dados recebidos em Mb/s. Exemplo: 10 |
$effectivetype | O tipo efetivo da conexão. Exemplo: 3g , 4g , 5g |
$hostname | Nome do host da URL atual. Exemplo: website.com.br |
$locationhref | A URL completa da página atual. Exemplo: https://www.azion.com/pt-br/sobre-nos/ |
$navigation.contentDownload | Tempo levado para baixar o conteúdo solicitado. |
$navigation.dns | Tempo de resolução de DNS. |
$navigation.networkDuration | Duração sem espera da consulta do navegador. |
$navigation.PageLoadTime | Tempo desde o início da navegação até o carregamento total da página. |
$navigation.redirectCount | Número de redirecionamentos desde a última navegação sem redirecionamento no contexto da navegação atual. |
$navigation.renderTime | Hora em que o navegador foi renderizado após a navegação. |
$navigation.ssl | Protocolo de uma conexão TLS estabelecida. |
$navigation.tcp | Protocolo de Internet que retorna os dados que compõem a página. |
$navigation.ttfb | Tempo até a chegada do primeiro byte da página solicitada. |
$navigation.type | Tipo de navegação sem redirecionamento. |
$navigation.typeBackForward | Tipo de navegação através do histórico da sessão. |
$navigation.typeNavigate | Tipo da última navegação sem redirecionamento. Exemplo: clicando em um link, inserindo a URL na barra de endereço ou enviando um formulário. |
$navigation.typeReload | Tipo de navegação para a operação de recarga: quando a página foi recarregada. |
$navigation.typeReserved | Qualquer tipo de navegação não definida por outras variáveis específicas (navigation.typeNavigate e navigation.typeReload). |
$networkApi.downlink | Volume médio de dados recebidos em Mb/s. |
$networkduration | Duração sem espera da consulta do navegador. Exemplo: 52 |
$pageloadtime | Tempo desde o início da navegação até o carregamento total da página. Exemplo: 1267 |
$platform | Arquitetura do sistema operacional. Exemplo: Linux x86_64 , Iphone |
$redirectcount | Número de redirecionamentos desde a última navegação sem redirecionamento no contexto da navegação atual. Exemplo: 0 |
$referrer | Endereço da página da qual o usuário fez a requisição. A URL pelo qual o usuário chegou ao “locationHref”. Se o acesso se originou diretamente da página (por exemplo, através de um marcador), o valor será uma string vazia . Ele não fornece acesso DOM à página de referência. Exemplo: https://www.azion.com/pt-br/ |
$rendertime | Quantidade de tempo levada para renderizar a página. Exemplo: 1242 |
$rtt | Informação do Round-Trip Time (RTT). Exemplo: 250 |
$ssl | Protocolo de uma conexão TLS estabelecida. Exemplo: 0 . Se a URL solicitada tiver uma conexão segura, retornará o tempo necessário para a autenticação. |
$tcp | Protocolo de Internet que retorna os dados que compõem a página. O tempo que leva para o handshake TCP é o tempo entre o início da conexão e o final da conexão. Exemplo: 0 |
$time | Data e hora da requisição. Exemplo: 31 October, 2023, 21:10:55 |
$timestamp | Data e hora da requisição. Exemplo: 31 October, 2023, 21:10:55 |
$ttfb | Time To First Byte: tempo até a chegada do primeiro byte da página solicitada em milissegundos. Inclui 1 round trip de latência e o tempo que o servidor leva para preparar a resposta. Exemplo: 1 |
$type | Tipo de navegação sem redirecionamento. Indica como a navegação para esta página/script foi feita. Exemplo: navigation , reload |
$typebackforward | Tipo de navegação através do histórico da sessão. Exemplo: 2 |
$typenavigate | Tipo da última navegação sem redirecionamento. Exemplo: clicando em um link, inserindo a URL na barra de endereço ou enviando um formulário. Exemplo: 0 |
$typereload | Tipo de navegação para a operação de recarga: quando a página foi recarregada. Exemplo: 1 |
$typereserved | Qualquer tipo de navegação não definida por outras variáveis específicas (navigation.typeNavigate e navigation.typeReload). Exemplo: 1 |
$userAgent | Identificação da aplicação, do sistema operacional, do fornecedor e/ou da versão do usuário final. Valor do cabeçalho User-Agent . Exemplo: Mozilla/5.0 (Windows NT 10.0; Win64; x64) |
$version | A versão de Azion Log utilizada. Exemplo: v5 |
WAF Events
Seção intitulada WAF EventsRequer: Web Application Firewall
Exibe os registros de eventos de requisição analisados pelo WAF para permitir que você mapeie a pontuação atribuída à requisição, as regras correspondentes do WAF, o motivo do bloqueio e muito mais.
Variável | Descrição |
---|---|
$attack_family | Informa a classificação da infração de WAF detectada na requisição e sua classificação de acordo com o OWASP Top 10. Exemplo: $XSS . Veja as categorias. |
$blocked | Informa se o WAF bloqueou ou não a ação. 0 quando a ação não foi bloqueada e 1 quando a ação foi bloqueada. Quando estiver em Learning Mode, ela não será bloqueada, independentemente do retorno. |
$client_id | Identificador exclusivo de cliente Azion. Exemplo: 4529r |
$geoloc_country_name | País do cliente remoto detectado pela geolocalização de endereço IP. Exemplo: United States , Russian Federation |
$host | Informação de host enviada na linha da requisição. Armazena: nome do host da linha da requisição, ou o nome do host do campo do cabeçalho Host , ou o nome do servidor correspondente à requisição. Exemplo: website.com.br |
$remote_address | Endereço IP da origem que gerou a requisição. Exemplo: 54.233.153.15 |
$server_protocol | O protocolo de conexão estabelecido. HTTP/1.1 , HTTP/2.0 , HTTP/3.0 |
$time | Data e hora da requisição. Exemplo: 31 October, 2023, 21:10:55 |
$total_blocked | Informa o número total de requisições bloqueadas pelo WAF. Exemplo: 2 |
$total_processed | Informa o número total de requisições processadas pelo WAF. Exemplo: 1 |
$waf_action | Informa a ação do WAF em relação à ação. Pode ser: $BLOCK , $PASS , $LEARNING_BLOCK ou $LEARNING_PASS . |
$waf_args | Os argumentos da requisição. Exemplo: quantidade_periodos=10 |
$waf_learning | Informa se o WAF está em Learning Mode. Pode ser 0 ou 1 |
$waf_match | Lista de infrações encontradas na requisição do usuário final. É formada por elementos chave-valor: a chave é referente ao tipo de infração detectada; o valor apresenta a string que gerou a infração. Exemplo: 0:1311:BODY:ctl00_cph_jp1_dados_container_clientstate . Saiba mais sobre as Allowed Rules do WAF. |
$waf_score | Informa a pontuação que será incrementada em caso de match com as regras criadas para o WAF. |
$waf_server | Nome do host usado na solicitação WAF. Exemplo: api-login.azion.com.br |
$waf_uri | URI usado na requisição do WAF. Exemplo: /access/v2/after-login |
Filtro de data
Seção intitulada Filtro de dataO Time Filter possibilita que você refine o período para o resultado da busca de eventos. Ele é selecionado por padrão para Last 15 minutes.
Você pode filtrar por:
- Last 15 minutes (últimos 15 minutos)
- Last 30 minutes (últimos 30 minutos)
- Last 1 hour (última hora)
- Last 3 hours (últimas 3 horas)
- Last 6 hours (últimas 6 horas)
- Last 12 hours (últimas 12 horas)
- Last day (último dia)
- Last 2 days (últimos 2 dias)
- Last 3 days (últimos 3 dias)
- Last 5 days (últimos 5 dias)
- Last 7 days (últimos 7 dias)
- Custom (personalizado)
Ao usar o campo Custom, você pode personalizar sua busca selecionando um intervalo de data e hora durante as últimas 168 horas.
Você pode alterar o intervalo de tempo quantas vezes quiser para investigar seus logs.
Filtragem
Seção intitulada FiltragemNo campo Filter by, você filtra seus resultados de busca utilizando uma palavra-chave ou frase. Isso torna sua pesquisa mais específica e facilita a localização dos logs que você deseja analisar.
Ao fazer uma busca com um campo Filter by em branco, você obterá todos os registros existentes para as variáveis do data source selecionado disponíveis durante o filtro de tempo selecionado.
O campo usa a linguagem SQL para consultar resultados. Sua busca deve estar em um dos dois formatos:
key='value'
- Correspondência exata, onde:
key
: uma das variáveis do data source que você está consultando.=
: significa que a pesquisa deve consultar o valor passado exato.value
: um valor em formato de string ou integer.
key like '%value%'
- Valor similar, onde:
key
: uma das variáveis do data source que você está consultando.like
: significa que a busca deve consultar um valor semelhante ao passado.value
: um valor cercado em formato de string ou integer.
No segundo formato, você pode usar com valor
:
%value%
: filtra para valores que contêm todo o valor especificado.%value
: filtra os valores que terminam com o valor especificado.value%
: filtra os valores que começam com o valor especificado.
Você também pode fazer consultas mais complexas com as notações AND
, OR
e NOT
para combinar os campos.
Alguns exemplos de consultas SQL:
Variável | Consulta SQL |
---|---|
$status | status='404' |
$status + $scheme | status='200' AND scheme='https' |
$endpoint_type | endpoint_type='datadog' |
$geoloc_country_name | geoloc_country_name='Brazil' |
$message_content | message_content like '%unavailable%' |
$message_content | message_content like '%available%' |
Exibição de dados
Seção intitulada Exibicao de dadosDepois de concluir os filtros e buscar resultados, seus registros aparecerão em uma tabela.
Cada linha representa um log diferente, o que equivale a uma ação diferente realizada pelo edge. Se você clicar em um dos logs, a linha se expandirá e fornecerá informações mais detalhadas sobre ele. As informações apresentadas variam de acordo com as especificidades de cada variável.
A interface pagina por uma determinada quantidade de resultados no início, mas continuará carregando todos os resultados disponíveis à medida que você percorrer a página.
Atualização de dados
Seção intitulada Atualizacao de dadosDepois de realizar uma consulta, você pode usar o botão Refresh para atualizar os dados retornados. O Real-Time Events repetirá a última pesquisa realizada, atualizando os dados, mas mantendo o filtro de tempo e o filtro SQL que você utilizou.
Se você tinha o filtro de tempo para os últimos 30 minutos, por exemplo, e fosse 4h, você teria registros das 3h30 às 4h. Se você usar o botão Refresh às 16h45, terá registros das 16h15 às 16h45.
A busca continua retornando os resultados ordenados do mais recente ao mais antigo.
Limites
Seção intitulada LimitesDependendo do tamanho dos seus dados, o limite de consulta pode ser excedido. Neste caso, filtre os dados por um período de tempo menor.
Contribuidores