01 ‐ Introdução ao Elastic Stack - BktechBrazil/elastic-eck GitHub Wiki

1.1 - História, evolução e futuro

O Elastic Stack, anteriormente conhecido como ELK Stack, é um conjunto de ferramentas criado pela empresa Elastic que, usadas em conjunto, formam uma plataforma completa para buscar, analisar e visualizar grandes volumes de dados. Ao longo dos anos, a stack foi crescendo em produtos e casos de uso, e segue em constante evolução, com foco cada vez maior em inteligência artificial e busca semântica.

A história por trás do Elasticsearch: de um projeto pessoal à referência global em busca de dados

O Elasticsearch teve um início bem diferente do que se imagina. Sua história começa com Shay Banon, um desenvolvedor que queria ajudar a esposa a encontrar receitas culinárias.

O início

Por volta de 2004, Shay Banon estava em Londres acompanhando sua esposa, que estudava culinária. Para facilitar a busca nas receitas que ela colecionava, ele construiu um sistema usando o Apache Lucene, uma biblioteca de busca em texto escrita em Java, já consolidada na época. O resultado foi o Compass, uma ferramenta de busca que funcionava bem, mas tinha dificuldades para crescer: era difícil distribuir os dados entre múltiplos servidores e lidar com grandes volumes.

Anos depois, Banon reescreveu o projeto do zero. Em fevereiro de 2010, lançou publicamente o Elasticsearch (primeira versão, 0.4.0), distribuído, com API REST e dados no formato JSON, anunciado com o slogan "You Know, for Search".

O nascimento da empresa

Em 2012, o projeto de código aberto virou uma empresa: a Elasticsearch BV foi fundada pelos criadores do Elasticsearch e do Apache Lucene. Em 2013, o Elasticsearch se juntou ao Logstash e ao Kibana, ferramentas criadas de forma independente por outros desenvolvedores, formando o que ficou conhecido como ELK Stack (Elasticsearch, Logstash, Kibana). Em março de 2015, a empresa mudou de nome para Elastic, para refletir que o portfólio já ia muito além da busca.

Em outubro de 2018, a Elastic abriu capital na bolsa de valores americana (NYSE, código ESTC), levantando cerca de 252 milhões de dólares. Na abertura de capital, a empresa passou a ser uma sociedade anônima holandesa, a Elastic N.V.

Por que o Elasticsearch cresceu tão rápido?

Alguns fatores explicam a adoção rápida:

  • API REST: qualquer linguagem de programação consegue se comunicar com o Elasticsearch usando requisições HTTP comuns. Não é necessário aprender um SDK proprietário.
  • Dados no formato JSON: formato amplamente conhecido por desenvolvedores, sem necessidade de definir uma estrutura rígida antes de começar.
  • Distribuição nativa: o Elasticsearch foi pensado desde o início para funcionar em múltiplos servidores ao mesmo tempo, dividindo os dados e as consultas entre eles.
  • Comunidade ativa: por ser um projeto de código aberto, muitos desenvolvedores contribuíram com melhorias, plugins e integrações.

Onde o Elasticsearch é usado

O Elasticsearch aparece em cenários muito diferentes:

  • TI e operações: centralização de logs de servidores, monitoramento de infraestrutura, análise de segurança (SIEM)
  • Finanças: detecção de fraudes, análise de risco, auditoria
  • Varejo e e-commerce: busca de produtos em lojas virtuais, personalização de experiências
  • Saúde: análise de dados clínicos, pesquisa médica
  • Inteligência artificial: armazenamento e busca de dados usados por aplicações com modelos de linguagem (RAG, agentes, busca semântica)

Linha do tempo de versões

