O Alibaba Cloud Elasticsearch oferece suporte a quatro métodos de coleta de dados: Elastic Beats, Logstash, clientes do Elasticsearch e console do Kibana. Escolha o método mais adequado com base no tipo de dado, nos requisitos de transformação e na origem dos dados (infraestrutura, aplicações ou interação direta via API).
O Elasticsearch é amplamente utilizado em diversos cenários, incluindo pesquisa em aplicações, pesquisa em sites, logs, monitoramento de infraestrutura, monitoramento de desempenho de aplicações (APM) e análise de segurança. As soluções para esses cenários são gratuitas. Antes de utilizá-las, importe os dados necessários para o Elasticsearch.
Escolha um método de coleta
Comece pela opção mais simples que atenda aos seus requisitos.
|
Seu cenário |
Método recomendado |
|
Coleta de logs, métricas ou eventos de sistema em servidores, dispositivos de borda ou sensores IoT |
Elastic Beats |
|
Coleta dos mesmos tipos de dados com necessidade de enriquecimento, roteamento condicional ou múltiplas saídas |
Logstash |
|
Envio de dados programaticamente pelo código da aplicação |
Clientes do Elasticsearch |
|
Teste, depuração de requisições do Elasticsearch ou indexação de documentos individuais |
Console do Kibana |
Se suas necessidades não estiverem claras, comece com o Beats. Ele tem a menor sobrecarga de configuração e atende à maioria dos cenários de coleta de logs e métricas. Adote o Logstash apenas quando os módulos do Beats não atenderem aos requisitos de transformação ou roteamento.
Elastic Beats
O Beats é um conjunto de agentes leves para envio de dados. Cada agente foca em um tipo específico de dado e opera com consumo mínimo de recursos. Isso torna o Beats a escolha padrão para dispositivos de borda, sensores IoT, firewalls e qualquer host onde um agente mais pesado seja inviável.
O Beats também funciona em servidores com recursos completos. Quando as necessidades de coleta são simples, configurar o Beats é mais rápido do que configurar o Logstash. Módulos pré-construídos cuidam da análise, indexação e configuração de painéis para stacks de software comuns. Uma implantação básica geralmente leva menos de cinco minutos.
Agentes disponíveis
|
Agente |
O que coleta |
Principais fontes de dados |
|
Filebeat |
Arquivos de log e fluxos de texto |
Arquivos, TCP, UDP, contêineres, Redis, syslogs; módulos para Apache, MySQL, Kafka |
|
Metricbeat |
Métricas de sistema e serviços |
CPU, memória, disco, rede, processos em execução; módulos para Kafka, Redis, Palo Alto Networks |
|
Packetbeat |
Tráfego de rede em tempo real |
DHCP, DNS, HTTP, MongoDB, NFS, TLS; análise de segurança e APM |
|
Winlogbeat |
Logs de eventos do Windows |
Eventos de aplicação, hardware, segurança e sistema |
|
Auditbeat |
Integridade de arquivos e eventos de auditoria |
Framework de auditoria do Linux; análise de segurança |
|
Heartbeat |
Disponibilidade de serviços |
Sondas ICMP, TCP, HTTP; monitoramento de infraestrutura |
|
Functionbeat |
Logs e métricas serverless |
AWS Lambda e outros ambientes serverless |
Para um exemplo prático com o Metricbeat, consulte Usar Metricbeat autogerenciado para coletar métricas do sistema. Os demais agentes seguem o mesmo padrão de configuração.
Logstash
O Logstash lê, transforma e roteia dados de praticamente qualquer fonte. Ele executa tarefas complexas de enriquecimento impossíveis apenas com o Beats, como consultar fontes de dados externas, aplicar lógica condicional ou rotear eventos para múltiplas saídas simultaneamente.
O Logstash exige mais CPU e memória do que o Beats. Não o utilize em dispositivos com poucos recursos. Use o Logstash quando seus requisitos de transformação ultrapassarem as capacidades dos módulos do Beats.
O Alibaba Cloud Logstash é um serviço totalmente gerenciado. Você não precisa provisionar ou manter a infraestrutura do Logstash. Ele é compatível com todos os recursos do Logstash open source e pode coletar dados de várias fontes ao mesmo tempo.
Componentes do pipeline
Um pipeline do Logstash consiste em três estágios:
Plugins de entrada: leem dados de arquivos, endpoints HTTP, IMAP, JDBC, Kafka, syslogs, TCP ou UDP.
Plugins de filtro: analisam e enriquecem os dados. O plugin de filtro Grok processa expressões regulares, CSV, JSON e pares chave-valor. Outros plugins adicionam geolocalização de IP, consultas DNS ou buscas de valores em diretórios personalizados e índices do Elasticsearch. O plugin mutate renomeia, copia ou remove campos.
Plugins de saída: gravam os resultados em um destino. O plugin de saída do Elasticsearch envia os dados processados para o seu cluster.
Exemplo: ingerir um feed RSS
O pipeline a seguir lê o feed RSS do Elastic Blogs, remove tags HTML e envia os dados limpos para o Elasticsearch.
Pré-requisitos
Antes de começar, confirme:
Você possui uma instância do Alibaba Cloud Logstash.
Você possui um cluster do Alibaba Cloud Elasticsearch com endpoint interno conhecido e credenciais de acesso.
Há conectividade de rede entre a instância do Logstash e o cluster do Elasticsearch.
Configure o pipeline
input {
rss {
url => "https://www.elastic.co/blog/feed"
interval => 120
}
}
filter {
mutate {
rename => [ "message", "blog_html" ]
copy => { "blog_html" => "blog_text" }
copy => { "published" => "@timestamp" }
}
mutate {
gsub => [
"blog_text", "<.*?>", "",
"blog_text", "[\n\t]", " "
]
remove_field => [ "published", "author" ]
}
}
output {
stdout {
codec => dots
}
elasticsearch {
hosts => [ "https://<your-elasticsearch-internal-endpoint>:9200" ]
index => "elastic_blog"
user => "elastic"
password => "<your-elasticsearch-password>"
}
}
Substitua os seguintes placeholders antes de executar o pipeline:
|
Placeholder |
Descrição |
Exemplo |
|
|
Endpoint interno do seu cluster Elasticsearch |
|
|
|
Senha do usuário |
— |
Verifique os resultados
Após a execução do pipeline, consulte o índice pelo console do Kibana:
POST elastic_blog/_search
Para obter detalhes sobre como ler os resultados da consulta, consulte Etapa 3: Visualizar resultados da sincronização.
Clientes do Elasticsearch
Os clientes do Elasticsearch são bibliotecas específicas para cada linguagem que abstraem os detalhes de baixo nível das requisições HTTP da API RESTful. Utilize os clientes quando sua aplicação precisar indexar ou consultar dados programaticamente. Também é possível usar a API RESTful para gerenciar clusters e índices do Elasticsearch.
As linguagens com suporte oficial incluem Java, JavaScript, Go, .NET, PHP, Perl, Python e Ruby. Para documentação completa e exemplos de código, consulte Clientes do Elasticsearch.
Caso sua linguagem não esteja na lista acima, verifique os Clientes contribuídos pela comunidade.
Console do Kibana
O Console do Kibana fornece uma interface baseada em navegador para a API RESTful do Elasticsearch. Ele abstrai os detalhes técnicos das requisições HTTP subjacentes. Utilize-o para desenvolvimento, depuração e tarefas pontuais de indexação.
O exemplo a seguir adiciona um único documento JSON a um índice:
PUT my_first_index/_doc/1
{
"title" : "How to Ingest Into Elasticsearch Service",
"date" : "2019-08-15T14:12:12",
"description" : "This is an overview article about the various ways to ingest into Elasticsearch Service"
}
Para fluxos de trabalho automatizados ou scriptados, o cURL é uma alternativa de linha de comando que se comunica com o Elasticsearch pela mesma API RESTful e permite integrar scripts personalizados.
Resumo
Selecione o método correspondente à origem dos seus dados e às restrições operacionais:
Beats: prático, leve e pronto para uso. Módulos pré-construídos cobrem bancos de dados comuns, sistemas operacionais, contêineres, servidores web e caches. Um painel pode estar operacional em menos de cinco minutos. Ideal para dispositivos embarcados, sensores IoT ou firewalls com recursos limitados.
Logstash: indicado quando o Beats não atende aos requisitos de enriquecimento, filtragem ou roteamento. O Alibaba Cloud Logstash é totalmente gerenciado; você não precisa operar a infraestrutura.
Clientes do Elasticsearch: recomendados quando sua aplicação coleta ou produz dados que exigem envio programático.
Console do Kibana: recomendado para desenvolver, testar ou depurar requisições do Elasticsearch de forma interativa.