Endpoints
Consulte os 11 tipos de endpoint para os quais um stream envia as linhas de log, com cada campo, tipo e limite no Azion Console e na Azion API.
Um endpoint é a plataforma que recebe as linhas de log que um stream do Data Stream entrega: um SIEM, uma plataforma de big data, uma plataforma de processamento de streams, um servidor HTTP ou um bucket. Cada stream envia para um endpoint. Azion Console o define na seção Output do formulário do stream, onde o campo se chama Connector e cada opção mostra os seus próprios campos. A API carrega o endpoint em outputs[0]: o tipo do endpoint vai em outputs[0].type, e os seus campos vão em outputs[0].attributes.
| Opção no Console | type na API | Credencial |
|---|---|---|
| Standard HTTP/HTTPS POST | standard | Os headers personalizados que você define |
| Apache Kafka | kafka | Nenhuma |
| Simple Storage Service (S3) | s3 | Access key e secret key |
| Google BigQuery | big_query | Chave de conta de serviço |
| Elasticsearch | elasticsearch | API key codificada |
| Splunk | splunk | Token do HTTP Event Collector |
| AWS Kinesis Data Firehose | aws_kinesis_firehose | Access key e secret key |
| Datadog | datadog | API key |
| IBM QRadar | qradar | Nenhuma |
| Azure Monitor | azure_monitor | Shared key |
| Azure Blob Storage | azure_blob_storage | Token SAS |
Nas tabelas abaixo, a coluna Obrigatório traz a regra da API. Onde o Console difere, a célula cita os dois. O Console marca com um asterisco cada campo que exige. Toda requisição a /v4/workspace/stream/streams leva o header Authorization: Token [TOKEN VALUE].
Standard HTTP/HTTPS POST
Standard HTTP/HTTPS POST envia as linhas de log no corpo de requisições POST para uma URL que você escolhe. Use-o para qualquer plataforma que recebe dados por HTTP ou HTTPS e não tem uma opção própria na lista Connector.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| URL | outputs[0].attributes.url | string, URL | Sim | Uma URL que começa com http:// ou https:// | A URL que recebe as linhas de log, como https://app.domain.com/. |
| Payload Format | outputs[0].attributes.payload_format | string | Sim no Console, não na API | 1 a 250 caracteres | O corpo de cada requisição. $dataset representa as linhas de log do lote, unidas pelo separador. Padrão $dataset. |
| Payload Log Line Separator | outputs[0].attributes.log_line_separator | string | Sim no Console, não na API | 1 a 100 caracteres | Os caracteres no fim de cada linha de log. Padrão \n, que coloca uma linha de log por linha, no formato NDJSON. |
| Payload Max Size | outputs[0].attributes.max_size | integer, bytes | Não | 1.000.000 a 2.147.483.647 bytes | O tamanho máximo de cada pacote de dados. Padrão 1000000 no Console, e null quando uma requisição à API o omite. |
| Custom Headers | outputs[0].attributes.headers | object | Sim. A API aceita {}; o Console exige pelo menos um header, como name:value | Cada valor com 1 a 1.024 caracteres. O Console comporta até cinco headers. | Os headers que cada requisição leva, como uma chave de acesso que a plataforma exige. O Console recebe uma linha Header por header, escrita header-name:value. A API recebe um objeto de nomes e valores de headers, e {} não envia nenhum. |
Para saber como o Payload Format, o separador e o template montam o corpo da requisição, consulte Templates e payload. Para os passos, consulte Envie logs para um endpoint HTTP.
Apache Kafka
Apache Kafka envia as linhas de log como mensagens para um tópico de um cluster Kafka.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| Bootstrap Servers | outputs[0].attributes.bootstrap_servers | string | Sim | 1 a 150 caracteres | Os hosts e as portas do cluster, separados por vírgula e sem espaço, como myownhost.com:2021,imaginaryhost.com:4525,anotherhost:4030. Apenas os servidores da conexão inicial são necessários, não todos os servidores do cluster. |
| Kafka Topic | outputs[0].attributes.kafka_topic | string | Sim | 1 a 150 caracteres. Um tópico. | O tópico que recebe as mensagens, como analytics.fct.pageviews.0. |
| Enable Transport Layer Security (TLS) | outputs[0].attributes.use_tls | boolean | Sim na API. O Console mostra uma chave. | true ou false | true envia os dados criptografados com Transport Layer Security (TLS). |
Com o TLS ativado, os servidores de destino precisam de um certificado digital de uma autoridade certificadora (CA) confiável, como IdenTrust, DigiCert, Sectigo, GoDaddy, GlobalSign ou Let’s Encrypt. Para os passos, consulte Envie logs para o Apache Kafka.
Simple Storage Service (S3)
Simple Storage Service (S3) grava as linhas de log como objetos em um bucket. Aceita qualquer provedor que funcione com o protocolo S3, inclusive Object Storage.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| URL | outputs[0].attributes.host_url | string, URL | Sim | 1 a 200 caracteres, com o esquema | O host S3, como https://myownhost.s3.us-east-1.myprovider.com. Para o Amazon S3, o endpoint padrão da AWS https://s3.amazonaws.com funciona. |
| Bucket Name | outputs[0].attributes.bucket_name | string | Sim | 1 a 150 caracteres | O bucket que recebe os objetos, como mys3bucket. O bucket deve existir antes de o stream enviar para ele. |
| Region | outputs[0].attributes.region | string | Sim | 1 a 50 caracteres | A região do bucket, como us-east-1. |
| Access Key | outputs[0].attributes.access_key | string | Sim | 1 a 150 caracteres | A chave pública da credencial. Campo mascarado no Console. |
| Secret Key | outputs[0].attributes.secret_key | string | Sim. O Console a exige apenas na criação. | 1 a 150 caracteres | A chave secreta da credencial. Campo mascarado no Console. Na edição, o Console não envia uma Secret Key vazia. |
| Object Key Prefix | outputs[0].attributes.object_key_prefix | string ou null | Não | 1 a 150 caracteres | O início do nome de cada objeto, como user/logs. Sem prefixo, os objetos vão para a raiz do bucket. Campo mascarado no Console. |
| Content Type | outputs[0].attributes.content_type | enum | Sim | plain/text ou application/gzip | O formato de cada objeto. Com plain/text, o objeto guarda uma linha de log por linha. |
Cada nome de objeto é o Object Key Prefix, uma /, a data e a hora do envio no formato YYYY/MM/DD/hh/mm/ e um UUID. Com o prefixo activity, um nome de objeto fica activity/2026/01/01/12/02/11111111-1111-1111-1111-111111111111. Data Stream adiciona a / depois do prefixo.
A credencial precisa de permissão para listar o bucket e para gravar objetos nele. No Amazon S3, essas são as permissões s3:ListBucket e s3:PutObject. Para os passos, consulte Envie logs para o Amazon S3.
Azion Object Storage
Um bucket do Object Storage usa a URL https://s3.us-east-005.azionstorage.net e a região us-east-005. A credencial S3 precisa de quatro capacidades: listAllBucketNames, listBuckets, listFiles e writeFiles. Sem listAllBucketNames e listBuckets, todo envio é registrado com status 503, e nenhum objeto chega ao bucket. A secret key de uma credencial aparece apenas uma vez, quando a credencial é criada.
A entrada de outputs abaixo envia para um bucket do Object Storage:
Para os passos, consulte Envie dados do Data Stream para o Object Storage.
Google BigQuery
Google BigQuery envia as linhas de log como linhas de uma tabela de um dataset do BigQuery.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| Project ID | outputs[0].attributes.project_id | string | Sim | 1 a 100 caracteres | O ID do projeto no Google Cloud, como mycustomGBQproject01. |
| Dataset ID | outputs[0].attributes.dataset_id | string | Sim | 1 a 1.024 caracteres, diferencia maiúsculas de minúsculas | O nome do dataset, único no seu projeto, como myGBQdataset. |
| Table ID | outputs[0].attributes.table_id | string | Sim | 1 a 1.024 caracteres | O nome da tabela que recebe as linhas, como mypagaviewtable01. |
| Service Account Key | outputs[0].attributes.service_account_key | string | Sim | 1 a 65.535 caracteres | O conteúdo do arquivo de chave JSON de uma conta de serviço do Google Cloud. O Console o recebe em um editor JSON. |
Quatro itens precisam estar prontos no Google BigQuery antes de o stream enviar:
- O dataset existe.
- A tabela existe, com um schema para os dados.
- A BigQuery API está ativada no projeto.
- O faturamento está ativado no projeto, porque o nível gratuito não aceita linhas transmitidas por streaming para uma tabela.
O Google Cloud fornece a chave da conta de serviço como um arquivo JSON com as chaves abaixo. Na API, service_account_key é uma string que contém o JSON do arquivo:
Para os passos, consulte Envie logs para o Google BigQuery.
Elasticsearch
Elasticsearch envia as linhas de log para um índice de uma instância do Elasticsearch, que pode rodar em qualquer plataforma de nuvem.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| URL | outputs[0].attributes.url | string, URL | Sim | Uma URL | O endereço da instância seguido do índice, como https://elasticsearch-domain.com/myindex. |
| Encoded API Key | outputs[0].attributes.api_key | string | Sim | 1 a 255 caracteres | O valor encoded em Base64 que o Elasticsearch retorna quando cria a API key, como VnVhQ2ZHY0JDZGJrUW0tZTVhT3g6dWkybHAyYXhUTm1zeWFrdzl0dk5udw==. |
Para os passos, consulte Envie logs para o Elasticsearch.
Splunk
Splunk envia as linhas de log para o HTTP Event Collector (HEC) de uma instância do Splunk. O token do HEC deve estar ativado no Splunk.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| URL | outputs[0].attributes.url | string, URL | Sim | Uma URL | A URL do HEC. Para enviar para outro índice, adicione-o ao fim da URL, como https://inputs.splunkcloud.com:8080/services/collector?index=myindex. |
| API Key | outputs[0].attributes.api_key | string | Sim | 1 a 255 caracteres | O token do HEC da instalação do Splunk. |
A URL do HEC depende do tipo de instância do Splunk:
| Instância do Splunk | URL do HEC |
|---|---|
| Auto-hospedada | https://<host>:<port>/services/collector/event |
| Planos self-service do Splunk Cloud | https://input-<host>:<port>/services/collector/event |
| Outros planos do Splunk Cloud | <protocol>://http-inputs-<host>:<port>/services/collector/event |
Para os passos, consulte Envie logs para o Splunk.
AWS Kinesis Data Firehose
AWS Kinesis Data Firehose envia as linhas de log para um delivery stream do Firehose que usa Direct PUT como origem. Data Stream envia para este endpoint em lotes de até 500 linhas de log ou a cada 60 segundos, o que ocorrer primeiro.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| Stream Name | outputs[0].attributes.stream_name | string | Sim | 1 a 64 caracteres | O nome do delivery stream, como MyKDFConnector. |
| Region | outputs[0].attributes.region | string | Sim | 1 a 50 caracteres | A região do delivery stream, como us-east-1. |
| Access Key | outputs[0].attributes.access_key | string | Sim | 1 a 150 caracteres | A chave pública que a AWS fornece para o delivery stream. Campo mascarado no Console. |
| Secret Key | outputs[0].attributes.secret_key | string | Sim, na criação e na edição | 1 a 150 caracteres | A chave secreta que a AWS fornece para o delivery stream. Campo mascarado no Console. |
Para os limites de lote de cada endpoint, consulte Limites de Data Stream. Para os passos, consulte Envie logs para o AWS Kinesis Data Firehose.
Datadog
Datadog envia as linhas de log para uma URL de ingestão de logs do Datadog.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| URL | outputs[0].attributes.url | string, URL | Sim | Uma URL | A URL do endpoint do Datadog, como https://http-intake.logs.datadoghq.com/v1/input. |
| API Key | outputs[0].attributes.api_key | string | Sim | 1 a 255 caracteres | A API key criada no dashboard do Datadog. |
Para os passos, consulte Envie logs para o Datadog.
IBM QRadar
IBM QRadar envia as linhas de log para uma URL de uma instância do QRadar. A URL é o único campo deste endpoint.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| URL | outputs[0].attributes.url | string, URL | Sim | Uma URL | A URL que recebe as linhas de log. |
Para os passos, consulte Envie logs para o IBM QRadar.
Azure Monitor
Azure Monitor envia as linhas de log para um workspace no Azure Monitor.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| Log Type | outputs[0].attributes.log_type | string | Sim | 1 a 100 caracteres: apenas letras, números e _ | O tipo de registro dos dados, que dá nome à tabela onde o Azure Monitor armazena os logs, como AzureMonitorTest. |
| Shared Key | outputs[0].attributes.shared_key | string | Sim | 1 a 150 caracteres | A Primary Key do workspace. Campo mascarado no Console. |
| Time Generated Field | outputs[0].attributes.time_generated_field | string ou null | Não | 1 a 50 caracteres | Opcional. Sem ele, é usado o horário de ingestão. Exemplo: myCustomTimeField. |
| Workspace ID | outputs[0].attributes.workspace_id | string | Sim | 1 a 150 caracteres | O ID do workspace. |
Para os passos, consulte Envie logs para o Azure Monitor.
Azure Blob Storage
Azure Blob Storage grava as linhas de log em um container de uma conta de armazenamento do Azure. A conta de armazenamento e o container devem existir antes de o stream enviar.
| Label no Console | Campo na API | Tipo | Obrigatório | Limites | Descrição |
|---|---|---|---|---|---|
| Storage Account | outputs[0].attributes.storage_account | string | Sim | 1 a 100 caracteres | O nome da conta de armazenamento, como mystorageaccount. |
| Container Name | outputs[0].attributes.container_name | string | Sim | 1 a 150 caracteres | O nome do container, como mycontainer. |
| Blob SAS Token | outputs[0].attributes.blob_sas_token | string | Sim | 1 a 250 caracteres | O token SAS que o Blob Storage gera, com acesso de criação, leitura, gravação e listagem. |
Para os passos, consulte Envie logs para o Azure Blob Storage.
Credenciais e campos mascarados
Uma credencial de endpoint pertence à sua conta na plataforma de destino, e o stream a usa para enviar as linhas de log que o seu template formata. Apache Kafka e IBM QRadar não têm campo de credencial. Standard HTTP/HTTPS POST leva uma credencial apenas nos headers personalizados que você define.
Azion Console mascara seis campos, com um ícone que revela o valor:
- Access Key, Secret Key e Object Key Prefix do S3.
- Access Key e Secret Key do AWS Kinesis Data Firehose.
- Shared Key do Azure Monitor.
Os outros campos de credencial mostram o seu valor no formulário: Encoded API Key, a API Key do Splunk e do Datadog, Blob SAS Token e Service Account Key. Uma conta com apenas View Data Stream vê um ícone de cadeado no lugar do ícone de revelar. Para as permissões, consulte Configurações do stream.
Erros
A API recusa cada requisição de endpoint abaixo com HTTP 400, e o stream não é salvo. O ponteiro em source.pointer nomeia o campo dentro de outputs[0].
| Código | Título | Ponteiro | Causa | O que fazer |
|---|---|---|---|---|
10050 | Min Value | /data/outputs/0/max_size | O max_size de um endpoint standard está abaixo do mínimo: Ensure this value is greater than or equal to 1000000. | Defina max_size como 1000000 ou mais, ou omita-o. |
10059 | Required Field | /data/outputs/0/headers | Um endpoint standard não tem a chave headers. | Adicione headers, como {} quando o endpoint não precisa de header. |
10059 | Required Field | /data/outputs/0/kafka_topic | Um endpoint kafka não tem a chave kafka_topic. | Adicione o tópico em kafka_topic. |
32006 e 10032 | Invalid URL Scheme e Invalid Url | /data/outputs/0/url | A url de um endpoint standard não é uma URL HTTP ou HTTPS, como not-a-url: Only http and https schemes are allowed. | Escreva a URL completa, com http:// ou https://. |
A API não testa o endpoint quando salva um stream. Um endpoint standard que responde 405 a todos os envios ainda é salvo com 201. Real-Time Events registra cada envio em dataStreamedEvents, com o tipo do endpoint, o número de linhas de log e o código de status. Um envio entregue é registrado com 200, e um envio para um endpoint indisponível, com 503. Data Stream verifica cada endpoint uma vez por minuto e descarta as linhas de log de um intervalo em que o endpoint está indisponível. Para o caminho de entrega, consulte Como o Data Stream funciona.