Versão Ano O que trouxe de mais relevante
0.4 2010 Primeiro lançamento público do Elasticsearch
1.x 2014 Primeira versão estável: snapshot/restore, agregações, circuit breakers e a API _cat
5.x 2016 Elasticsearch, Kibana, Logstash e Beats passam a ter o mesmo número de versão: nasce o "Elastic Stack"
6.x 2017 Upgrades sem indisponibilidade (rolling upgrade entre majors) e index sorting
7.x 2019 Nova coordenação de cluster (Zen2), seleção adaptativa de réplicas; recursos básicos de segurança passam a ser gratuitos
8.x 2022 Segurança ativada por padrão em toda instalação nova; busca vetorial densa nativa (HNSW)
9.0 2025 Migração para Lucene 10, ES|QL com JOIN, recursos de IA mais avançados
9.4 2026 Versão usada neste curso. Workflows GA, novidades no Agent Builder, suporte a Prometheus/PromQL (technical preview), novas capacidades no ES|QL e conformidade FIPS 140-3

A Elastic lança versões menores com frequência. Em setembro de 2026 já existe a linha 9.5. Este curso fixa a versão 9.4.2 para que todos os laboratórios sejam reproduzíveis.

Referência oficial: elastic.co/docs/release-notes

O que mudou do 8.x para o 9.x

Para quem já conhecia versões anteriores, os pontos mais importantes da versão 9.x são:

  • Segurança já vinha ativada por padrão desde o 8.0, e isso continua no 9.x. Em instalações novas, o cluster já sobe com autenticação e comunicação criptografada configuradas automaticamente.
  • Lucene 10 como motor de indexação e busca.
  • Busca semântica e IA: capacidade de encontrar documentos por significado, não apenas por palavras exatas, com modelos de IA integrados. Útil em aplicações de inteligência artificial.
  • Behavioral Analytics foi descontinuado (deprecated) no 9.0 e será removido em versão futura.
  • Enterprise Search não existe mais a partir do 9.0. No ECK, o recurso EnterpriseSearch só vale para versões 8.x do Stack.

Fundadores do Elasticsearch, Logstash e Kibana

Elasticsearch

Criado por Shay Banon e lançado em 2010. Como descrito acima, surgiu da necessidade de construir uma ferramenta de busca melhor do que as existentes na época.

Logstash

Criado por Jordan Sissel como projeto pessoal para facilitar o trabalho com arquivos de log, coleta dados de diversas fontes, transforma e envia para o Elasticsearch. Surgiu de forma independente e se juntou ao Elasticsearch em 2013.

Kibana

Criado por Rashid Khan, o objetivo inicial era simples: oferecer uma interface visual para explorar os dados armazenados no Elasticsearch. O projeto evoluiu e se tornou a principal interface de gerenciamento e análise de toda a stack.


Fundadores da Elastic

A empresa foi fundada em 2012.

  • Shay Banon: criador do Elasticsearch, atuou como CTO da empresa.
  • Steven Schuurman: primeiro CEO da Elastic, responsável pela estratégia de negócios e crescimento inicial.
  • Uri Boness: contribuiu para o desenvolvimento técnico e formação da empresa.
  • Simon Willnauer: especialista em tecnologia de busca, um dos principais contribuidores do Apache Lucene, trouxe profundidade técnica ao projeto.

1.2 - Produtos que compõem o Elastic Stack

O Elastic Stack é dividido em três grandes funções: armazenar e buscar (Elasticsearch), explorar e visualizar (Kibana) e ingerir dados (Elastic Agent, Beats, Logstash, APM, OpenTelemetry). Todas as implantações da Elastic, inclusive o ECK, compartilham essa mesma base.

Elasticsearch

Elasticsearch é o núcleo da stack: um mecanismo de busca e análise distribuído. Ele armazena dados no formato JSON, indexa os documentos automaticamente e oferece uma API REST para buscar, inserir, atualizar e deletar dados. Por ser distribuído, os dados são divididos entre múltiplos servidores, o que permite crescer a capacidade simplesmente adicionando mais nós ao cluster.

O Elasticsearch também funciona como banco de dados vetorial: desde o 8.0 suporta busca vetorial densa nativa, e no 9.x a busca semântica é uma funcionalidade integrada, sem necessidade de ferramentas externas.

Quase tudo no Elasticsearch pode ser configurado e gerenciado pela API REST. Essa abordagem "API first" combina muito bem com o ECK, em que a infraestrutura também é descrita como código (manifestos YAML).

