Docker Compose għal Elasticsearch & Kibana: Setup & Konfigurazzjoni

F'dan l-artikolu, se nesploraw kif niskjeraw  Elasticsearch  u  Kibana nużaw Docker Compose. Dawn huma żewġ komponenti ewlenin tal-ELK Stack( Elasticsearch, Logstash, Kibana), li jgħinuk tfittex, tanalizza, u Ħares id-dejta b'mod effettiv. Hawn taħt jinsabu l-konfigurazzjonijiet dettaljati u kif jaħdem kull komponent.

1. Elasticsearch

a. Konfigurazzjoni Bażika

Elasticsearch huwa kkonfigurat biex jaħdem f'kontenitur Docker bil-parametri li ġejjin:

  • Image:  L-immaġni uffiċjali Elasticsearch, il-verżjoni  8.17.2, tintuża.

  • Modalità ta' nodu wieħed:  Ippermettiet permezz tal-varjabbli ambjentali  discovery.type=single-node.

  • Sigurtà:  Is-sigurtà X-Pack hija attivata( xpack.security.enabled=true), u l-password għall-  elastic  utent hija ssettjata għal  YVG6PKplG6ugGOw.

  • Netwerk:  Elasticsearch jisma' fuq l-interfaces tan-netwerk kollha( network.host=0.0.0.0).

  • JVM Memory:  Konfigurat bi  -Xms1g  (memorja inizjali) u  -Xmx1g  (memorja massima).

b. Ports u Volumes

  • Ports:  Port  9200  (HTTP) u  9300  (komunikazzjoni interna) huma mmappjati mill-kontenitur għall-host.

  • Volumes:  Id-dejta ta' Elasticsearch hija maħżuna fil-  elasticsearch-data  volum.

c. Kontroll tas-saħħa

Kontroll tas-saħħa huwa stabbilit biex jimmonitorja Elasticsearch l-istatus billi jsejjaħ l-  /_cluster/health  API mal  elastic -utent. Jekk l-API tonqos milli tirrispondi, il-kontenitur jerġa 'jibda.

2. Kibana

a. Konfigurazzjoni Bażika

Kibana huwa kkonfigurat biex jgħaqqad Elasticsearch u jaħdem f'kontenitur Docker bil-parametri li ġejjin:

  • Image:  L-immaġni uffiċjali Kibana, il-verżjoni  8.17.2, tintuża.

  • Elasticsearch Konnessjoni:  L Elasticsearch -indirizz huwa ssettjat għal  http://elasticsearch:9200.

  • Awtentikazzjoni:  Kibana juża  kibana_user  bil-password  YVG6PKplG6ugGOw  biex jgħaqqad ma' Elasticsearch.

b. Ports u Netwerks

  • Ports:  Il-port  5601  huwa mmappjat mill-kontenitur għall-host biex jaċċessa l- Kibana interface.

  • Netwerks:  Kibana huwa konness mal-  elk-network.

c. Dipendenza fuq Elasticsearch

Kibana jibda biss wara Elasticsearch li jkun lest, u jiżgura konnessjoni b'suċċess bejn iż-żewġ servizzi.

3. Volum u Netwerk

a. Volum

  • elasticsearch-data:  Dan il-volum jintuża biex jaħżen Elasticsearch id-dejta, u jiżgura l-persistenza tad-dejta anki jekk il-kontenitur jitħassar.

b. Netwerk

  • elk-network: bridge  Jinħoloq netwerk biex jgħaqqad  u  Elasticsearch servizzi Kibana.


4. Kif tuża

a. Jibdew is-Servizzi

Biex tibda Elasticsearch u Kibana, mexxi l-kmand li ġej:

docker-compose up -d

b. Ħolqien ta' Kibana Utent(Jekk Meħtieġa)

Jekk trid tuża utent iddedikat għal Kibana, tista 'toħloq wieħed bil-kmand li ġej:

docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
c. Ħolqien ta' Token(Jekk Tuża Tokens)

Biex tuża password token minflok password, tista' toħloq waħda bil-kmand li ġej:

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

5. Issolvi l-problemi

  • Jekk tiltaqa' ma' żbalji, tista' tiċċekkja r-reġistri tal-kontejners billi tuża:

    docker logs elasticsearch 
    docker logs kibana
  • Biex terġa 'tibda Kibana:

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

Kontenut sħiħ tal- Docker Compose Fajl

Hawn taħt hemm il-kontenut sħiħ tal-  docker-compose-els.yml  fajl:

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

Konklużjoni

B'din il Docker Compose -konfigurazzjoni, tista 'faċilment tuża Elasticsearch u Kibana taqdi l-ħtiġijiet tiegħek ta' tfittxija, analiżi u viżwalizzazzjoni tad-dejta. Ippersonalizza u estendi din il-konfigurazzjoni biex taqbel mar-rekwiżiti speċifiċi tal-proġett tiegħek!