Docker Compose kwa Elasticsearch & Kibana: Mipangilio na Usanidi

Katika makala hii, tutachunguza jinsi ya kupeleka  Elasticsearch  na  Kibana kutumia Docker Compose. Hivi ni vipengele viwili muhimu vya ELK Stack( Elasticsearch, Logstash, Kibana), vinavyokusaidia kutafuta, kuchambua, na kuibua data kwa ufanisi. Ifuatayo ni usanidi wa kina na jinsi kila sehemu inavyofanya kazi.

1. Elasticsearch

a. Usanidi wa Msingi

Elasticsearch imeundwa kuendeshwa kwenye chombo cha Docker na vigezo vifuatavyo:

  • Picha: Picha  rasmi Elasticsearch, toleo  8.17.2, hutumiwa.

  • Hali ya nodi moja:  Imewashwa kupitia utofauti wa mazingira  discovery.type=single-node.

  • Usalama:  Usalama wa X-Pack umewezeshwa( xpack.security.enabled=true), na nenosiri la  elastic  mtumiaji limewekwa  YVG6PKplG6ugGOw.

  • Mtandao:  Elasticsearch husikiliza kwenye violesura vyote vya mtandao( network.host=0.0.0.0).

  • Kumbukumbu ya JVM:  Imesanidiwa na  -Xms1g  (kumbukumbu ya awali) na  -Xmx1g  (kumbukumbu ya juu).

b. Ports na Volumes

  • Ports:  Lango  9200  (HTTP) na  9300  (mawasiliano ya ndani) yamepangwa kutoka kwa chombo hadi kwa seva pangishi.

  • Volumes:  Data ya Elasticsearch imehifadhiwa katika  elasticsearch-data  kiasi.

c. Uchunguzi wa afya

Ukaguzi wa afya umeundwa ili kufuatilia Elasticsearch hali kwa kupiga  /_cluster/health  API na  elastic mtumiaji. Ikiwa API itashindwa kujibu, kontena itaanza tena.

2. Kibana

a. Usanidi wa Msingi

Kibana imeundwa kuunganishwa Elasticsearch na kukimbia kwenye chombo cha Docker na vigezo vifuatavyo:

  • Picha: Picha  rasmi Kibana, toleo  8.17.2, hutumiwa.

  • Elasticsearch Muunganisho:  Anwani Elasticsearch imewekwa  http://elasticsearch:9200.

  • Uthibitishaji:  Kibana hutumia  kibana_user  na nenosiri  YVG6PKplG6ugGOw  kuunganisha kwa Elasticsearch.

b. Ports na Mitandao

  • Ports:  Mlango  5601  umechorwa kutoka kwa kontena hadi kwa seva pangishi ili kufikia Kibana kiolesura.

  • Mitandao:  Kibana imeunganishwa kwenye  elk-network.

c. Kutegemea Elasticsearch

Kibana huanza tu baada ya Elasticsearch kuwa tayari, kuhakikisha muunganisho uliofanikiwa kati ya huduma hizi mbili.

3. Kiasi na Mtandao

a. Kiasi

  • elasticsearch-data:  Kiasi hiki kinatumika kuhifadhi Elasticsearch data, kuhakikisha uendelevu wa data hata kama chombo kimefutwa.

b. Mtandao

  • elk-network:  Mtandao  bridge  umeundwa ili kuunganisha Elasticsearch na Kibana huduma.


4. Jinsi ya Kutumia

a. Kuanzisha Huduma

Kuanza Elasticsearch na Kibana, endesha amri ifuatayo:

docker-compose up -d

b. Kuunda Kibana Mtumiaji(Ikihitajika)

Ikiwa unataka kutumia mtumiaji aliyejitolea kwa Kibana, unaweza kuunda moja kwa amri ifuatayo:

docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
c. Kuunda Token(Ikiwa Unatumia Ishara)

Ili kutumia token badala ya nenosiri, unaweza kuunda moja kwa amri ifuatayo:

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

5. Kutatua matatizo

  • Ikiwa utapata makosa, unaweza kuangalia kumbukumbu za kontena kwa kutumia:

    docker logs elasticsearch 
    docker logs kibana
  • Ili kuanzisha upya Kibana:

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

Maudhui Kamili ya Docker Compose Faili

Yafuatayo ni maudhui kamili ya  docker-compose-els.yml  faili:

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

Hitimisho

Kwa Docker Compose usanidi huu, unaweza kusambaza kwa urahisi Elasticsearch na Kibana kutumikia mahitaji yako ya utafutaji, uchambuzi na taswira ya data. Geuza kukufaa na upanue usanidi huu ili kutoshea mahitaji mahususi ya mradi wako!