No ECK: recurso Elasticsearch. Cada nó do cluster vira um pod, e os grupos de nós com a mesma configuração (os nodeSets) viram StatefulSets.

Kibana

Kibana é a interface gráfica do Elastic Stack. Pelo navegador, é possível explorar dados, criar gráficos, montar dashboards e gerenciar toda a stack, incluindo configurações de segurança, políticas de retenção de dados e monitoramento do cluster. O Console (Dev Tools) do Kibana permite enviar requisições diretamente para a API do Elasticsearch, e será a ferramenta mais usada nos laboratórios de consulta.

No ECK: recurso Kibana. Basta apontar o Kibana para o Elasticsearch com elasticsearchRef; o operator cuida da conexão, dos certificados e das credenciais.

Beats

Beats são programas leves instalados diretamente nos servidores para coletar dados e enviá-los ao Elasticsearch. Cada tipo de Beat é focado em um tipo de dado específico:

Beat Para que serve
Filebeat Coleta logs de arquivos e serviços
Metricbeat Coleta métricas de sistema (CPU, memória, disco) e serviços como Nginx e MySQL
Packetbeat Monitora o tráfego de rede
Auditbeat Coleta eventos de auditoria do sistema operacional
Winlogbeat Coleta logs de eventos do Windows
Heartbeat Verifica se serviços estão disponíveis (monitoramento de uptime)

Nota: o Elastic Agent é a alternativa mais moderna aos Beats individuais. Com uma única instalação, ele substitui vários Beats e é gerenciado centralmente pelo Kibana. Em novas implementações com Elasticsearch 9.x, o Elastic Agent é a opção recomendada.

Logstash

Logstash é uma ferramenta de processamento de dados. Ele recebe dados de diversas fontes, aplica transformações (como extrair campos de um texto de log, converter formatos de data ou adicionar informações de geolocalização) e envia o resultado para o Elasticsearch. É mais pesado que os Beats, mas muito mais poderoso quando o dado precisa ser transformado antes de ser indexado.

Elastic Agent e Fleet

O Elastic Agent é o agente unificado da Elastic: uma única instalação substitui múltiplos Beats e centraliza a coleta de logs, métricas e dados de segurança. Cada agente segue uma política, à qual você adiciona integrações para novas fontes de dados. As políticas e as integrações são gerenciadas pelo Fleet, uma interface dentro do Kibana. Em implementações novas com Elasticsearch 9.x, o Elastic Agent é o caminho recomendado.

Elastic Observability

Elastic Observability é a solução da Elastic para monitorar aplicações e infraestrutura. Reúne em um único lugar três tipos de dados essenciais para diagnóstico de problemas: logs (registros de eventos), métricas (dados de desempenho como CPU e memória) e traces (o caminho que uma requisição percorre dentro de uma aplicação). O APM (Application Performance Monitoring) coleta os dados de desempenho das aplicações. Na versão 9.x, a Elastic adota o padrão aberto OpenTelemetry, com a sua distribuição EDOT (Elastic Distribution of OpenTelemetry), o que facilita a integração com outras ferramentas do mercado.

Elastic Security

Elastic Security é a plataforma de segurança da Elastic. Funciona como um SIEM (sistema de monitoramento e análise de eventos de segurança), centralizando logs de firewalls, servidores, endpoints e outros sistemas para detectar e investigar ameaças. Inclui regras de detecção baseadas em padrões conhecidos de ataque e, na versão 9.x, conta com recursos de inteligência artificial para ajudar analistas a priorizar alertas.


1.3 - Onde rodar o Elastic Stack: opções de implantação

A mesma stack pode ser implantada de formas diferentes. A escolha define quanto do trabalho de operação (instalar, escalar, atualizar, monitorar) fica com você e quanto é automatizado.

