V tem članku bomo raziskali, kako uvesti Elasticsearch in Kibana uporabljati Docker Compose. To sta dve ključni komponenti sklada ELK( Elasticsearch, Logstash, Kibana), ki vam pomagata učinkovito iskati, analizirati in vizualizirati podatke. Spodaj so podrobne konfiguracije in delovanje posamezne komponente.
1. Elasticsearch
a. Osnovna konfiguracija
Elasticsearch je konfiguriran za izvajanje v vsebniku Docker z naslednjimi parametri:
Slika: uporabljena je uradna Elasticsearch slika, različica
8.17.2.Način z enim vozliščem: omogočeno prek spremenljivke okolja
discovery.type=single-node.Varnost: varnost X-Pack je omogočena(
xpack.security.enabled=true), geslo zaelasticuporabnika pa je nastavljeno naYVG6PKplG6ugGOw.Omrežje: Elasticsearch posluša vse omrežne vmesnike(
network.host=0.0.0.0).Pomnilnik JVM: konfiguriran z
-Xms1g(začetni pomnilnik) in-Xmx1g(največji pomnilnik).
b. Ports in Volumes
Ports: Vrata
9200(HTTP) in9300(notranja komunikacija) so preslikana iz vsebnika v gostitelja.Volumes: Podatki Elasticsearch so shranjeni v
elasticsearch-datanosilcu.
c. Zdravstveni pregled
Zdravstveni pregled je nastavljen za spremljanje Elasticsearch statusa s klicem /_cluster/health API-ja z elastic uporabnikom. Če se API ne odzove, se vsebnik znova zažene.
2. Kibana
a. Osnovna konfiguracija
Kibana je konfiguriran za povezavo Elasticsearch in izvajanje v vsebniku Docker z naslednjimi parametri:
Slika: uporabljena je uradna Kibana slika, različica
8.17.2.Elasticsearch Povezava: naslov Elasticsearch je nastavljen na
http://elasticsearch:9200.Preverjanje pristnosti: Kibana uporablja
kibana_userz geslomYVG6PKplG6ugGOwza povezavo z Elasticsearch.
b. Ports in omrežja
Ports: Vrata
5601so preslikana iz vsebnika v gostitelja za dostop do Kibana vmesnika.Omrežja: Kibana je povezana z
elk-network.
c. Odvisnost od Elasticsearch
Kibana se zažene šele, ko Elasticsearch je pripravljen, kar zagotavlja uspešno povezavo med obema storitvama.
3. Glasnost in omrežje
a. Glasnost
elasticsearch-data: Ta nosilec se uporablja za shranjevanje Elasticsearch podatkov, kar zagotavlja obstojnost podatkov, tudi če je vsebnik izbrisan.
b. Omrežje
elk-omrežje: Omrežje
bridgeje ustvarjeno za povezovanje Elasticsearch in Kibana storitve.
4. Kako uporabljati
a. Zagon storitev
Za zagon Elasticsearch in Kibana zaženite ta ukaz:
docker-compose up -d
b. Ustvarjanje Kibana uporabnika(če je potrebno)
Če želite uporabiti namenskega uporabnika za Kibana, ga lahko ustvarite z naslednjim ukazom:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Če želite uporabiti token namesto gesla, ga lahko ustvarite z naslednjim ukazom:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Odpravljanje težav
Če naletite na napake, lahko preverite dnevnike vsebnika z:
docker logs elasticsearch docker logs kibanaZa ponovni zagon Kibana:
Celotna vsebina Docker Compose datoteke
Spodaj je celotna vsebina datoteke docker-compose-els.yml :
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ček
S to Docker Compose konfiguracijo lahko preprosto uvedete Elasticsearch in Kibana služite svojim potrebam po iskanju, analizi in vizualizaciji podatkov. Prilagodite in razširite to konfiguracijo, da bo ustrezala posebnim zahtevam vašega projekta!

