Docker Compose për Elasticsearch & Kibana: Konfigurimi dhe konfigurimi

Në këtë artikull, ne do të shqyrtojmë se si të vendosim  Elasticsearch  dhe  Kibana përdorim Docker Compose. Këto janë dy komponentët kryesorë të ELK Stack( Elasticsearch, Logstash, Kibana), që ju ndihmojnë të kërkoni, analizoni dhe vizualizoni të dhënat në mënyrë efektive. Më poshtë janë konfigurimet e detajuara dhe si funksionon secili komponent.

1. Elasticsearch

a. Konfigurimi bazë

Elasticsearch është konfiguruar të funksionojë në një kontejner Docker me parametrat e mëposhtëm:

  • Imazhi: Përdoret imazhi  zyrtar Elasticsearch, versioni . 8.17.2

  • Modaliteti me një nyje:  Aktivizohet nëpërmjet ndryshores së mjedisit  discovery.type=single-node.

  • Siguria:  Siguria e X-Pack është aktivizuar( xpack.security.enabled=true), dhe fjalëkalimi për  elastic  përdoruesin është caktuar në  YVG6PKplG6ugGOw.

  • Rrjeti:  Elasticsearch dëgjon në të gjitha ndërfaqet e rrjetit( network.host=0.0.0.0).

  • Kujtesa JVM:  Konfigurohet me  -Xms1g  (memorie fillestare) dhe  -Xmx1g  (memorie maksimale).

b. Ports dhe Volumes

  • Ports:  Porta  9200  (HTTP) dhe  9300  (komunikimi i brendshëm) janë të hartuara nga kontejneri në host.

  • Volumes:  Të dhënat e Elasticsearch ruhen në  elasticsearch-data  vëllim.

c. Kontrolli shëndetësor

Është krijuar një kontroll shëndetësor për të monitoruar Elasticsearch statusin e tij duke telefonuar  /_cluster/health  API-në me  elastic përdoruesin. Nëse API nuk përgjigjet, kontejneri do të riniset.

2. Kibana

a. Konfigurimi bazë

Kibana është konfiguruar të lidhet Elasticsearch dhe të funksionojë në një kontejner Docker me parametrat e mëposhtëm:

  • Imazhi: Përdoret imazhi  zyrtar Kibana, versioni . 8.17.2

  • Elasticsearch Lidhja:  Adresa Elasticsearch është caktuar në  http://elasticsearch:9200.

  • Vërtetimi:  Kibana përdor fjalëkalimin  kibana_user  me fjalëkalim  YVG6PKplG6ugGOw  për t'u lidhur me Elasticsearch.

b. Ports dhe Rrjetet

  • Ports:  Porti  5601  është hartuar nga kontejneri në host për të hyrë në Kibana ndërfaqe.

  • Rrjetet:  Kibana është e lidhur me  elk-network.

c. Varësia nga Elasticsearch

Kibana fillon vetëm pasi Elasticsearch të jetë gati, duke siguruar një lidhje të suksesshme midis dy shërbimeve.

3. Vëllimi dhe Rrjeti

a. Vëllimi

  • elasticsearch-data:  Ky vëllim përdoret për të ruajtur Elasticsearch të dhënat, duke siguruar qëndrueshmëri të të dhënave edhe nëse kontejneri fshihet.

b. Rrjeti

  • elk-network: bridge  Krijohet  një  rrjet për t'u lidhur Elasticsearch dhe Kibana për të shërbyer.


4. Si të përdorni

a. Fillimi i Shërbimeve

Për të filluar Elasticsearch dhe Kibana, ekzekutoni komandën e mëposhtme:

docker-compose up -d

b. Krijimi i një Kibana përdoruesi(nëse është e nevojshme)

Nëse dëshironi të përdorni një përdorues të dedikuar për Kibana, mund të krijoni një me komandën e mëposhtme:

docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
c. Krijimi i një Token(nëse përdorni argumente)

Për të përdorur një token fjalëkalim në vend të një fjalëkalimi, mund të krijoni një me komandën e mëposhtme:

docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana kibana-token

5. Zgjidhja e problemeve

  • Nëse hasni gabime, mund të kontrolloni regjistrat e kontejnerëve duke përdorur:

    docker logs elasticsearch 
    docker logs kibana
  • Për të rifilluar Kibana:

    docker-compose down kibana && docker-compose up -d kibana

Përmbajtja e plotë e Docker Compose skedarit

Më poshtë është përmbajtja e plotë e  docker-compose-els.yml  dosjes:

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

konkluzioni

Me këtë Docker Compose konfigurim, ju mund të vendosni lehtësisht Elasticsearch dhe Kibana t'i shërbeni nevojave tuaja të kërkimit, analizës dhe vizualizimit të të dhënave. Personalizojeni dhe zgjeroni këtë konfigurim për t'iu përshtatur kërkesave specifike të projektit tuaj!