Opção Quem opera a infraestrutura Em resumo
Elastic Cloud Serverless Elastic, na nuvem SaaS: sem clusters, nós ou shards para gerenciar; escala automaticamente e cobra por uso
Elastic Cloud Hosted (ECH) Elastic, na nuvem (AWS, GCP ou Azure) Cluster dedicado, gerenciado pela Elastic, com bastante controle sobre nós, hardware e versões
Elastic Cloud on Kubernetes (ECK) Você, com o operator da Elastic no seu Kubernetes Operator oficial que estende o Kubernetes para implantar e operar o Elastic Stack. É a opção usada neste curso
Elastic Cloud Enterprise (ECE) Você, com um orquestrador da Elastic Plataforma para criar e gerenciar muitos clusters na sua infraestrutura, a partir de um console central
Self-managed Você Instalação por pacotes em servidores ou VMs próprios. Controle total, mas toda a operação é manual

O ECK fica entre o self-managed e as ofertas gerenciadas: você mantém controle total sobre o hardware, a rede, a segurança e as versões (como no self-managed), mas o operator automatiza boa parte da operação.

Referência oficial: Deployment options e Detailed deployment comparison


1.4 - ECK: o Elastic Stack no Kubernetes

1.4.1 - O que é o ECK

O Elastic Cloud on Kubernetes (ECK) é o operator oficial da Elastic para Kubernetes. Ele se baseia no padrão Operator do Kubernetes e estende as capacidades de orquestração do cluster para implantar e gerenciar Elasticsearch, Kibana, APM Server, Beats, Elastic Agent, Elastic Maps Server, Logstash, a política do agente AutoOps e o Package Registry.

Para entender o ECK, precisamos de duas ideias do Kubernetes:

  • Estado desejado e reconciliação. No Kubernetes você declara o que quer (por exemplo, "um cluster Elasticsearch 9.4.2 com 3 nós de 4 GB cada") e controladores trabalham continuamente para que a realidade fique igual à declaração. Se algo sai do lugar (um pod cai, uma configuração muda), o controlador corrige.
  • CRD (Custom Resource Definition). O Kubernetes permite criar tipos de recurso novos. O ECK instala CRDs como Elasticsearch e Kibana, e a partir daí um cluster Elasticsearch passa a ser um objeto do Kubernetes, como um Pod ou um Service.

O operator é o software que junta essas duas ideias: ele observa os recursos do Elastic e faz todo o trabalho operacional que, no self-managed, seria manual.

  você ──kubectl apply──▶ recurso Elasticsearch (YAML)
                                  │  o operator observa e reconcilia
                                  ▼
  operator ECK ──cria e mantém──▶ StatefulSets · Pods · PVCs · Services
                                  Secrets (certificados TLS, senha do elastic)

O salto conceitual do curso: paramos de instalar software e passamos a declarar o que queremos. O operator transforma a declaração em realidade e a mantém assim.

1.4.2 - Os recursos (CRDs) do ECK

Recurso (kind) apiVersion O que implanta Onde aparece no curso
Elasticsearch elasticsearch.k8s.elastic.co/v1 Cluster Elasticsearch Todos os capítulos
Kibana kibana.k8s.elastic.co/v1 Kibana Todos os capítulos
Agent agent.k8s.elastic.co/v1alpha1 Elastic Agent (standalone ou Fleet) e Fleet Server Ingestão de dados
Beat beat.k8s.elastic.co/v1beta1 Filebeat, Metricbeat, Heartbeat etc. Ingestão de dados
Logstash logstash.k8s.elastic.co/v1alpha1 Logstash Ingestão de dados
ApmServer apm.k8s.elastic.co/v1 APM Server Observabilidade
ElasticsearchAutoscaler autoscaling.k8s.elastic.co/v1alpha1 Autoscaling do Elasticsearch (Enterprise) Capacity Plan
ElasticMapsServer maps.k8s.elastic.co/v1alpha1 Elastic Maps Server (Enterprise) Apenas citado
StackConfigPolicy stackconfigpolicy.k8s.elastic.co/v1alpha1 Configurações aplicadas a vários clusters (Enterprise) Apenas citado
PackageRegistry packageregistry.k8s.elastic.co/v1alpha1 Elastic Package Registry (ECK 3.3+) Apenas citado
AutoOpsAgentPolicy autoops.k8s.elastic.co/v1alpha1 Agente do AutoOps (ECK 3.3+) Apenas citado

