docker로 elk를 2개 띄우려다보니 삽질을 너ㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓㅓ무 많이 했다 하참나 몇시간을 보낸거야
문제 #1:
포트 충돌로 인하여 아래 에러가 나오면서 elasticsearch가 실행되지 않음.
Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:9200 -> 0.0.0.0:0: listen tcp 0.0.0.0:9200: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
윈도우에서 elasticsearch 포트인 9200으로 서비스가 떠있는게 있는지 확인하였지만 아무것도 뜨지 않았음...
netstat -ano | findstr :9200
에러 원인:
Docker에서 9200 포트로 elastic search를 실행했는데 포트 충돌 에러가 나오면서 Docker에 뜨지 않았다. 하지만 9200 번을 사용하고있는 서비스는 아무것도 없었다...
stackoverflow에서 확인한 원인...
WinNAT (Windows Network Address Translation) is a windows operating system service. It helps in translating private network addresses into a public address. So, such conflicts in ports for docker can be solved by restarting that service.
해결:
계속 삽질하다가 stackoverflow 에서 겨우 찾았다....
net stop winnat
docker start container_name
net start winnat
winnat을 껏다가 재시작하니 정상적으로 뜨는 것을 확인
문제 #2:
http://localhost:9200/ 접속시
정상적으로 elasticsearch1 이 떠있는 것을 볼 수 있다. log에도 문제가 없었다.
http://localhost:5601/ 접속시
Kibana server is not ready yet.
kibana log
[2025-01-13T11:47:10.749+00:00][INFO ][plugins.assetManager] Server is NOT enabled 2025-01-13T11:47:10.914379363Z
[2025-01-13T11:47:10.914+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. connect ECONNREFUSED 172.28.0.6:9200
에러 원인:
kibana가 elasticsearch 서버에 접근하지 못하는 것 처럼 보였다
해결:
위 에러때문에 많은 시간을 보냈는데 - discovery.type=single-node 를 추가하니 키바나가 떳다..
나는 클러스터 환경으로 하려고 했기 때문에 - discovery.type=single-node 을 쓰지 않았었다.
하지만 이것은 해결 방법이 아니였다 나는 2개의 elasticsearch 를 띄워서 클러스터 환경을 써야하기 때문이다
ELASTICSEARCH_HOSTS=["http://elasticsearch1:9200","http://elasticsearch2:9201"] 로 환경변수 수정.
docker container 접속 후 정상적으로 2개의 elasticsearch가 뜨는 것을 확인
/usr/share/elasticsearch# curl -X GET "localhost:9200/_cat/nodes?v"
키바나 접속 성공...!
하... 진짜 오래 걸렸다 설정하는게 왜이리 힘든지... 제일 큰 벽이 남아있지만 일단 개발을 시작하기로 했다
분산서버 설정 어케하냐....
** 그냥 하루하루 개인 공부한 것을 끄적 거리는 공간입니다.
이곳 저곳에서 구글링한 것과 강의 들은 내용이 정리가 되었습니다.
그림들은 그림밑에 출처표시를 해놓았습니다.
문제가 될시 말씀해주시면 해당 부분은 삭제 하도록하겠습니다. **
'개발일기 > project' 카테고리의 다른 글
[Troubleshooting] #4 docker로 띄운 elasticsearch 노드 구성 (0) | 2025.02.05 |
---|---|
[Troubleshooting] #3 Test case 작성 에러 (0) | 2025.01.26 |
[Troubleshooting] #2 JPA의 동작과 WARN 레벨 로그 수정 (0) | 2025.01.14 |
[Jenkins] Docker로 띄운 Jenkins에 git 연결하기 (0) | 2025.01.11 |
[Jenkins] Docker에 Jenkins 실행하기 (0) | 2025.01.11 |
댓글