Real-Time Events
Real-Time Events é um módulo do Observe que permite que você visualize dados de seus Produtos e Serviços Azion em tempo real. Você pode utilizar o Real-Time Events para realizar buscas complexas e explorar os dados de suas aplicações na Azion.
Para acessar o Real-Time Events, prossiga conforme a seguir:
- Acesse o Real-Time Manager.
- Clique no Products Menu no canto superior esquerdo.
- Selecione Real-Time Events na seção Observe.
Você vizualizará os seguintes campos:
1. Data Sources
A primeira etapa para você explorar seus dados é a escolha do Data Source, que representa o Produto ou Serviço Azion que gerou os eventos.
Para submeter sua requisição de busca, você deve selecionar o Data Source de onde deseja coletar os eventos.
A Azion disponibiliza os seguintes Data Sources:
Data Streaming
Caso contratado o produto Data Streaming, o data source Data Streaming apresentará os dados de depuração de envio ao Endpoint configurado.
Variável | Descrição |
---|---|
$client_id | Identificador único de cliente Azion. |
$data_streamed | Quantidade de bytes transmitidos no streaming (tentativa/coleta/envio). |
$endpoint_type | Tipo do Endpoint configurado para o envio dos dados, tais como: HTTP/HTTPS Post, Apache Kafka, S3, etc. |
$job_name | Identificação exclusiva da Azion para nomear o tipo de streaming criado (Ex.: Data Streaming HTTP, Data Streaming WAF). |
$status_code | O status code da requisição, por exemplo: 200. Veja mais detalhes aqui. |
$streamed_lines | Quantidade total de linhas enviadas para o endpoint selecionado. |
$time | Data e hora do envio dos dados para o endpoint configurado, por exemplo: “01 June, 2021, 12:21:19”. |
$url | A URL para onde os dados do cliente foram enviados/coletados. |
Edge Applications
Apresenta os dados de requisições realizadas às suas edge applications na Azion.
Variável | Descrição |
---|---|
$asn | AS Number refere-se à Alocação de Número de Sistema Autônomo que corresponde a um grupo de redes de endereços IP gerenciadas por uma ou mais operadoras de rede que têm uma política de roteamento clara e única. Consultando o serviço ASN Whois para LACNIC, o ASN da Azion, por exemplo, é AS52580. Escolha o tipo de ASN para representar uma lista de grupos de AS, preenchendo um endereço por linha, com apenas o número sem o prefixo. |
$bytes_sent | Bytes enviados para o usuário, incluindo cabeçalho e corpo. |
$client | Identificador único de cliente Azion. |
$city | Nome da cidade do cliente remoto, por exemplo “Chicago”, ”Boston”. Detecção por geolocalização de endereço IP. |
$country | Nome do país do cliente remoto, por exemplo “Russian Federation”, “United States”. Detecção por geolocalização de endereço IP. |
$host | Informação de Host enviada na linha de requisição; ou campo Host do cabeçalho HTTP. |
$http_referrer | Informação da última página a qual o usuário estava, antes de realizar a requisição. |
$http_user_agent | A identificação da aplicação que realizou a requisição, por exemplo: Mozilla/50 (Windows NT 100; Win64; x64). |
$proxy_status | Código HTTP quando o erro é gerado pelo Nginx, quando nenhuma resposta é obtida do upstream. Ex: ‘ 520’. |
$remote_addr | Endereço IP da origem que gerou a requisição. |
$remote_port | Porta remota da origem que gerou a requisição. |
$request_id | Identificador único da requisição. Ex: ‘5f222ae5938482c32a822dbf15e19f0f’. |
$request_length | Tamanho da requisição, incluindo a linha de request, cabeçalhos e corpo. |
$request_method | Método da requisição; usualmente “GET” ou “POST”. |
$request_time | Tempo de processamento da requisição com resolução de milisegundos. |
$request_uri | URI da requisição realizada pelo usuário, sem a informação do Host e Protocolo. |
$scheme | Esquema da requisição: “http” ou “https”. |
$sent_http_content_type | Cabeçalho “Content-Type” enviado na resposta da origem. |
$server_addr | Endereço IP do servidor que recebeu a requisição. |
$server_port | Porta remota do servidor que recebeu a requisição. |
$server_protocol | O protocolo da conexão estabelecida, geralmente “HTTP/1.1” ou “HTTP/2.0”. |
$ssl_cipher | String de cifra utilizada para estabelecimento de conexão SSL. |
$ssl_protocol | O protocolo de uma conexão SSL estabelecida, por exemplo “TLS v1.2”. |
$state | Nome do estado do cliente remoto, por exemplo: “RS”, “SP”. Detecção de geolocalização do endereço IP. |
$status | O código do status da requisição, por exemplo: 200. |
$time | Data e hora da requisição, por exemplo “01 June, 2021, 12:21:19”. |
$traceback | Informa os nomes das Rules Engine da Edge Application e do Edge Firewall executadas pela requisição. |
$upstream_addr | Endereço e porta upstream. Ex: ‘192.168.1.1:80’. |
$upstream_bytes_received | Quantidade de bytes recebidos pela Edge da origem, caso o conteúdo não esteja em cache. |
$upstream_cache_status | Status de cache do Edge. Pode assumir os valores “MISS”, “BYPASS”, “EXPIRED”, “STALE”, “UPDATING”, “REVALIDATED” ou “HIT”. |
$upstream_response_time | Tempo em milisegundos para o Edge receber toda a resposta da origem, incluindo cabeçalhos e corpo (“-“ em caso de cache). |
$upstream_status | Código de resposta HTTP obtido do servidor upstream. EX: ‘200’. |
$waf_attack_action | Relata a ação do WAF em relação à ação ($BLOCK, $PASS, $LEARNING_BLOCK, $LEARNING_PASS). |
$waf_attack_family | Informa a classificação da infração do WAF detectada na requisição (SQL, XSS, TRAVERSAL, entre outros) |
$waf_block | Informa se o WAF bloqueou ou não a ação; 0 quando não bloqueado e 1 quando bloqueado. Quando em “ Learning Mode”, ele não será bloqueado, independentemente do retorno. |
$waf_headers | Cabeçalhos de requisição analisados pela WAF. |
$waf_learning | Informa se o WAF está em “learning mode”, geralmente 0 ou 1. |
$waf_match | Lista de infrações encontradas na requisição, é formada por elementos chave-valor; a chave refere-se ao tipo de violação detectada; o valor mostra a string que gerou a infração. |
$waf_score | Ele informa a pontuação (score) que será aumentada em caso de match. |
A variável $traceback pode ser usada se você tem a opção de Debug rules ativada em sua aplicação. Veja mais sobre Debug de regras com Edge Application.
Edge Functions
O Edge Functions permite que você construa aplicações nativas no edge ou adicione funcionalidades às aplicações de origem com funções orientadas a eventos. É construído com o Azion Cells, nosso core de tecnologia planejado para baixo consumo de memória, confiabilidade e velocidade.
Variável | Descrição |
---|---|
$client_id | Identificador único de cliente Azion. |
$configuration_id | Identificador único de configuração Azion. |
$function_id | Identificador único de função Azion. |
$message_content | Mensagem usada no console.log, para debug. |
$message_level | Nível da mensagem, pode ser MDN, DEBUG, INFO, ERROR, LOG ou WARN. |
$message_source | Fonte da mensagem. Pode aparecer como “CONSOLE”, quando as mensagens são geradas pela API do Console, ou “RUNTIME”, quando forem relacionadas a uma mensagem de erro. |
$time | Data e hora da requisição. |
Nota: para consultar os logs de Edge Functions use console_from_event.log
conforme descrito na documentação de Debbuging.
Edge Pulse
Se você tiver habilitado o Azion Edge Pulse em suas Edge Applications, o data source Edge Pulse apresentará os dados de performance mensurados a partir do browser do usuário.
Variáveis | Descrição |
---|---|
$browser | O UUID gerado para o navegador do cliente utilizado na requisição. |
$client_id | Identificador exclusivo do cliente Azion. |
$contentdownload | Tempo usado para baixar o conteúdo requisitado. |
$dns | Tempo de resolução do DNS. |
$downlink | Retorna o volume médio de dados recebidos (Mb/s). |
$effectivetype | O tipo efetivo de conexão (2g, 3g, 4g). |
$locationHref | Retorna a URL completa da página atual. |
$networkduration | Duração sem espera do navegador de consulta. |
$pageloadtime | Tempo desde o início da navegação até o carregamento completo da página. |
$platform | Arquitetura do sistema operacional (ex.: Linux x86_64, iPhone etc). |
$redirectcount | Retorna o número de redirecionamentos desde a última navegação, sem redirecionamento no contexto da navegação atual. |
$referrer | Retorna a url anterior à página atual. Ou seja, a url pela qual o usuário chegou à “locationHref”. Caso o acesso tenha se originado diretamente na página corrente (não por meio de link, mas, por exemplo, por um bookmark), seu valor será uma string vazia. Não fornece acesso DOM à página de referência. |
$rendertime | A quantidade de tempo levada para renderizar a página. |
$ssl | Protocolo padrão utilizado para manter uma conexão de tráfego segura. Se a url solicitada tiver uma conexão segura, retorna o tempo necessário para a autenticação. |
$tcp | Protocolo de Internet que retorna os dados que constituem a página. O tempo que leva para o handshake TCP é o tempo entre o início e o término da conexão. |
$time | Data e hora da requisição. |
$ttfb | Tempo até a chegada do primeiro byte da página requisitada. Time To First Byte é o tempo entre o início da navegação e quando o primeiro byte de dados de resposta é recebido. |
$type | Retorna o tipo de navegação sem redirecionamento. Indica como foi feita a navegação para esta página/script (Ex: navegação, recarregamento). |
$typebackforward | Tipo de navegação através do histórico da sessão. |
$typenavigate | Retorna o tipo da última navegação sem redirecionamento, por exemplo: clicando em um link, digitando a URL na barra de endereço ou enviando um formulário. |
$typereload | Tipo de navegação para a operação de recarregamento, ou seja, quando a página foi recarregada. |
$typereserved | Qualquer tipo de navegação não definida por aqueles mencionados anteriormente (tipoNavigate, tipoReload). |
$userAgent | Ele identifica o navegador UA do cliente. |
WAF
Caso tenha contratado o produto Web Application Firewall, o data source WAF Events apresentará as requisições analisadas pelo WAF para permitir que você mapeie o score atribuído a requisição, as regras de WAF que deram match, o motivo do bloqueio e muito mais.
Variável | Descrição |
---|---|
$attack_family | Informa as famílias de ataques, categorias onde nosso Web Application Firewall identifica o ataque e classifica-o conforme o OWASP Top 10. |
$blocked | Informa se o WAF bloqueou ou não a ação; 0 quando não bloqueado e 1 quando bloqueado Quando em “Learning Mode”, não será bloqueado, independente do retorno. |
$client_id | Identificador único de cliente Azion. |
$geoloc_country_name | Nome do país do cliente remoto, por exemplo “Russian Federation”, “United States”. Detecção por geolocalização de endereço IP. |
$host | Informação de Host enviada na linha de requisição; ou campo Host do cabeçalho HTTP. |
$remote_address | Endereço IP da origem que gerou a requisição. |
$server_protocol | O protocolo da conexão estabelecida, usualmente “HTTP/1.1” ou “HTTP/2.0”. |
$time | Data e hora da requisição. |
$total_blocked | Informa o número total de requisições bloqueadas. |
$total_processed | Informa o número de requisições processadas. |
$waf_action | Informa o tipo ação tomada pelo WAF ($PASS, $BLOCK, $LEARNING_PASS). |
$waf_args | Os argumentos da requisição. |
$waf_learning | Informa se o WAF está em modo learning, usualmente 0 ou 1. |
$waf_match | Lista de infrações encontradas na request, é formada por elementos chave-valor; a chave é referente ao tipo de infração detectada; o valor apresenta a string que gerou a infração. |
$waf_score | Informa a pontuação que será incrementada em caso de match. |
$waf_server | Hostname utilizado na requisição. |
$waf_uri | URI utilizada na requisição. |
2. Time Filter
O Real-Time Events armazena os eventos das últimas 168 horas. O Time Filter possibilita que você refine o resultado da busca de eventos e vem por padrão selecionado para Last 15 minutes, mas você pode alterar a abrangência da busca selecionando:
- Last 15 minutes
- Last 30 minutes
- Last 1 hour
- Last 3 hours
- Last 6 hours
- Last 12 hours
- Last day
- Last 2 days
- Last 3 days
- Last 5 days
- Last 7 days
Observação: usando o campo Custom, você também pode personalizar sua busca selecionando um intervalo de tempo durante as últimas 168 horas.
3. Filter by
No campo Filter by, você pode filtrar, opcionalmente, os resultados da pesquisa usando uma palavra-chave ou frase.
Ao enviar uma pesquisa com o campo Filter by em branco, você obterá todos os registros existentes na Data Origin para o filtro de tempo selecionado.
As buscas são restritas a um determinado campo, usando a seguinte notação: key='value'
, tal como status='200'
. Neste caso, você filtrará apenas os registros que têm estes par, valor e chave especificados. Como chave, você pode utilizar as variáveis das tabelas acima, mas observe que cada Data Source tem sua própria lista de variáveis.
O filtro por tempo é feito utilizando os campos Time Filter ou Custom, por este motivo não é possível utilizar a chave “timestamp” no filtro.
Você pode procurar por composições de campo mais complexas. Use as notações AND, OR e NOT no campo de busca para combinar os campos, tais como status='200' AND scheme='https'
.
O campo Filter by utiliza a linguagem SQL, portanto você deve usar “igual” (=) após a chave e “aspas simples” ( ‘ ) em torno de valores, por exemplo: status='200'
.
Se você pretende buscar um valor mais genérico, você pode usar o operador “like” em vez de “igual”, exatamente como você usa nas consultas SQL. A consulta final para esta busca pode ser host like '%mydomain%'
.
4. Refresh
A busca retorna sempre os resultados ordenados pelo horário de ocorrência do evento, do mais recente para o mais antigo.
Você pode utilizar o botão Refresh para atualizar os dados retornados, repetindo a última busca realizada.
Não encontrou o que procurava? Abra um ticket.