Docker Compose Elasticsearch & के लिए Kibana: सेटअप और कॉन्फ़िगरेशन

इस लेख में, हम यह पता लगाएंगे कि कैसे तैनात  Elasticsearch  और  Kibana उपयोग किया जाए Docker Compose । ये ELK स्टैक( Elasticsearch, लॉगस्टैश, Kibana) के दो प्रमुख घटक हैं, जो आपको डेटा को प्रभावी ढंग से खोजने, विश्लेषण करने और विज़ुअलाइज़ करने में मदद करते हैं। नीचे विस्तृत कॉन्फ़िगरेशन और प्रत्येक घटक कैसे काम करता है, बताया गया है।

1. Elasticsearch

क. मूल विन्यास

Elasticsearch निम्नलिखित पैरामीटर के साथ Docker कंटेनर में चलाने के लिए कॉन्फ़िगर किया गया है:

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

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

  • सुरक्षा:  X-पैक सुरक्षा सक्षम है( 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

2. Kibana

क. मूल विन्यास

Kibana Elasticsearch निम्नलिखित पैरामीटर्स के साथ Docker कंटेनर से कनेक्ट करने और चलाने के लिए कॉन्फ़िगर किया गया है:

  • छवि:  आधिकारिक Kibana छवि, संस्करण  8.17.2, का उपयोग किया गया है।

  • Elasticsearch कनेक्शन:  पता Elasticsearch पर सेट है  http://elasticsearch:9200.

  • प्रमाणीकरण:  किबाना   से कनेक्ट करने के लिए kibana_user  पासवर्ड के साथ  का उपयोग करता है । YVG6PKplG6ugGOw Elasticsearch

बी. Ports और नेटवर्क

  • Ports: इंटरफ़ेस तक पहुंचने के लिए  पोर्ट को  5601  कंटेनर से होस्ट तक मैप किया जाता है । Kibana

  • नेटवर्क:  किबाना से जुड़ा हुआ है  elk-network

ग. निर्भरता Elasticsearch

Kibana यह केवल Elasticsearch तैयार होने के बाद ही शुरू होता है, जिससे दो सेवाओं के बीच सफल कनेक्शन सुनिश्चित होता है।

3. वॉल्यूम और नेटवर्क

क. आयतन

  • elasticsearch-data:  इस वॉल्यूम का उपयोग Elasticsearch डेटा संग्रहीत करने के लिए किया जाता है, जिससे कंटेनर हटा दिए जाने पर भी डेटा की स्थिरता सुनिश्चित होती है।

ख. नेटवर्क

  • एल्क-नेटवर्क:  एक  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 सी.(यदि टोकन का उपयोग कर रहे हैं) बनाना

पासवर्ड के स्थान पर का उपयोग करने के लिए token, आप निम्न आदेश द्वारा एक पासवर्ड बना सकते हैं:

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

5. समस्या निवारण

  • यदि आपको कोई त्रुटि मिलती है, तो आप निम्न का उपयोग करके कंटेनर लॉग की जांच कर सकते हैं:

    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 अपनी परियोजना की विशिष्ट आवश्यकताओं को पूरा करने के लिए इस कॉन्फ़िगरेशन को अनुकूलित और विस्तारित करें!