1 of 20
2 of 20
3 of 20
4 of 20
5 of 20
6 of 20
7 of 20
8 of 20
9 of 20
10 of 20
11 of 20
12 of 20
13 of 20
14 of 20
15 of 20
16 of 20
17 of 20
18 of 20
19 of 20
20 of 20

site

doc

blog

success stories

Data Streaming

Edite no GitHub

Data Streaming é um produto de Edge Analytics que permite a você alimentar suas plataformas de SIEM, big data e stream processing com dados de acesso ao seu conteúdo e aplicações em tempo real, adicionando ainda mais inteligência ao seu negócio.

Essa integração permite que você analise o comportamento de seus usuários e da performance dos seus conteúdos, aplicações e troubleshooting, de forma simples e ágil.

Além disso, o Data Streaming segue as boas práticas de tráfego de informações, utilizando a codificação ASCII para evitar problemas de parser, ou seja, na interpretação dos dados.

  1. Acessar o Data Streaming

  2. Selecionar o Data Source

  3. Utilizar um Template

  4. Associar Domains

  5. Definir o Endpoint

    Apache Kafka          AWS Kinesis Data Firehose          Data Dog

    Elasticsearch          Google BigQuery          IBM QRadar

    Simple Storage Service          Splunk         Standard HTTP/HTTPS POST

  6. Personalizar o Payload

  7. Ativar suas Configurações


1. Acessar o Data Streaming

Acesse o Real-Time Manager. Clique em Data Streaming no menu de Edge Analytics ou em Products, no menu superior esquerdo. Configure seu Data Streaming conforme as possibilidades a seguir.

Os campos marcados com asterisco são obrigatórios.


2. Selecionar o Data Source

A primeira etapa é a escolha do Data Source, que representa a aplicação na Azion que gerou os registros de eventos. Para isso, você deve selecionar de onde seus dados serão coletados, com as seguintes opções:

Edge Applications

Apresenta os dados de requisições realizadas às suas edge applications na Azion.

Variável Descrição
$bytes_sent Bytes enviados para o usuário, incluindo cabeçalho e corpo.
$client Identificador único de cliente Azion.
$configuration Identificador único de configuração Azion.
$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 HTTP Status Code da origem (”-” em caso de cache).
$remote_addr Endereço IP da requisição.
$remote_port Porta remota da requisição.
$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.
$requestPath A URI da requisição sem a informação da Query String, Host e Protocol.
$requestQuery Somente os parâmetros da URI da requisição.
$scheme Esquema da requisição: “http” ou “https”.
$sent_http_content_type Cabeçalho “Content-Type” enviado na resposta da origem.
$sent_http_x_original_image_size Cabeçalho “X-Original-Image-Size” enviado na resposta da origem (utilizado pela IMS para informar tamanho da imagem original).
$server_protocol O protocolo da conexão estabelecida, usualmente “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 por geolocalização de endereço IP.
$status O código do status da requisição, por exemplo: 200
$tcpinfo_rtt Tempo em microsegundos do RTT medido pela Edge para o usuário.
$time Data e hora da requisição.
$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 da Edge Pode assumir os valores “MISS”, “BYPASS”, “EXPIRED”, “STALE”, “UPDATING”, “REVALIDATED” ou “HIT”.
$upstream_connect_time Tempo em milisegundos para a Edge estabelecer uma conexão com a origem (“0” em caso de KeepAlive e “-“ em caso de cache).
$upstream_header_time Tempo em milissegundos para que o Edge receba os cabeçalhos de resposta da origem (“-“ no caso de cache).
$upstream_response_time Tempo em milisegundos para a Edge receber toda a resposta da origem, incluindo cabeçalhos e corpo (“-“ em caso de cache).
$upstream_status HTTP Status Code da origem (“-“ em caso de cache).
$waf_attack_action Informa a ação do WAF perante a ação ($BLOCK, $PASS, $LEARNING_BLOCK, $LEARNING_PASS).
$waf_attack_family Informa a classificação da infração de WAF detectada na requisição (SQL, XSS, TRAVERSAL, entre outros)

Edge Functions

Caso tenha contratado Edge Functions, utilize as seguintes variáveis disponíveis para o data source definido.

