Docker Compose ਲਈ Elasticsearch & Kibana: ਸੈੱਟਅੱਪ ਅਤੇ ਸੰਰਚਨਾ

ਇਸ ਲੇਖ ਵਿੱਚ, ਅਸੀਂ ਖੋਜ ਕਰਾਂਗੇ ਕਿ ਕਿਵੇਂ ਤੈਨਾਤ ਕਰਨਾ ਹੈ  Elasticsearch  ਅਤੇ  Kibana ਕਿਵੇਂ ਵਰਤਣਾ ਹੈ Docker Compose । ਇਹ ELK ਸਟੈਕ( Elasticsearch, Logstash, Kibana) ਦੇ ਦੋ ਮੁੱਖ ਹਿੱਸੇ ਹਨ, ਜੋ ਤੁਹਾਨੂੰ ਡੇਟਾ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਖੋਜਣ, ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨ ਅਤੇ ਕਲਪਨਾ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੇ ਹਨ। ਹੇਠਾਂ ਵਿਸਤ੍ਰਿਤ ਸੰਰਚਨਾਵਾਂ ਹਨ ਅਤੇ ਹਰੇਕ ਭਾਗ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ।

1. Elasticsearch

a. ਮੁੱਢਲੀ ਸੰਰਚਨਾ

Elasticsearch ਨੂੰ ਹੇਠ ਲਿਖੇ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਇੱਕ ਡੌਕਰ ਕੰਟੇਨਰ ਵਿੱਚ ਚਲਾਉਣ ਲਈ ਕੌਂਫਿਗਰ ਕੀਤਾ ਗਿਆ ਹੈ:

  • ਚਿੱਤਰ:  ਅਧਿਕਾਰਤ Elasticsearch ਚਿੱਤਰ, ਸੰਸਕਰਣ  8.17.2, ਵਰਤਿਆ ਗਿਆ ਹੈ।

  • ਸਿੰਗਲ-ਨੋਡ ਮੋਡ:  ਵਾਤਾਵਰਣ ਵੇਰੀਏਬਲ ਰਾਹੀਂ ਸਮਰੱਥ  discovery.type=single-node

  • ਸੁਰੱਖਿਆ:  ਐਕਸ-ਪੈਕ ਸੁਰੱਖਿਆ ਸਮਰੱਥ ਹੈ( xpack.security.enabled=true), ਅਤੇ ਉਪਭੋਗਤਾ ਲਈ ਪਾਸਵਰਡ  elastic  ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ  YVG6PKplG6ugGOw

  • ਨੈੱਟਵਰਕ:  ਇਲੈਸਟਿਕਸਰਚ ਸਾਰੇ ਨੈੱਟਵਰਕ ਇੰਟਰਫੇਸਾਂ( network.host=0.0.0.0) 'ਤੇ ਸੁਣਦਾ ਹੈ।

  • JVM ਮੈਮੋਰੀ: -Xms1g  (ਸ਼ੁਰੂਆਤੀ ਮੈਮੋਰੀ) ਅਤੇ  -Xmx1g  (ਵੱਧ ਤੋਂ ਵੱਧ ਮੈਮੋਰੀ)  ਨਾਲ ਸੰਰਚਿਤ  ।

ਅ. Ports ਅਤੇ Volumes

  • Ports:  ਪੋਰਟ  9200  (HTTP) ਅਤੇ  9300  (ਅੰਦਰੂਨੀ ਸੰਚਾਰ) ਨੂੰ ਕੰਟੇਨਰ ਤੋਂ ਹੋਸਟ ਤੱਕ ਮੈਪ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।

  • Volumes:  ਇਲਾਸਟਿਕਸਰਚ ਡੇਟਾ  elasticsearch-data  ਵਾਲੀਅਮ ਵਿੱਚ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।

