Envie logs para o Apache Kafka
Crie um stream que envia os logs das suas aplicações como mensagens para um tópico do Apache Kafka, no Azion Console ou com a Azion API.
Você pode enviar os logs de um stream para um tópico de um cluster do Apache Kafka pelo Azion Console ou com a Azion API. Para enviar os eventos do WAF de um firewall para um SIEM, consulte Envie eventos do WAF para um SIEM.
Data Stream envia as linhas de log como mensagens para um tópico do cluster. No formulário do stream, o endpoint é definido no campo Connector, e Apache Kafka é uma das opções dele. Para cada campo e os limites dele, consulte Endpoints.
O exemplo coleta as requisições de um workload com a fonte de dados Applications.
Selecione a interface uma vez. Os pré-requisitos e todas as tarefas abaixo mostram apenas esse caminho.
Pré-requisitos
- Uma conta Azion com a permissão Edit Data Stream. Para as permissões, consulte Configurações do stream.
- Um workload na conta que receba requisições.
- Um cluster do Apache Kafka e o host e a porta dos servidores para a conexão inicial. Você precisa apenas desses servidores, não de todos os servidores do cluster.
- O nome do tópico que recebe as mensagens. O stream envia para um único tópico.
- Para criptografar os dados com Transport Layer Security (TLS), um certificado digital nos servidores de destino, emitido por uma autoridade certificadora (CA) confiável, como IdenTrust, DigiCert, Sectigo, GoDaddy, GlobalSign ou Let’s Encrypt.
O endpoint Apache Kafka não tem campo de credencial: o stream se conecta com os endereços dos servidores, o tópico e a configuração de TLS.
- Acesso ao Azion Console. Para entrar, consulte Como acessar o Azion Console.
Crie o stream
O stream coleta do workload que você escolher, por meio de um filtro de workloads. Diferente do sampling, um filtro de workloads mantém os seus outros streams ativos.
Para criar o stream com a API, envie uma requisição POST para https://api.azion.com/v4/workspace/stream/streams. Substitua [TOKEN VALUE] pelo seu personal token, <workload-id> pelo ID do seu workload e os valores do cluster pelos seus:
A fonte de dados workloads é Applications no Console, e o template 2 é o Applications Event Collector. A API exige use_tls: envie true para criptografar os dados com TLS, ou false para enviá-los sem criptografia. A API responde 201 com o stream armazenado:
Guarde o id: ele identifica o stream em todas as requisições seguintes, como /v4/workspace/stream/streams/12348. Para cada chave do corpo, consulte Configurações do stream.
A API e o Console salvam o stream sem contatar o cluster. Um endereço de servidor ou um tópico errado só aparece quando o stream envia. Uma ativação entra em vigor depois de um a dois minutos.
Confirme a entrega
Real-Time Events registra cada envio de um stream, entregue ou não, com o código de status que o endpoint retornou. Envie algumas requisições ao workload e aguarde cerca de um minuto. Um stream envia um lote a cada 60 segundos, ou antes, quando chega a 2.000 linhas de log.
Para ler os envios com a API, faça uma query no dataset dataStreamedEvents da API GraphQL do Real-Time Events. Substitua as datas por um intervalo que cubra a ativação do stream:
A API responde 200 com um registro para cada envio, o mais recente primeiro:
Um envio para o Apache Kafka traz KAFKA em endpointType. Um statusCode 200 significa que o endpoint aceitou o lote, e streamedLines e dataStreamed dão o tamanho dele em linhas de log e em bytes. Uma lista dataStreamedEvents vazia significa que o stream não enviou nada no intervalo. Para cada campo, consulte Campos da API GraphQL do Real-Time Events.
Um status diferente de 200 é a resposta do endpoint, e 503 significa que Data Stream encontrou o endpoint indisponível. Para as causas, consulte Solucionar problemas de Data Stream.