Docker Compose Elasticsearch & కోసం Kibana: సెటప్ & కాన్ఫిగరేషన్

ఈ వ్యాసంలో, ఎలా అమలు చేయాలో  Elasticsearch  మరియు  Kibana ఎలా ఉపయోగించాలో మనం అన్వేషిస్తాము Docker Compose. ఇవి ELK స్టాక్( Elasticsearch, Logstash, Kibana) యొక్క రెండు కీలక భాగాలు, ఇవి డేటాను సమర్థవంతంగా శోధించడానికి, విశ్లేషించడానికి మరియు దృశ్యమానం చేయడానికి మీకు సహాయపడతాయి. క్రింద వివరణాత్మక కాన్ఫిగరేషన్‌లు మరియు ప్రతి భాగం ఎలా పనిచేస్తుందో ఉన్నాయి.

1. Elasticsearch

ఎ. ప్రాథమిక కాన్ఫిగరేషన్

Elasticsearch కింది పారామితులతో డాకర్ కంటైనర్‌లో అమలు చేయడానికి కాన్ఫిగర్ చేయబడింది:

  • చిత్రం:  అధికారిక 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 కింది పారామితులతో డాకర్ కంటైనర్‌కు కనెక్ట్ అవ్వడానికి మరియు అమలు చేయడానికి కాన్ఫిగర్ చేయబడింది:

  • చిత్రం:  అధికారిక 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 సి.(టోకెన్‌లను ఉపయోగిస్తుంటే) సృష్టించడం

పాస్‌వర్డ్‌కు బదులుగా a ని ఉపయోగించడానికి 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 అందించవచ్చు. మీ ప్రాజెక్ట్ యొక్క నిర్దిష్ట అవసరాలకు సరిపోయేలా ఈ కాన్ఫిగరేషన్‌ను అనుకూలీకరించండి మరియు విస్తరించండి!