Docker Compose Elasticsearch & को लागि Kibana: सेटअप र कन्फिगरेसन

यस लेखमा, हामी कसरी तैनाथ गर्ने  Elasticsearch  र  Kibana प्रयोग गर्ने भनेर अन्वेषण गर्नेछौं Docker Compose । यी ELK स्ट्याक( Elasticsearch, Logstash, Kibana) का दुई प्रमुख घटकहरू हुन्, जसले तपाईंलाई प्रभावकारी रूपमा डेटा खोजी, विश्लेषण र कल्पना गर्न मद्दत गर्दछ। तल विस्तृत कन्फिगरेसनहरू र प्रत्येक घटकले कसरी काम गर्छ भनेर दिइएको छ।

१. Elasticsearch

a. आधारभूत कन्फिगरेसन

Elasticsearch निम्न प्यारामिटरहरू सहित डकर कन्टेनरमा चलाउन कन्फिगर गरिएको छ:

  • छवि:  आधिकारिक Elasticsearch छवि, संस्करण  8.17.2, प्रयोग गरिएको छ।

  • एकल-नोड मोड:  वातावरण चर मार्फत सक्षम पारिएको  discovery.type=single-node

  • सुरक्षा:  X-Pack सुरक्षा सक्षम पारिएको छ( 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

a. आधारभूत कन्फिगरेसन

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, जसले कन्टेनर मेटाइए पनि डेटाको स्थिरता सुनिश्चित गर्दछ।

ख. नेटवर्क

  • एल्क-नेटवर्क: जडान र सेवाहरूको लागि  नेटवर्क  bridge  सिर्जना गरिन्छ । Elasticsearch Kibana


कसरी प्रयोग गर्ने

क. सेवाहरू सुरु गर्ने

सुरु गर्न 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 आफ्नो डेटा खोज, विश्लेषण, र दृश्यावलोकन आवश्यकताहरू पूरा गर्न तैनाथ गर्न सक्नुहुन्छ। तपाईंको परियोजनाको विशिष्ट आवश्यकताहरू पूरा गर्न यो कन्फिगरेसनलाई अनुकूलित र विस्तार गर्नुहोस्!