c. ਸਿਹਤ ਜਾਂਚ

 ਉਪਭੋਗਤਾ ਨਾਲ API ਨੂੰ  Elasticsearch ਕਾਲ ਕਰਕੇ ਸਥਿਤੀ ਦੀ  ਨਿਗਰਾਨੀ ਕਰਨ ਲਈ ਇੱਕ ਸਿਹਤ ਜਾਂਚ ਸਥਾਪਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ । ਜੇਕਰ API ਜਵਾਬ ਦੇਣ ਵਿੱਚ ਅਸਫਲ ਰਹਿੰਦਾ ਹੈ, ਤਾਂ ਕੰਟੇਨਰ ਮੁੜ ਚਾਲੂ ਹੋ ਜਾਵੇਗਾ। /_cluster/health elastic

2. Kibana

a. ਮੁੱਢਲੀ ਸੰਰਚਨਾ

Kibana Elasticsearch ਨੂੰ ਹੇਠ ਲਿਖੇ ਪੈਰਾਮੀਟਰਾਂ ਨਾਲ ਇੱਕ ਡੌਕਰ ਕੰਟੇਨਰ ਨਾਲ ਜੁੜਨ ਅਤੇ ਚਲਾਉਣ ਲਈ ਸੰਰਚਿਤ ਕੀਤਾ ਗਿਆ ਹੈ:

  • ਚਿੱਤਰ:  ਅਧਿਕਾਰਤ Kibana ਚਿੱਤਰ, ਸੰਸਕਰਣ  8.17.2, ਵਰਤਿਆ ਗਿਆ ਹੈ।

  • Elasticsearch ਕਨੈਕਸ਼ਨ:  ਪਤਾ Elasticsearch ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ  http://elasticsearch:9200

  • ਪ੍ਰਮਾਣਿਕਤਾ:  ਕਿਬਾਨਾ   ਨਾਲ ਜੁੜਨ ਲਈ kibana_user  ਪਾਸਵਰਡ ਦੀ  ਵਰਤੋਂ ਕਰਦਾ ਹੈ । YVG6PKplG6ugGOw Elasticsearch

b. Ports ਅਤੇ ਨੈੱਟਵਰਕ

  • Ports: ਇੰਟਰਫੇਸ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ  ਪੋਰਟ ਨੂੰ  5601  ਕੰਟੇਨਰ ਤੋਂ ਹੋਸਟ ਤੱਕ ਮੈਪ ਕੀਤਾ ਜਾਂਦਾ ਹੈ Kibana ।

  • ਨੈੱਟਵਰਕ:  ਕਿਬਾਨਾ ਨਾਲ ਜੁੜਿਆ ਹੋਇਆ ਹੈ  elk-network

c. 'ਤੇ ਨਿਰਭਰਤਾ Elasticsearch

Kibana ਤਿਆਰ ਹੋਣ ਤੋਂ ਬਾਅਦ ਹੀ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ Elasticsearch, ਦੋਵਾਂ ਸੇਵਾਵਾਂ ਵਿਚਕਾਰ ਇੱਕ ਸਫਲ ਕਨੈਕਸ਼ਨ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ।

3. ਵਾਲੀਅਮ ਅਤੇ ਨੈੱਟਵਰਕ

a. ਵਾਲੀਅਮ

  • elasticsearch-data:  ਇਸ ਵਾਲੀਅਮ ਦੀ ਵਰਤੋਂ Elasticsearch ਡੇਟਾ ਸਟੋਰ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਕੰਟੇਨਰ ਮਿਟਾਏ ਜਾਣ 'ਤੇ ਵੀ ਡੇਟਾ ਸਥਿਰਤਾ ਰਹੇ।

ਅ. ਨੈੱਟਵਰਕ

  • ਐਲਕ-ਨੈੱਟਵਰਕ: 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 ਪਾਸਵਰਡ ਦੀ ਬਜਾਏ a ਵਰਤਣ ਲਈ, ਤੁਸੀਂ ਹੇਠ ਲਿਖੀ ਕਮਾਂਡ ਨਾਲ ਇੱਕ ਬਣਾ ਸਕਦੇ ਹੋ:

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 ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਦੀਆਂ ਖਾਸ ਜ਼ਰੂਰਤਾਂ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ ਇਸ ਸੰਰਚਨਾ ਨੂੰ ਅਨੁਕੂਲਿਤ ਅਤੇ ਵਧਾਓ!