Atenção: as CRDs são recursos globais do cluster Kubernetes. Apagar uma CRD apaga todos os recursos daquele tipo em todos os namespaces. Por isso, desinstalar o ECK de forma descuidada pode apagar os clusters Elasticsearch.

1.4.3 - O que o operator faz por você

Segundo a documentação oficial, o ECK automatiza operações críticas como:

  1. Gerenciar e monitorar múltiplos clusters
  2. Escalar a capacidade e o armazenamento do cluster
  3. Aplicar mudanças de configuração com segurança, por meio de rolling upgrades
  4. Proteger os clusters com certificados TLS
  5. Montar arquiteturas hot-warm-cold com reconhecimento de zonas de disponibilidade

Na prática, ao criar um recurso Elasticsearch, o operator:

  • cria os StatefulSets e os pods de cada nodeSet, com um PVC (disco persistente) por nó;
  • cria os Services <nome>-es-http (porta 9200, HTTPS) e <nome>-es-transport (porta 9300, comunicação entre nós);
  • gera uma CA privada por cluster e os certificados TLS do HTTP e do transport;
  • cria o usuário elastic e guarda a senha no Secret <nome>-es-elastic-user;
  • forma o cluster (descoberta de nós e eleição de master) e ajusta essas configurações quando nós entram ou saem;
  • executa rolling upgrades quando você muda a versão ou a configuração no manifesto, um nó por vez, respeitando a saúde do cluster;
  • calcula o heap da JVM automaticamente a partir do limite de memória do container.

Para isso, o operator controla algumas configurações do elasticsearch.yml que você não deve alterar, entre elas cluster.name, discovery.seed_hosts, cluster.initial_master_nodes, network.host, path.data, path.logs e as configurações de TLS (xpack.security.http.ssl.* e xpack.security.transport.ssl.*).

1.4.4 - Self-managed × ECK: o que muda

Tarefa Self-managed (tar.gz/pacote) ECK
Instalar Baixar o pacote, descompactar, criar usuário e diretórios em cada servidor kubectl apply de um manifesto Elasticsearch
Configurar o nó Editar o elasticsearch.yml em cada servidor Campo spec.nodeSets[].config do manifesto
Papéis dos nós node.roles em cada elasticsearch.yml Um nodeSet por grupo de nós, com node.roles no config
Heap da JVM Arquivo jvm.options Calculado a partir de resources.limits.memory; pode ser sobrescrito com ES_JAVA_OPTS no podTemplate
Disco Diretório local (path.data) PVC criado a partir de volumeClaimTemplates
Iniciar e manter o processo systemd / scripts O operator e o Kubernetes (StatefulSet recria o pod se ele cair)
Certificados TLS Gerar com elasticsearch-certutil e distribuir Gerados e renovados pelo operator
Senha do elastic elasticsearch-reset-password Gerada pelo operator, lida do Secret <nome>-es-elastic-user
Configurações sensíveis (keystore) elasticsearch-keystore add em cada nó secureSettings apontando para Secrets do Kubernetes
Escalar Instalar e configurar um servidor novo Alterar count no manifesto
Upgrade Parar, atualizar e reiniciar nó a nó, manualmente Alterar spec.version; o operator faz o rolling upgrade
Ligar o Kibana ao Elasticsearch elasticsearch.hosts, CA e credenciais no kibana.yml elasticsearchRef no manifesto Kibana
Acesso de fora Abrir portas no firewall do servidor port-forward, Service NodePort/LoadBalancer ou Ingress

O que não muda: tudo o que acontece dentro do Elasticsearch e do Kibana. Índices, mappings, Query DSL, agregações, ILM, dashboards, Machine Learning e busca semântica funcionam exatamente igual.

1.4.5 - Um primeiro olhar em um manifesto

apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
  name: quickstart