Variável Descrição
$time Data e hora da requisição.
$global_id Identificador da configuração.
$edge_function_id Identificador da Edge Function.
$request_id Identificador da requisição.
$log_level Nível do log gerado (ERROR, WARN, INFO, DEBUG, TRACE).
$log_message Mensagem usada para o log na chamada da função.

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 à requisição, às regras de WAF que deram match, ao motivo do bloqueio e muito mais.

Variável Descrição
$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 Identificador único de cliente Azion.
$configuration Identificador único de configuração Azion.
$country Nome do país do cliente remoto, por exemplo “Russian Federation”, “United States”. Detecção por geolocalização de endereço IP.
$headers Cabeçalhos da requisição analisados pelo WAF.
$host Informação de Host enviada na linha de requisição; ou campo Host do cabeçalho HTTP.
$remote_addr Endereço IP da requisição.
$requestPath A URI da requisição sem a informação da Query String, Host e Protocol.
$requestQuery Somente os parâmetros da URI da 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.
$version A versão do Azion Log utilizada.
$waf_args Os argumentos da requisição.
$waf_attack_action Informa a ação do WAF perante a ação ($BLOCK, $PASS, $LEARNING_BLOCK, $LEARNING_PASS).
$waf_attack_family Informa a classificação da infração de WAF detectada na requisição (SQL, XSS, TRAVERSAL, entre outros).
$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.

3. Utilizar um Template

O template representa uma seleção de variáveis que devem ser coletadas e um formato para transferência. Você pode selecionar templates criados e mantidos pela Azion ou customizar sua própria seleção.

  • Custom Template:

    Selecione a opção Custom Template para criar seu próprio Data Set personalizado, no formato JSON, e selecionar as variáveis mais adequadas às suas necessidades.

Consulte a lista de Data Sources, onde você encontra uma descrição de todas as variáveis disponíveis. Experimente!

Por padrão, o Data Streaming enviará seus eventos quando o bloco atingir 2.000 registros ou a cada 60 segundos, o que ocorrer primeiro. Mas no caso de você escolher o endpoint AWS Kinesis Firehose, o Data Streaming enviará seus eventos quando o bloco atingir 500 registros ou a cada 60 segundos.

Seus registros serão separados pelo caractere \n e enviados no payload para seu endpoint.


4. Associar Domains

Você pode associar ao Data Streaming um ou mais de seus domínios cadastrados na Azion.

Ao associar um domínio ao Data Streaming, os eventos associados a esse domínio serão coletados e enviados para seu endpoint.

Você também pode definir o percentual de dados que deseja receber do seu Data Streaming através da opção Sampling. Além de filtrar por amostragem, ainda pode reduzir custos para recebimento e análise dos dados.

  • Sampling
  1. Selecione a opção All Domains para habilitar a opção Sampling.
  2. Insira o número relativo ao percentual de dados que deseja receber. Este percentual retornará o total de dados relativo a todos os seus domínios.

Quando a opção Sampling estiver ativada, é permitido incluir apenas um Data Streaming. Caso esse Data Streaming seja desativado, a opção Add Data Streaming será habilitada novamente.


5. Definir o Endpoint

Endpoint é o destino para onde você deseja enviar os dados coletados pela Azion. O tipo de endpoint representa o método em que seu endpoint está configurado para receber os dados do Data Streaming.

Veja a seguir como configurar os endpoints disponíveis no Real-Time Manager.

Apache Kafka

Para que o Data Streaming envie os dados para um endpoint Kafka em sua infraestrutura, antes você precisa obter as seguintes informações para preencher os campos do Real-Time Manager.

  • Bootstrap Servers: refere-se aos servidores no cluster do Kafka, no formato host1:port1,host2:port2,…, por exemplo.

Você poderá a adicionar um ou mais servidores Kafka para receber os dados coletados pelo Data Streaming. Ao incluir múltiplos servidores, separe cada host:door com uma vírgula e sem espaço, conforme este exemplo:

myownhost.com:2021,imaginaryhost.com:4525,anotherhost:4030

Essa lista não precisa conter todos os servidores de seu cluster, apenas alguns servidores que serão utilizados para a conexão inicial.

Recomendamos que você utilize mais de um servidor para aumentar a redundância e disponibilidade.

  • Kafka Topic: refere-se ao Topic para onde o Data Streaming deverá enviar mensagens em seu cluster. Este campo aceita apenas um Topic.

Nesse campo, você deve informar o nome do Topic onde serão postadas as mensagens. Mesmo que vários endereços tenham sido cadastrados no campo Bootstrap Servers, você pode cadastrar apenas um tópico de destino.

