I denne artikkelen vil vi utforske hvordan du distribuerer Elasticsearch og Kibana bruker Docker Compose. Dette er to nøkkelkomponenter i ELK Stack( Elasticsearch, Logstash, Kibana), som hjelper deg å søke, analysere og visualisere data effektivt. Nedenfor er de detaljerte konfigurasjonene og hvordan hver komponent fungerer.
1. Elasticsearch
en. Grunnleggende konfigurasjon
Elasticsearch er konfigurert til å kjøre i en Docker-beholder med følgende parametere:
Bilde: Det offisielle Elasticsearch bildet, versjon
8.17.2, brukes.Enkeltnodemodus: Aktivert via miljøvariabelen
discovery.type=single-node.Sikkerhet: X-Pack-sikkerhet er aktivert(
xpack.security.enabled=true), og passordet forelasticbrukeren er satt tilYVG6PKplG6ugGOw.Nettverk: Elasticsearch lytter på alle nettverksgrensesnitt(
network.host=0.0.0.0).JVM-minne: Konfigurert med
-Xms1g(opprinnelig minne) og-Xmx1g(maksimalt minne).
b. Ports og Volumes
Ports: Port
9200(HTTP) og9300(intern kommunikasjon) er kartlagt fra containeren til verten.Volumes: Elasticsearch-data lagres i
elasticsearch-datavolumet.
c. Helsesjekk
En helsesjekk settes opp for å overvåke Elasticsearch statusen ved å ringe /_cluster/health APIen med elastic brukeren. Hvis API-en ikke svarer, vil beholderen starte på nytt.
2. Kibana
en. Grunnleggende konfigurasjon
Kibana er konfigurert til å koble til Elasticsearch og kjøre i en Docker-beholder med følgende parametere:
Bilde: Det offisielle Kibana bildet, versjon
8.17.2, brukes.Elasticsearch Tilkobling: Adressen Elasticsearch er satt til
http://elasticsearch:9200.Autentisering: Kibana bruker
kibana_usermed passordetYVG6PKplG6ugGOwfor å koble til Elasticsearch.
b. Ports og nettverk
Ports: Porten
5601tilordnes fra containeren til verten for å få tilgang til Kibana grensesnittet.Nettverk: Kibana er koblet til
elk-network.
c. Avhengighet av Elasticsearch
Kibana starter først etter Elasticsearch at den er klar, noe som sikrer en vellykket forbindelse mellom de to tjenestene.
3. Volum og nettverk
en. Volum
elasticsearch-data: Dette volumet brukes til å lagre Elasticsearch data, og sikrer datavedvarende selv om beholderen slettes.
b. Nettverk
elg-nettverk: Et
bridgenettverk opprettes for å koble til Elasticsearch og Kibana tjenester.
4. Hvordan bruke
en. Starte tjenestene
For å starte Elasticsearch og Kibana kjør følgende kommando:
docker-compose up -d
b. Opprette en Kibana bruker(hvis nødvendig)
Hvis du vil bruke en dedikert bruker for Kibana, kan du opprette en med følgende kommando:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
For å bruke et token i stedet for et passord, kan du opprette et med følgende kommando:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Feilsøking
Hvis du støter på feil, kan du sjekke beholderloggene ved å bruke:
docker logs elasticsearch docker logs kibanaFor å starte på nytt Kibana:
Fullt innhold i Docker Compose filen
Nedenfor er hele innholdet i docker-compose-els.yml filen:
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
Konklusjon
Med denne Docker Compose konfigurasjonen kan du enkelt distribuere Elasticsearch og Kibana betjene dine behov for datasøk, analyse og visualisering. Tilpass og utvide denne konfigurasjonen for å passe de spesifikke kravene til prosjektet ditt!

