본문 바로가기
개발일기/project

[Troubleshooting] #4 docker로 띄운 elasticsearch 노드 구성

by 햄리뮤 2025. 2. 5.
반응형

후... master node 구성하는데 하루종일 걸린듯 하다 ㅠ

https://www.jordan.network.global/en/troubleshooting.jsp




문제: docker로 elasticsearch1, elasticsearch2, elasticsearch3 으로 구성된 node 설정시 master node를 계속 못찾는 문제

{"@timestamp":"2025-02-05T11:21:59.611Z", "log.level": "WARN", "message":"master not discovered yet, this node has not previously joined a bootstrapped cluster, and this node must discover master-eligible nodes [elasticsearch1, elasticsearch2, elasticsearch3] to bootstrap a cluster: have discovered [{elasticsearch1}{xqay0aSWTAitpN16V9dqpA}{tPmz3vqjT6C-gFP7txvjYg}{elasticsearch1}{192.168.80.5}{192.168.80.5:9300}{dm}{8.14.3}{7000099-8505000}]; discovery will continue using [192.168.80.3:9300, 192.168.80.4:9300] from hosts providers and [{elasticsearch1}{xqay0aSWTAitpN16V9dqpA}{tPmz3vqjT6C-gFP7txvjYg}{elasticsearch1}{192.168.80.5}{192.168.80.5:9300}{dm}{8.14.3}{7000099-8505000}] from last-known cluster state; node term 0, last-accepted version 0 in term 0; for troubleshooting guidance, see https://www.elastic.co/guide/en/elasticsearch/reference/8.14/discovery-troubleshooting.html", "ecs.version": "1.2.0","service.name":"ES_ECS","event.dataset":"elasticsearch.server","process.thread.name":"elasticsearch[elasticsearch1][cluster_coordination][T#1]","log.logger":"org.elasticsearch.cluster.coordination.ClusterFormationFailureHelper","elasticsearch.node.name":"elasticsearch1","elasticsearch.cluster.name":"bt-cluster"}

 

docker compose 설정

  elasticsearch1:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.14.3
    container_name: elasticsearch1
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - discovery.seed_hosts=elasticsearch2:9300,elasticsearch3:9300
      - cluster.name=bt-cluster
      - node.name=elasticsearch1
      - node.roles=master, data
      - xpack.security.enabled=false
      - ELASTIC_PASSWORD=1016
      - ES_JAVA_OPTS=-Xms2g -Xmx2g
      - cluster.initial_master_nodes=elasticsearch1, elasticsearch2,elasticsearch3
      ...

에러 원인: elasticsearch1이 main인데 너무 늦게 떠서 master 를 계속 못찾고있는 상태였다.

해결: 각종 스크립트를 실행하고 할께 많은 elasticsearch1은 master node 구성에서 제외

docker 실행시 elasticsearch1에서 mapping 관련한 스크립트를 실행하는 일로만 주고 master node 대상에서 제외하였더니 

서버가 정상적으로 떴다... 키바나도 정상적으로! 

  elasticsearch1:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.14.3
    container_name: elasticsearch1
    ports:
      - "9200:9200"
      - "9300:9300"
    environment:
      - discovery.seed_hosts=elasticsearch2:9300,elasticsearch3:9300
      - cluster.name=bt-cluster
      - node.name=elasticsearch1
      - node.roles=data
      - xpack.security.enabled=false
      - ELASTIC_PASSWORD=1016
      - ES_JAVA_OPTS=-Xms2g -Xmx2g
      - cluster.initial_master_nodes=elasticsearch2,elasticsearch3
    volumes:
      - elasticsearch-data1:/usr/share/elasticsearch/data
      - ./data/init:/usr/share/elasticsearch/init
    networks:
      - elk_network
    entrypoint: [ "/bin/bash", "-c", "/usr/share/elasticsearch/init/create_indices.sh && /usr/share/elasticsearch/bin/elasticsearch" ]
    healthcheck:
      test: ["CMD-SHELL", "curl -f http://localhost:9200 || exit 1"]
      interval: 10s
      retries: 5
    depends_on:
      elasticsearch2:
        condition: service_healthy
      elasticsearch3:
        condition: service_healthy

 

 

 

 

** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.

이곳 저곳에서 구글링한 것과 강의 들은 내용이 정리가 되었습니다.

그림들은 그림밑에 출처표시를 해놓았습니다.

문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **

반응형

댓글