Envie logs para o Elasticsearch
Crie um stream que envia os logs das suas aplicações para um índice do Elasticsearch, pelo Azion Console ou pela API, e confirme a entrega.
Você pode enviar os logs de um stream para um índice do Elasticsearch pelo Azion Console ou com a Azion API.
Data Stream envia cada lote de linhas de log para o índice que encerra a URL do endpoint. No formulário do stream, o endpoint é definido no campo Connector, e Elasticsearch é uma das opções dele. Para cada campo e seus limites, 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 da conta que receba requisições.
- Uma instância do Elasticsearch. Ela pode rodar em qualquer plataforma de nuvem, como um deployment do Elastic Cloud.
- A URL da instância seguida do nome do índice, como
https://elasticsearch.example.com/azion-logs. No Elastic Cloud, a ação Copy endpoint do deployment fornece o endereço da instância. - Uma API key do Elasticsearch. Quando o Elasticsearch cria a chave, ele retorna um valor
encodedem Base64. Data Stream recebe esse valorencoded. No Elastic Cloud, você cria a chave no API console do deployment.
- Acesso ao Azion Console. Para entrar, consulte Acessar Azion Console.
Crie o stream
O stream coleta do workload que você escolher, por meio de um filtro de workloads. Salvar um stream com sampling desativa seus outros streams, e um filtro de workloads não.
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, [API KEY] pelo valor encoded da sua API key e a URL pela sua:
A fonte de dados workloads é Applications no Console, e o template 2 é o Applications Event Collector. A API responde 201 com o stream armazenado:
O id identifica o stream em todas as requisições seguintes, como /v4/workspace/stream/streams/12351. Para cada chave do corpo, consulte Configurações do stream.
A API e o Console salvam o stream sem contatar a instância. Uma URL, um índice ou uma API key errados só aparecem 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 o lote chega a 2.000 linhas de log.
Para ler os envios com a API, consulte o 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, do mais recente para o mais antigo:
Para um stream que envia ao Elasticsearch, endpointType traz ELASTICSEARCH. 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 o Data Stream encontrou o endpoint indisponível. Para as causas, consulte Solucionar problemas de Data Stream.