Docker Compose برائے Elasticsearch & Kibana: سیٹ اپ اور کنفیگریشن

اس آرٹیکل میں، ہم دریافت کریں گے کہ کس طرح تعیناتی  Elasticsearch  اور  Kibana استعمال کرنا ہے Docker Compose ۔ یہ ELK Stack( Elasticsearch, Logstash, Kibana) کے دو اہم اجزاء ہیں، جو آپ کو ڈیٹا کو مؤثر طریقے سے تلاش کرنے، تجزیہ کرنے اور تصور کرنے میں مدد فراہم کرتے ہیں۔ ذیل میں تفصیلی کنفیگریشنز ہیں اور ہر ایک جزو کیسے کام کرتا ہے۔

1۔ Elasticsearch

a بنیادی ترتیب

Elasticsearch مندرجہ ذیل پیرامیٹرز کے ساتھ ڈوکر کنٹینر میں چلانے کے لیے ترتیب دیا گیا ہے۔

  • تصویر:  سرکاری Elasticsearch تصویر، ورژن  8.17.2 ، استعمال کیا جاتا ہے۔

  • سنگل نوڈ موڈ:  ماحولیاتی متغیر کے ذریعے فعال  discovery.type=single-node ۔

  • سیکیورٹی:  ایکس پیک سیکیورٹی فعال ہے( xpack.security.enabled=true) اور  elastic  صارف کے لیے پاس ورڈ سیٹ ہے  YVG6PKplG6ugGOw ۔

  • نیٹ ورک:  Elasticsearch تمام نیٹ ورک انٹرفیس( network.host=0.0.0.0) پر سنتا ہے۔

  • JVM میموری: -Xms1g  (ابتدائی میموری) اور  -Xmx1g  (زیادہ سے زیادہ میموری)  کے ساتھ تشکیل شدہ  ۔

ب Ports اور Volumes

  • Ports:  پورٹ  9200  (HTTP) اور  9300  (اندرونی کمیونیکیشن) کو کنٹینر سے میزبان تک میپ کیا جاتا ہے۔

  • Volumes:  Elasticsearch ڈیٹا کو  elasticsearch-data  والیوم میں محفوظ کیا جاتا ہے۔

c ہیلتھ چیک

صارف  کے ساتھ API  Elasticsearch کو کال کرکے اس کی حیثیت کی  نگرانی کے لیے ایک ہیلتھ چیک ترتیب دیا گیا ہے ۔ اگر API جواب دینے میں ناکام ہو جاتا ہے، تو کنٹینر دوبارہ شروع ہو جائے گا۔ /_cluster/health elastic

2. Kibana

a بنیادی ترتیب

Kibana Elasticsearch مندرجہ ذیل پیرامیٹرز کے ساتھ ڈوکر کنٹینر سے جڑنے اور چلانے کے لیے ترتیب دیا گیا ہے:

  • تصویر:  سرکاری Kibana تصویر، ورژن  8.17.2 ، استعمال کیا جاتا ہے۔

  • Elasticsearch کنکشن:  ایڈریس Elasticsearch پر سیٹ ہے  http://elasticsearch:9200 ۔

  • توثیق:  Kibana   سے رابطہ قائم کرنے کے لیے kibana_user  پاس ورڈ کے ساتھ  استعمال کرتا ہے ۔ YVG6PKplG6ugGOw Elasticsearch

ب Ports اور نیٹ ورکس

  • Ports: انٹرفیس تک رسائی کے لیے  پورٹ کو  5601  کنٹینر سے میزبان تک میپ کیا جاتا ہے Kibana ۔

  • نیٹ ورکس:  کبانا سے منسلک ہے  elk-network ۔

c پر انحصار Elasticsearch

Kibana تیار ہونے کے بعد ہی شروع ہوتا ہے Elasticsearch ، دونوں سروسز کے درمیان کامیاب کنکشن کو یقینی بناتا ہے۔

3. حجم اور نیٹ ورک

a حجم

  • elasticsearch-data:  یہ والیوم Elasticsearch ڈیٹا کو ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے، ڈیٹا کی برقراری کو یقینی بنانے کے لیے چاہے کنٹینر حذف ہو جائے۔

ب نیٹ ورک

  • elk-network:  ایک  bridge  نیٹ ورک مربوط Elasticsearch اور Kibana خدمات کے لیے بنایا گیا ہے۔


4. استعمال کرنے کا طریقہ

a سروسز شروع کرنا

شروع کرنے Elasticsearch اور Kibana ، درج ذیل کمانڈ کو چلائیں:

docker-compose up -d

ب صارف بنانا Kibana(اگر ضرورت ہو)

اگر آپ کے لیے ایک سرشار صارف استعمال کرنا چاہتے ہیں Kibana ، تو آپ درج ذیل کمانڈ کے ساتھ ایک بنا سکتے ہیں۔

docker exec -it elasticsearch /bin/elasticsearch-users useradd kibana_user -p you_password-r kibana_system
c تخلیق کرنا 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 اپنے ڈیٹا کی تلاش، تجزیہ، اور تصور کی ضروریات کو پورا کر سکتے ہیں۔ اپنے پروجیکٹ کی مخصوص ضروریات کو پورا کرنے کے لیے اس ترتیب کو اپنی مرضی کے مطابق بنائیں اور اس میں توسیع کریں!