Neste artigo, exploraremos como implantar Elasticsearch e Kibana usar Docker Compose. Esses são dois componentes principais do ELK Stack( Elasticsearch, Logstash, Kibana), ajudando você a pesquisar, analisar e visualizar dados de forma eficaz. Abaixo estão as configurações detalhadas e como cada componente funciona.
1. Elasticsearch
a. Configuração básica
Elasticsearch está configurado para ser executado em um contêiner Docker com os seguintes parâmetros:
Imagem: Elasticsearch A imagem oficial, versão
8.17.2, é usada.Modo de nó único: habilitado por meio da variável de ambiente
discovery.type=single-node.Segurança: A segurança do X-Pack está habilitada(
xpack.security.enabled=true) e a senha doelasticusuário está definida comoYVG6PKplG6ugGOw.Rede: O Elasticsearch escuta em todas as interfaces de rede(
network.host=0.0.0.0).Memória JVM: Configurada com
-Xms1g(memória inicial) e-Xmx1g(memória máxima).
banda Ports Volumes
Ports: A porta
9200(HTTP) e9300(comunicação interna) são mapeadas do contêiner para o host.Volumes: Os dados do Elasticsearch são armazenados no
elasticsearch-datavolume.
c. Verificação de saúde
Um healthcheck é configurado para monitorar Elasticsearch o status do chamando a /_cluster/health API com o elastic usuário. Se a API não responder, o contêiner será reiniciado.
2. Kibana
a. Configuração básica
Kibana está configurado para se conectar Elasticsearch e ser executado em um contêiner Docker com os seguintes parâmetros:
Imagem: Kibana A imagem oficial, versão
8.17.2, é usada.Elasticsearch Conexão: O Elasticsearch endereço está definido como
http://elasticsearch:9200.Autenticação: O Kibana usa o
kibana_usercom a senhaYVG6PKplG6ugGOwpara se conectar ao Elasticsearch.
b. Ports e Redes
Ports: A porta
5601é mapeada do contêiner para o host para acessar a Kibana interface.Redes: Kibana está conectado ao
elk-network.
c. Dependência de Elasticsearch
Kibana só inicia depois que Elasticsearch estiver pronto, garantindo uma conexão bem-sucedida entre os dois serviços.
3. Volume e Rede
a. Volume
elasticsearch-data: Este volume é usado para armazenar Elasticsearch dados, garantindo a persistência dos dados mesmo se o contêiner for excluído.
b. Rede
elk-network: Uma
bridgerede é criada para conectar Elasticsearch e Kibana serviços.
4. Como usar
a. Iniciando os Serviços
Para iniciar Elasticsearch e Kibana executar o seguinte comando:
docker-compose up -d
b. Criando um Kibana usuário(se necessário)
Se você quiser usar um usuário dedicado para Kibana, você pode criar um com o seguinte comando:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Para usar uma token senha em vez de uma senha, você pode criar uma com o seguinte comando:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Solução de problemas
Se você encontrar erros, poderá verificar os logs do contêiner usando:
docker logs elasticsearch docker logs kibanaPara reiniciar Kibana:
Conteúdo completo do Docker Compose arquivo
Abaixo está o conteúdo completo do docker-compose-els.yml arquivo:
version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.17.2
container_name: elasticsearch
environment:
- discovery.type=single-node
- xpack.security.enabled=true
- ELASTIC_PASSWORD=you_password
- network.host=0.0.0.0
- ES_JAVA_OPTS=-Xms1g -Xmx1g
ports:
- '9200:9200'
- '9300:9300'
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
ulimits:
memlock:
soft: -1
hard: -1
networks:
- elk-network
healthcheck:
test: ["CMD-SHELL", "curl -u elastic:YVG6PKplG6ugGOw --silent --fail localhost:9200/_cluster/health || exit 1"]
interval: 10s
retries: 5
start_period: 30s
timeout: 5s
kibana:
image: docker.elastic.co/kibana/kibana:8.17.2
container_name: kibana
ports:
- '5601:5601'
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
- ELASTICSEARCH_USERNAME=kibana_user
- ELASTICSEARCH_PASSWORD=you_password
networks:
- elk-network
depends_on:
elasticsearch:
condition: service_healthy
volumes:
elasticsearch-data:
driver: local
networks:
elk-network:
driver: bridge
Conclusão
Com esta Docker Compose configuração, você pode facilmente implantar Elasticsearch e Kibana atender às suas necessidades de pesquisa, análise e visualização de dados. Personalize e estenda esta configuração para se adequar aos requisitos específicos do seu projeto!