Por exemplo: azure.analytics.fct.pageviews.0

Para mais detalhes sobre as configurações do Apache Kafka, consulte aqui.

AWS Kinesis Data Firehose

Ao usar esse tipo de endpoint, o serviço de Data Streaming envia os dados diretamente para o serviço AWS Kinesis Data Firehose.

Quando você usar o AWS Kinesis Data Firehose, seus eventos serão agrupados em blocos de até 500 registros, em vez do padrão de 2.000, ou a cada 60 segundos, o que ocorrer primeiro.

  • Stream Name: refere-se ao nome do stream que o usuário definiu ao criar o Kinesis Data Firehose. Por exemplo: MyKDFConnector
  • Region: refere-se à região para a qual vamos enviar os dados.

    Por exemplo: us-east-1.

  • Access Key: refere-se à chave pública para acessar o Data Firehose, que é fornecida pela AWS.

    Por exemplo:* ORIA5ZEH9MW4NL5OITY4

  • Secret Key: refere-se à chave secreta para acessar o Data Firehose, que é fornecida pela AWS.

    Por exemplo: +PLjkUWJyOLth3anuWXcLLVrMLeiiiThIokaPEiw

Data Dog

A utilização deste tipo de endpoint faz com que o serviço de Data Streaming envie os dados para um endpoint Data Dog em sua infraestrutura.

  • Data Dog URL: (obrigatório) refere-se à URI que receberá os dados coletados do Data Streaming.
  • API Key: (obrigatório) refere-se à chave gerada por meio do painel do Data Dog e exclusiva para a sua empresa. A API Key é exigida pelo agente do Data Dog para poder enviar as métricas e os eventos ao Data Dog.

    Por exemplo: ij9076f1ujik17a81f938yhru5g713422

Elasticsearch

A utilização deste tipo de endpoint faz com que o serviço de Data Streaming envie os dados para um endpoint Elasticsearch em sua infraestrutura.

  • Elasticsearch URL: (obrigatório) refere-se ao endereço da URL mais o index do ElasticSearch que irá receber os dados coletados do Data Streaming.

    O usuário deve cadastrar aqui a URL de destino dos dados, seguido pelo index. Por exemplo: https://elasticsearch-domain.com/myindex

  • API Key: (obrigatório) refere-se à chave em base 64 fornecida pelo Elasticsearch e que será usada para a validação junto ao mesmo.

    Quando gerada, a chave ficará como no exemplo:

    VuaCfGcBCdbkQm-e5aOx:ui2lp2axTNmsyakw9tvNnw

Google BigQuery

A utilização deste tipo de endpoint faz com que o serviço de Data Streaming envie os dados para um endpoint Google BigQuery em sua infraestrutura.

  • Project ID: refere-se ao ID do seu projeto no Google Cloud. Esse ID é único e pode ter sido gerado pelo Google ou personalizado pelo cliente.

    Exemplo: mycustomGBQproject01

  • Dataset ID: refere-se ao ID do seu dataset no Google BigQuery, ou seja, é o nome que o usuário atribui ao seu conjunto de dados. Ele é único por projeto e diferencia maiúsculas de minúsculas.

    Exemplo: myGBQdataset

  • Table ID: refere-se ao ID da sua tabela no Google BigQuery, ou seja, é o nome que o usuário define para a tabela. Assim como o nome do dataset precisa ser único por projeto, o nome da tabela também precisa ser único por dataset.

    Exemplo: mypagaviewtable01

  • Service Account Key: refere-se ao arquivo JSON fornecido pelo Google Cloud, que possui a chave a ser usada para autenticação junto aos serviços do Google. Ele possui o seguinte formato:

{
    "type": "service_account",
    "project_id": "mycustomGBQproject01",
    "private_key_id": "key-id",
    "private_key": "-----BEGIN PRIVATE KEY-----\nprivate-key\n-----END PRIVATE KEY-----\n",
    "client_email": "service-account-email",
    "client_id": "client-id",
    "auth_uri": "https://accounts.google.com/o/oauth2/auth",
    "token_uri": "https://accounts.google.com/o/oauth2/token",
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/service-account-email"
}

