इस लेख में, हम यह पता लगाएंगे कि कैसे तैनात 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पासवर्ड के साथ का उपयोग करता है ।YVG6PKplG6ugGOwElasticsearch
बी. 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, आप निम्न आदेश द्वारा एक पासवर्ड बना सकते हैं:
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 फ़ाइल की पूरी सामग्री
फ़ाइल की पूरी सामग्री नीचे दी गई है 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 अपनी परियोजना की विशिष्ट आवश्यकताओं को पूरा करने के लिए इस कॉन्फ़िगरेशन को अनुकूलित और विस्तारित करें!

