U ovom ćemo članku istražiti kako implementirati Elasticsearch i Kibana koristiti Docker Compose. Ovo su dvije ključne komponente ELK Stacka( Elasticsearch, Logstash, Kibana), koje vam pomažu u učinkovitom pretraživanju, analizi i vizualizaciji podataka. Ispod su detaljne konfiguracije i način rada svake komponente.
1. Elasticsearch
a. Osnovna konfiguracija
Elasticsearch je konfiguriran za rad u Docker spremniku sa sljedećim parametrima:
Slika: Koristi se službena Elasticsearch slika, verzija
8.17.2.Način rada s jednim čvorom: Omogućeno putem varijable okruženja
discovery.type=single-node.Sigurnost: X-Pack sigurnost je omogućena(
xpack.security.enabled=true), a lozinka zaelastickorisnika postavljena je naYVG6PKplG6ugGOw.Mreža: Elasticsearch sluša sva mrežna sučelja(
network.host=0.0.0.0).JVM memorija: Konfigurirano s
-Xms1g(početna memorija) i-Xmx1g(maksimalna memorija).
b. Ports i Volumes
Ports: Port
9200(HTTP) i9300(interna komunikacija) preslikavaju se iz spremnika u host.Volumes: Elasticsearch podaci pohranjeni su u
elasticsearch-datavolumenu.
c. Zdravstveni pregled
Healthcheck je postavljen za praćenje Elasticsearch statusa pozivanjem /_cluster/health API-ja s elastic korisnikom. Ako API ne odgovori, spremnik će se ponovno pokrenuti.
2. Kibana
a. Osnovna konfiguracija
Kibana je konfiguriran za povezivanje Elasticsearch i rad u Docker spremniku sa sljedećim parametrima:
Slika: Koristi se službena Kibana slika, verzija
8.17.2.Elasticsearch Veza: adresa Elasticsearch je postavljena na
http://elasticsearch:9200.Autentifikacija: Kibana koristi
kibana_users lozinkomYVG6PKplG6ugGOwza povezivanje s Elasticsearch.
b. Ports i mreže
Ports: Port
5601se preslikava iz spremnika u host za pristup Kibana sučelju.Mreže: Kibana je spojena na
elk-network.
c. Ovisnost o Elasticsearch
Kibana počinje tek nakon što Elasticsearch je spreman, osiguravajući uspješnu vezu između dvije usluge.
3. Volumen i mreža
a. Volumen
elasticsearch-data: Ovaj se volumen koristi za pohranu Elasticsearch podataka, osiguravajući postojanost podataka čak i ako se spremnik izbriše.
b. Mreža
elk-mreža: Mreža
bridgeje stvorena za povezivanje Elasticsearch i Kibana usluge.
4. Kako koristiti
a. Pokretanje usluga
Za pokretanje Elasticsearch i Kibana, pokrenite sljedeću naredbu:
docker-compose up -d
b. Stvaranje Kibana korisnika(ako je potrebno)
Ako želite koristiti namjenskog korisnika za Kibana, možete ga stvoriti sljedećom naredbom:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Za korištenje token umjesto lozinke, možete je stvoriti sljedećom naredbom:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Rješavanje problema
Ako naiđete na pogreške, možete provjeriti zapisnike spremnika pomoću:
docker logs elasticsearch docker logs kibanaZa ponovno pokretanje Kibana:
Puni sadržaj Docker Compose datoteke
Ispod je puni sadržaj docker-compose-els.yml datoteke:
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
Zaključak
S ovom Docker Compose konfiguracijom možete jednostavno implementirati Elasticsearch i Kibana služiti vašim potrebama pretraživanja, analize i vizualizacije podataka. Prilagodite i proširite ovu konfiguraciju kako bi odgovarala specifičnim zahtjevima vašeg projekta!