IBM QRadar{#IBM}

A utilização deste tipo de endpoint faz com que o serviço de Data Streaming envie os dados no payload de um POST HTTP para o processamento em sua plataforma.

  • URL: refere-se à URL configurada em sua plataforma para receber os dados do Data Streaming.

S3 - Simple Storage Service

A utilização deste tipo de endpoint faz com que o serviço de Data Streaming envie os dados diretamente para qualquer storage que trabalhe com o protocolo S3, como por exemplo o Amazon S3, Cloud Storage, entre outros.

  • Host URL: refere-se à URL do seu Host S3.

    Você pode conectar com qualquer provedor que trabalhe com o protocolo S3.

    Por exemplo: http://myownhost.s3.us-east-1.myprovider.com

  • Bucket Name: refere-se ao nome do Bucket que o objeto será enviado.

    É importante que o Bucket já esteja criado para que o Data Streaming possa enviar os objetos.

    Você define o nome do bucket. Por exemplo: mys3bucket

  • Region: refere-se à região na qual o Bucket está hospedado.

    Por exemplo: us-east-1.

  • Access Key: refere-se à chave pública para acesso ao Bucket fornecida pelo seu provedor.

    Por exemplo: ORIA5ZEH9MW4NL5OITY4

  • Secret Key: refere-se à chave secreta para acesso ao Bucket fornecida pelo seu provedor.

    Por exemplo: +PLjkUWJyOLth3anuWXcLLVrMLeiiiThIokaPEiw

  • Object Key Prefix: refere-se a um prefixo que você pode adicionar aos arquivos que serão enviados.

    Os nomes dos objetos são compostos de Prefixo + Timestamp + UUID.

    Por exemplo, se você usar waf_logs como prefixo, um dos objetos enviados será salvo desta forma: waf_logs_1622575860091_37d66e78-c308-4006-9d4d-1c013ed89276

  • Content Type: é o formato em que o objeto será criado no Bucket.

    Conta com as opções plain/text e application/gzip.

Com base nesses exemplos, ao configurar a seção Destination, você obtém o seguinte:

DS

Splunk

Ao usar esse tipo de endpoint, o serviço do Data Streaming envia dados para um endpoint Splunk em sua infraestrutura.

  • Splunk URL: (obrigatório) refere-se à URL que receberá os dados coletados do Data Streaming. Se você tiver um índice alternativo para indicar, pode colocar no final da URL. Por exemplo: https://inputs.splunkcloud.com:8080/services/collector?index=myindex
  • API Key: (obrigatório) refere-se ao token do HTTP Event Collector, fornecido pela instalação do Splunk. Exemplo de token: crfe25d2-23j8-48gf-a9ks-6b75w3ska674

Standard HTTP/HTTPS POST

A utilização deste tipo de endpoint faz com que o serviço de Data Streaming envie os dados no payload de um POST HTTP para o processamento em sua plataforma.

  • Endpoint URL: refere-se à URL configurada em sua plataforma para receber os dados do Data Streaming.

    Utilize o formato scheme://domain/path. Por exemplo: https://app.domain.com/

  • Custom Headers: você pode informar um ou mais cabeçalhos customizados para a sua requisição HTTP/HTTPS. Para a configuração dos headers, é necessário informar o Nome e o Valor para cada cabeçalho.

    Por exemplo, se você deseja informar a autorização e a chave secreta, seus cabeçalhos personalizados ficarão assim:

    customheader


6. Personalizar o Payload

Você também pode personalizar o Payload enviado pelo conector conforme as opções a seguir.

  • Log Line Separator: (opcional) define o tipo de informação que vai ser utilizada ao final de cada linha de log.
  • Payload Format: (opcional) define qual informação vai estar no inicio e no final do dataset.

Por exemplo, se o Log Line Separator receber , e o Payload Format receber [&dataset], o usuário receberá o seguinte código de saída:

    [
    	{
			"request_method": "GET",
         	"host": "statis.exampledomain.com.br",
          "status": "200"
        },
        {
        	"request_method": "GET",
          	"host": "statis.exampledomain.com.br",
          	"status": "200"
        }
	]

Esta funcionalidade está disponível apenas para o endpoint HTTP POST.


7. Ativar suas Configurações

Na parte inferior da tela, você encontra as seguintes opções:

  • Active: ligue o botão Active para habilitar suas configurações no sistema.
  • Cancel: com esta opção, você retorna à página inicial do Data Streaming, também descarta qualquer edição.
  • Save: concluídas as suas seleções, salve suas configurações clicando no botão Save.

Não encontrou o que procurava? Abra um ticket.