spec:
  version: 9.4.2
  nodeSets:
    - name: default
      count: 1
      config:
        node.store.allow_mmap: true
      podTemplate:
        spec:
          containers:
            - name: elasticsearch
              env:
                - name: ES_JAVA_OPTS
                  value: -Xms2g -Xmx2g      # heap = 2 GB (<= 50% do request)
              resources:
                requests:
                  memory: 4Gi
                  cpu: "1"
                limits:
                  memory: 4Gi               # sem limite de CPU: permite bursts no lab
      volumeClaimTemplates:
        - metadata:
            name: elasticsearch-data
          spec:
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 20Gi
            storageClassName: local-path

Leitura rápida do manifesto:

Campo Significado
kind: Elasticsearch Tipo de recurso criado pela CRD do ECK
spec.version Versão do Elastic Stack. Mudar este valor dispara um upgrade
nodeSets Grupos de nós com a mesma configuração. Aqui, um grupo chamado default
count Quantos nós (pods) o grupo tem
config Conteúdo que vai para o elasticsearch.yml dos nós do grupo
podTemplate Personalização do pod: memória, CPU, variáveis de ambiente
volumeClaimTemplates Disco persistente de cada nó

1.4.6 - Versões compatíveis

Componente Compatibilidade oficial (ECK 3.4+) Neste curso
Kubernetes 1.31 a 1.36 1.31 (kubeadm, single-node)
OpenShift 4.16 a 4.22 Não usado
Kubernetes gerenciado GKE, AKS, EKS Não usado
Helm 3.2.0 ou superior Usado para instalar o operator
Elasticsearch, Kibana, APM Server 8+, 9+ 9.4.2
Beats, Elastic Agent (standalone e Fleet), Elastic Maps Server 8+, 9+ 9.4.2
Logstash 8.12+, 9+ 9.4.2

Referência oficial: Elastic Cloud on Kubernetes – Supported versions


1.5 - Licenças da Elastic e subscrições

Historicamente, o Elasticsearch e o Kibana foram distribuídos sob a licença Apache 2.0, uma das licenças de código aberto mais permissivas, que permite usar, modificar e redistribuir o software praticamente sem restrições.

Mudança de licença em 2021

Em janeiro de 2021, a Elastic anunciou que, a partir da versão 7.11, o código do Elasticsearch e do Kibana deixaria a Apache 2.0 e passaria a ter licença dupla: SSPL (Server Side Public License) e Elastic License. O motivo principal foi a AWS: a Amazon oferecia um serviço pago baseado no Elasticsearch, e a Elastic considerava que isso causava confusão no mercado e não era sustentável.

A Elastic License v2 (ELv2) mantém a liberdade de uso para a grande maioria dos casos: você pode usar, modificar e distribuir o software. A restrição relevante é que você não pode oferecer o Elasticsearch como um serviço gerenciado para terceiros sem um acordo com a Elastic.

Para desenvolvedores, engenheiros e empresas que usam o Elasticsearch internamente ou para implementar soluções para clientes, essa mudança não tem impacto.

AGPL como opção a partir de 2024

Em agosto de 2024, a Elastic anunciou que o código do Elasticsearch e do Kibana passaria a ser oferecido também sob a licença AGPLv3, uma licença de código aberto aprovada pela OSI, ao lado da ELv2 e da SSPL. O usuário escolhe qual licença usar. A decisão reaproximou a Elastic da comunidade open source.

Resumo atual:

Licença Onde se aplica
Elastic License 2.0 (ELv2) Distribuição padrão (os binários e imagens que baixamos) e código-fonte
SSPL 1.0 Opção para o código-fonte
AGPLv3 Opção para o código-fonte (licença open source aprovada pela OSI)
Apache 2.0 Bibliotecas cliente (clients) do Elasticsearch

O OpenSearch

Quando a Elastic mudou a licença em 2021, a AWS criou o OpenSearch, uma versão alternativa (fork) baseada no código da versão 7.10.2, a última sob Apache 2.0 antes da mudança. O OpenSearch continua sendo mantido de forma independente. Desde então, os dois produtos evoluíram separadamente: APIs, recursos e nomes de configuração não são mais equivalentes, e o que se aprende neste curso vale para o Elasticsearch.

