Docker Compose Elasticsearch & এর জন্য Kibana: সেটআপ এবং কনফিগারেশন

এই প্রবন্ধে, আমরা কীভাবে স্থাপন  Elasticsearch  এবং  Kibana ব্যবহার করতে হয় তা অন্বেষণ করব Docker Compose । এগুলি ELK স্ট্যাকের দুটি মূল উপাদান( Elasticsearch, Logstash, Kibana), যা আপনাকে কার্যকরভাবে ডেটা অনুসন্ধান, বিশ্লেষণ এবং কল্পনা করতে সহায়তা করে। নীচে বিস্তারিত কনফিগারেশন এবং প্রতিটি উপাদান কীভাবে কাজ করে তা দেওয়া হল।

১. Elasticsearch

ক. মৌলিক কনফিগারেশন

Elasticsearch নিম্নলিখিত প্যারামিটার সহ একটি ডকার কন্টেইনারে চালানোর জন্য কনফিগার করা হয়েছে:

  • ছবি:  অফিসিয়াল Elasticsearch ছবি, সংস্করণ  8.17.2, ব্যবহার করা হয়েছে।

  • একক-নোড মোড:  পরিবেশ ভেরিয়েবলের মাধ্যমে সক্ষম  discovery.type=single-node

  • নিরাপত্তা:  এক্স-প্যাক নিরাপত্তা সক্রিয়( xpack.security.enabled=true) আছে, এবং ব্যবহারকারীর পাসওয়ার্ড  elastic  সেট করা আছে  YVG6PKplG6ugGOw

  • নেটওয়ার্ক: network.host=0.0.0.0 ইলাস্টিকসার্চ সমস্ত নেটওয়ার্ক ইন্টারফেসে()  শোনে ।

  • JVM মেমোরি: -Xms1g  (প্রাথমিক মেমোরি) এবং  -Xmx1g  (সর্বোচ্চ মেমোরি)  দিয়ে কনফিগার করা  ।

খ. Ports এবং Volumes

  • Ports:  পোর্ট  9200  (HTTP) এবং  9300  (অভ্যন্তরীণ যোগাযোগ) কন্টেইনার থেকে হোস্টে ম্যাপ করা হয়।

  • Volumes:  ইলাস্টিকসার্চ ডেটা ভলিউমে সংরক্ষণ করা হয়  elasticsearch-data  ।

গ. স্বাস্থ্য পরীক্ষা

 ব্যবহারকারীর সাথে API  Elasticsearch কল করে এর অবস্থা  পর্যবেক্ষণ করার জন্য একটি স্বাস্থ্য পরীক্ষা সেট আপ করা হয় । যদি API সাড়া দিতে ব্যর্থ হয়, তাহলে কন্টেইনারটি পুনরায় চালু হবে। /_cluster/health elastic

২. Kibana

ক. মৌলিক কনফিগারেশন

Kibana Elasticsearch নিম্নলিখিত প্যারামিটার সহ একটি ডকার কন্টেইনারে সংযোগ স্থাপন এবং চালানোর জন্য কনফিগার করা হয়েছে:

  • ছবি:  অফিসিয়াল Kibana ছবি, সংস্করণ  8.17.2, ব্যবহার করা হয়েছে।

  • Elasticsearch সংযোগ:  ঠিকানাটি Elasticsearch তে সেট করা আছে  http://elasticsearch:9200

  • প্রমাণীকরণ:  কিবানা  এর  সাথে সংযোগ স্থাপনের জন্য kibana_user  পাসওয়ার্ড  ব্যবহার করে । YVG6PKplG6ugGOw Elasticsearch

খ. Ports এবং নেটওয়ার্ক

  • Ports: 5601 ইন্টারফেস  অ্যাক্সেস করার জন্য কন্টেইনার থেকে হোস্টে  পোর্ট  ম্যাপ করা হয় Kibana ।

  • নেটওয়ার্ক:  কিবানা এর সাথে সংযুক্ত  elk-network

গ. নির্ভরতা Elasticsearch

Kibana প্রস্তুত হওয়ার পরেই শুরু হয় Elasticsearch, যা দুটি পরিষেবার মধ্যে একটি সফল সংযোগ নিশ্চিত করে।

৩. ভলিউম এবং নেটওয়ার্ক

ক. আয়তন

  • elasticsearch-data:  এই ভলিউমটি ডেটা সংরক্ষণের জন্য ব্যবহৃত হয় Elasticsearch, যা কন্টেইনারটি মুছে ফেলা হলেও ডেটা টিকে থাকার বিষয়টি নিশ্চিত করে।

খ. নেটওয়ার্ক

  • elk-network: bridge  সংযোগ Elasticsearch এবং Kibana পরিষেবা প্রদানের জন্য  একটি  নেটওয়ার্ক তৈরি করা হয়।


4. কিভাবে ব্যবহার করবেন

ক. পরিষেবা শুরু করা

শুরু করতে Elasticsearch এবং করতে Kibana, নিম্নলিখিত কমান্ডটি চালান:

docker-compose up -d

খ. Kibana ব্যবহারকারী তৈরি করা(প্রয়োজনে)

যদি আপনি এর জন্য একটি ডেডিকেটেড ব্যবহারকারী ব্যবহার করতে চান Kibana, তাহলে আপনি নিম্নলিখিত কমান্ড ব্যবহার করে একটি তৈরি করতে পারেন:

docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
গ. একটি Token(টোকেন ব্যবহার করলে) তৈরি করা

পাসওয়ার্ডের পরিবর্তে a ব্যবহার করতে token, আপনি নিম্নলিখিত কমান্ড ব্যবহার করে একটি তৈরি করতে পারেন:

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

৫. সমস্যা সমাধান

  • যদি আপনি ত্রুটির সম্মুখীন হন, তাহলে আপনি নিম্নলিখিতগুলি ব্যবহার করে কন্টেইনার লগগুলি পরীক্ষা করতে পারেন:

    docker logs elasticsearch 
    docker logs kibana
  • পুনরায় চালু করতে Kibana:

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

Docker Compose ফাইলের সম্পূর্ণ বিষয়বস্তু

ফাইলটির সম্পূর্ণ বিষয়বস্তু নিচে দেওয়া হল  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

উপসংহার

এই Docker Compose কনফিগারেশনের সাহায্যে, আপনি সহজেই আপনার ডেটা অনুসন্ধান, বিশ্লেষণ এবং ভিজ্যুয়ালাইজেশনের চাহিদা পূরণ করতে Elasticsearch এবং Kibana স্থাপন করতে পারবেন। আপনার প্রকল্পের নির্দিষ্ট প্রয়োজনীয়তার সাথে মানানসই করে এই কনফিগারেশনটি কাস্টমাইজ এবং প্রসারিত করুন!