Šiame straipsnyje mes išnagrinėsime, kaip įdiegti Elasticsearch ir Kibana naudoti Docker Compose. Tai yra du pagrindiniai ELK Stack( Elasticsearch, Logstash, Kibana) komponentai, padedantys efektyviai ieškoti, analizuoti ir vizualizuoti duomenis. Žemiau pateikiamos išsamios konfigūracijos ir kiekvieno komponento veikimo principas.
1. Elasticsearch
a. Pagrindinė konfigūracija
Elasticsearch sukonfigūruotas veikti Docker konteineryje su šiais parametrais:
Vaizdas: naudojamas oficialus Elasticsearch vaizdas, versija .
8.17.2Vieno mazgo režimas: įgalinamas naudojant aplinkos kintamąjį
discovery.type=single-node.Sauga: X-Pack sauga įjungta(
xpack.security.enabled=true), o vartotojo slaptažodiselasticnustatytas įYVG6PKplG6ugGOw.Tinklas: „Elasticsearch“ klausosi visose tinklo sąsajose(
network.host=0.0.0.0).JVM atmintis: sukonfigūruota
-Xms1g(pradinė atmintis) ir-Xmx1g(maksimali atmintis).
b. Ports ir Volumes
Ports: Prievadas
9200(HTTP) ir9300(vidinis ryšys) susiejami iš konteinerio su pagrindiniu kompiuteriu.Volumes: Elasticsearch duomenys saugomi
elasticsearch-datatome.
c. Sveikatos patikrinimas
Būsenos patikra nustatyta, kad būtų galima stebėti Elasticsearch būseną, paskambinus /_cluster/health API su elastic vartotoju. Jei API neatsako, sudėtinis rodinys bus paleistas iš naujo.
2. Kibana
a. Pagrindinė konfigūracija
Kibana sukonfigūruotas prisijungti Elasticsearch prie Docker konteinerio ir paleisti jame su šiais parametrais:
Vaizdas: naudojamas oficialus Kibana vaizdas, versija .
8.17.2Elasticsearch Ryšys: adresas Elasticsearch nustatytas į
http://elasticsearch:9200.Autentifikavimas: „Kibana“ naudoja
kibana_usersu slaptažodžiuYVG6PKplG6ugGOw, kad prisijungtų prie Elasticsearch.
b. Ports ir tinklai
Ports: prievadas
5601susietas iš konteinerio su pagrindiniu kompiuteriu, kad būtų galima pasiekti Kibana sąsają.Tinklai: Kibana yra prijungta prie
elk-network.
c. Priklausomybė nuo Elasticsearch
Kibana prasideda tik po to, kai Elasticsearch yra paruošta, užtikrinant sėkmingą dviejų paslaugų ryšį.
3. Apimtis ir tinklas
a. Apimtis
elasticsearch-data: šis tūris naudojamas Elasticsearch duomenims saugoti, užtikrinant duomenų išlikimą, net jei konteineris ištrintas.
b. Tinklas
elk-network: Tinklas
bridgesukurtas prisijungti Elasticsearch ir Kibana aptarnauti.
4. Kaip naudoti
a. Paslaugų paleidimas
Norėdami pradėti Elasticsearch ir Kibana, paleiskite šią komandą:
docker-compose up -d
b. Vartotojo sukūrimas Kibana(jei reikia)
Jei norite naudoti skirtą vartotoją Kibana, galite jį sukurti naudodami šią komandą:
docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
Norėdami naudoti token ne slaptažodį, galite sukurti jį naudodami šią komandą:
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token
5. Trikčių šalinimas
Jei atsiranda klaidų, galite patikrinti sudėtinio rodinio žurnalus naudodami:
docker logs elasticsearch docker logs kibanaNorėdami paleisti iš naujo Kibana:
Docker Compose Visas failo turinys
Žemiau pateikiamas visas failo turinys 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
Išvada
Naudodami šią Docker Compose konfigūraciją galite lengvai įdiegti Elasticsearch ir Kibana patenkinti duomenų paieškos, analizės ir vizualizavimo poreikius. Tinkinkite ir išplėskite šią konfigūraciją, kad ji atitiktų konkrečius jūsų projekto reikalavimus!