Subscrições disponíveis

Para implantações próprias (self-managed e ECK), a Elastic organiza os recursos em níveis:

Nível O que inclui
Free and open / Basic Gratuito. Funcionalidades principais do Elastic Stack, segurança, dashboards, alertas
Platinum Nível pago; segundo a tabela de subscrições de julho de 2026, disponível apenas para clientes que já o possuem
Enterprise Nível pago mais completo: recursos avançados (como Machine Learning, searchable snapshots) e suporte da Elastic

Na nuvem da Elastic (Elastic Cloud Hosted e Serverless), os níveis e a cobrança são próprios de cada oferta.

Os recursos de cada nível mudam com frequência. Sempre confira a tabela oficial antes de planejar um ambiente.

Referência oficial: elastic.co/subscriptions

Licenciamento no ECK

O ECK tem apenas dois níveis de licença: Basic e Enterprise.

  • Ao instalar o ECK, ele vem com a licença Basic, gratuita, e todas as aplicações do Elastic Stack gerenciadas por ele também ficam em Basic.
  • Com uma licença Enterprise (chamada de orchestration license no download), o operator libera os recursos Enterprise do próprio ECK, como o autoscaling do Elasticsearch, o Elastic Maps Server e as StackConfigPolicies, e todas as aplicações gerenciadas passam a ter os recursos Platinum e Enterprise.
  • Para testar, é possível ativar um trial Enterprise de 30 dias criando um Secret no namespace do operator. O trial só pode ser ativado uma vez; ao fim, os recursos pagos passam a operar em modo degradado.
# Exemplo da documentação oficial (não execute agora; o trial é usado nos capítulos de Machine Learning e Capacity Plan)
apiVersion: v1
kind: Secret
metadata:
  name: eck-trial-license
  namespace: elastic-system
  labels:
    license.k8s.elastic.co/type: enterprise_trial
  annotations:
    elastic.co/eula: accepted

O consumo é medido em ERUs (Enterprise Resource Units): o ECK soma a memória configurada (não a memória realmente usada) do Elasticsearch, Kibana, APM Server e Logstash e grava o resultado no ConfigMap elastic-licensing, no namespace do operator, a cada 2 minutos. Elastic Agent, Beats e Elastic Maps Server não entram na conta.

$ kubectl -n elastic-system get configmap elastic-licensing -o json | jq .data

Referência oficial: Manage your license in ECK


1.6 - Conceitos fundamentais

Esta seção apresenta o vocabulário básico do Elasticsearch. Os conceitos aqui são introdutórios; cada um deles será aprofundado nos capítulos seguintes. Ao fim de cada conceito, o quadro "E no ECK?" mostra como ele aparece no Kubernetes.

Documento

Um documento é a unidade básica de dado no Elasticsearch. É armazenado no formato JSON e equivale, de forma simplificada, a uma linha em uma tabela de banco de dados relacional.

{
  "_id": "1",
  "host": "web-server-01",
  "status": 200,
  "method": "GET",
  "url": "/api/produtos",
  "response_time_ms": 43,
  "@timestamp": "2026-05-01T10:32:00Z"
}

Cada documento pertence a um índice e possui um identificador único (_id), que pode ser definido na hora de inserir o dado ou gerado automaticamente pelo Elasticsearch.

Índice

Um índice é um agrupamento de documentos com características semelhantes, por exemplo, todos os logs de um sistema ou todos os registros de pedidos de uma loja. O índice é identificado por um nome em letras minúsculas e é a referência usada nas operações de busca e análise.

E no ECK? Os dados dos índices ficam gravados nos PVCs (discos persistentes) de cada pod do Elasticsearch. Se um pod é recriado, ele volta com o mesmo PVC e os mesmos dados.

Busca

O Elasticsearch oferece três formas principais de busca, que podem ser usadas em conjunto:

  • Busca por texto (full-text search): encontra documentos que contêm determinadas palavras, ordenando os resultados por relevância. Ideal para campos descritivos, mensagens de log ou qualquer conteúdo textual.
  • Busca exata (filtro): retorna documentos que atendem a uma condição precisa, por exemplo status = 200 ou datas dentro de um intervalo. Não calcula relevância, apenas inclui ou exclui o documento. É mais rápida e o resultado pode ficar em cache.
  • Busca semântica: encontra documentos com base no significado, não nas palavras exatas. Por exemplo, buscar por "problema de conexão" pode retornar documentos que falam em "falha de rede" ou "timeout", mesmo sem usar as mesmas palavras. Esse tipo de busca depende de modelos de inteligência artificial e está disponível de forma nativa no Elasticsearch 9.x.

Agregações

Agregações são operações que resumem e analisam conjuntos de dados diretamente no Elasticsearch. O equivalente mais próximo no SQL seria GROUP BY combinado com funções como COUNT, AVG e SUM.

Existem dois tipos principais:

Tipo O que faz Exemplos
Bucket Agrupa documentos em categorias Agrupar por dia, por status HTTP, por país de origem
Metric Calcula um valor sobre um grupo de documentos Média de tempo de resposta, total de erros, valor máximo

As agregações podem ser combinadas: por exemplo, agrupar os dados por dia e calcular a média de tempo de resposta dentro de cada dia.

Cluster e nó

Um cluster Elasticsearch é um conjunto de um ou mais servidores, chamados nós, que trabalham juntos e compartilham os dados. Cada nó pode ter papéis (roles) diferentes, como master (coordena o cluster), data (guarda os dados) ou ingest (pré-processa documentos).

E no ECK?

Elasticsearch Kubernetes / ECK
Cluster Um recurso Elasticsearch
Grupo de nós com a mesma configuração Um nodeSet, materializado como um StatefulSet
Nó Um pod (por exemplo quickstart-es-default-0)
Disco do nó Um PVC (por exemplo elasticsearch-data-quickstart-es-default-0)
Endereço do cluster Service <nome>-es-http (porta 9200)

Escalabilidade e resiliência

O Elasticsearch foi projetado para funcionar em múltiplos servidores desde o início. Dois conceitos são centrais para isso:

Sharding: um índice pode ser dividido em partes menores chamadas shards. Cada shard pode ficar em um nó diferente, o que permite distribuir tanto o armazenamento quanto o processamento das consultas. Quanto mais shards, mais o trabalho é paralelizado.

Replicação: cada shard pode ter cópias em outros nós, chamadas réplicas. Se um nó falhar, as réplicas garantem que os dados continuem acessíveis e que o cluster permaneça funcionando sem perda de dados.

Escalar horizontalmente significa que, quando o cluster precisa de mais capacidade, basta adicionar novos nós. O Elasticsearch redistribui os shards automaticamente, sem precisar parar o serviço.

E no ECK? Escalar é mudar o count de um nodeSet e reaplicar o manifesto; o operator cria os novos pods e o Elasticsearch redistribui os shards. Para reduzir o número de nós, o operator primeiro migra os dados do nó que vai sair e só depois remove o pod.


Resumo do capítulo

  • O Elastic Stack nasceu do Elasticsearch (2010) e hoje reúne Elasticsearch, Kibana, Elastic Agent/Fleet, Beats, Logstash e APM, com soluções de Observability, Security e Search/IA.
  • A Elastic pode ser implantada na nuvem da Elastic (Hosted ou Serverless) ou na infraestrutura própria (self-managed, ECE ou ECK).
  • O ECK é o operator oficial para Kubernetes: você declara recursos como Elasticsearch e Kibana em YAML, e o operator cria e mantém pods, discos, Services, certificados e senhas.
  • O que acontece dentro do Elasticsearch e do Kibana (índices, consultas, dashboards, ILM, ML) é igual em qualquer forma de implantação.
  • O ECK tem licença Basic (gratuita) e Enterprise; recursos como autoscaling exigem Enterprise ou trial.
⚠️ **GitHub.com Fallback** ⚠️