Open chanchancheers opened 1 year ago
안녕하세요 독자님, 원하시는대로 실습이 진행되지 않아 답답하셨을 것 같습니다. 실습이 용이하도록 도커를 이용하였으나, 처음 접하시는 분에게는 다소 어려울 수 있다고 생각됩니다. 먼저 궁금하신 부분에 대해 말씀드리자면, 도커는 bridge, host, overlay 등의 네트워크 모드를 사용할 수 있는데, 저의 경우에는 host 네트워크를 강제로 사용하도록 지정하였습니다. 가능한 책에서 안내하고 있는 실습 과정 그대로 따라 하시는 것을 추천드리며, 입력 오류 방지를 위해 명령어를 복붙할 수 있도록 제공하고 있으니 참고하시기 바랍니다. https://github.com/onlybooks/kafka2/blob/main/chapter7/7_commands.txt
문의 주신 PORTS는 빈 값으로 나오는 것이 맞습니다. 아래 내용은 제가 방금 검증하면서 docker ps 명령어를 실행한 결과입니다. $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ab63ea08036b grafana/grafana:7.3.7 "/run.sh" 3 minutes ago Up 3 minutes grafana 3ce3637d0408 prom/prometheus "/bin/prometheus --c…" 7 minutes ago Up 7 minutes prometheus
말씀주신 내용을 보면, 정상적으로 도커가 실행되고 있는 것 같습니다. 다만 연결이 안되는 문제는 다른 문제로 보이는데 아래의 방법으로 어느 부분이 문제인지 확인해볼 수 있습니다.
도커 정상 실행 유무 다음 명령어를 이용하여 포트가 정상적으로 실행되어 있는지 확인(9090, 3000 두개의 포트가 LISTEN 상태인지 확인) $ sudo netstat -ntlp tcp 0 0 0.0.0.0:22 0.0.0.0: LISTEN - tcp6 0 0 :::9090 ::: LISTEN - tcp6 0 0 :::9100 ::: LISTEN - tcp6 0 0 :::22 ::: LISTEN - tcp6 0 0 :::3000 :::* LISTEN -
원격지의 다른 서버에서 연결 확인 원격지의 다른 서버에 접속하신 후 아래 명령어 실행 $ telnet 192.168.10.10 9090 192.168.10.10는 프로메테우스가 설치된 서버의 IP주소, 9090은 프로메테우스 사용 포트 정상적으로 연결된다면 아래와 같은 내용이 출력 Trying 192.168.10.10... Connected to 192.168.10.10. Escape character is '^]'.
만약 연결이 안된다면, 아래와 같은 내용이 출력 Trying 192.168.10.10... telnet: connect to address 192.168.10.10: Connection refused
3000번 포트로도 시도 $ telnet 192.168.10.10 3000
위의 방법 2가지로 모두 정상 확인이 된다면, grafana에서 프로메테우스연결이 잘 될 것으로 예상합니다. 프로메테우스 입력 주소는 http://127.0.0.1:9090, http://192.168.10.10:9090등 시도 해보시기 바랍니다.(제가 방금 다시 한번 테스트 했는데, 잘 동작했습니다.^^) 천천히 다시 한번 해보시고, 안되시면 댓글 남겨주시기 바랍니다. 등록하신 /etc/hosts의 내용도 같이 공유해주시면, 더 정확하게 안내해드리겠습니다. 만약 또 잘 안되신다면, 메일주소도 남겨주세요! 감사합니다.
저로선 더이상 방법이 없어서 답변 여부와 상관 없이 질문만 남기고 이 파트는 넘어갈 생각이었는데, 이렇게 자세하고 친절하고 빠르게 답변 주셔서 정말 감사합니다. 문제상황을 파악하시느라 모든 부분을 다시 재확인하셨을 수고에 특히 감사드립니다.
신경써주신 것 때문에 어느 정도?는 해결이 된 것 같습니다. host 이름으로(peter-ansible01.foo.bar:3000)으로는 그라파나 서버 접속이 여전히 불가능하지만, host 서버의 공유 IP 주소로는 그라파나 접속이 가능하고, 이 때 프로메테우스 서버는 호스트네임(peter-ansible01.foo.bar:9090)으로 데이터 소스에 추가가 가능합니다.
아래는 말씀해주신 조치사항 수행 결과입니다.
netstat -ntlp
수행 결과 : 3000 및 9090포트 모두 정상 작동중
원격지의 다른 서버에서 telnet {프로메테우스와 그라파나가 설치된 서버의 프라이빗 주소} {각 포트번호}
수행 결과 : 연결됨
배포 서버와 카프카, 주키퍼 서버에 저장된 /etc/hosts 내용도 첨부합니다.
cat /etc/hosts
172.31.14.13 peter-ansible01.foo.bar peter-ansible01
172.31.4.80 peter-kafka01.foo.bar peter-kafka01
172.31.5.6 peter-kafka02.foo.bar peter-kafka02
172.31.12.128 peter-kafka03.foo.bar peter-kafka03
172.31.1.90 peter-zk01.foo.bar peter-zk01
172.31.4.87 peter-zk02.foo.bar peter-zk02
172.31.5.111 peter-zk03.foo.bar peter-zk03
IP는 각 EC2 instance 서버의 프라이빗 주소입니다.
** 원래 /etc/hosts 파일에 있던 내용 첫부분엔 다음과 같은 내용이 포함되어 있었는데, 이 상태일 때에도 질문 올리기 전 모든 조치를 취했을 때 해결이 안되어서 현재는 지운 상태입니다.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
도커 컨테이너 실행 상태입니다.
그리고 그라파나 접속 페이지.. 입니다.
그라파나가 설치된 배포 서버의 공유 IP와 그라파나 포트로 접속한 화면입니다. 이건 되네요.
공유 IP로 접속한 그라파나 서버에서는
http://peter-ansible01.foo.bar:9090
으로도 프로메테우스의 데이터 소스를 추가할 수 있네요. 이건 어제와 다른 결과입니다(이유는 모르겠습니다 ㅋㅋㅋ)
어찌 됐건, 그라파나 서버에 접속도 되고 프로메테우스도 추가가 되니까 모니터링 부분을 마무리짓는데는 큰 문제가 없을 것으로 보입니다. 문제상황의 정확한 이유는 계속 (뭐든) 경험하다 보면 어떻게든 알게 되리라 생각합니다.
다시 한 번 시간 내주셔서 감사합니다. 책 잘보고 있습니다!
작성해주신 내용으로 보면, 책을 잘 따라하신 것 같아서.. 정상동작 하지 않았던 이유가 저도 궁금하네요 ^^;; 프로메테우스 주소에 http://172.31.14.13:9090으로 입력하면, 아마도 잘 동작했을 것으로 추측합니다. 결과적으로, 실습을 따라하시는데 문제가 없다고 하셔서 다행입니다. 혹시라도 또 다른 문제가 발생한다면, 언제든지 질문 남겨주세요! 열심히 공부하시고, 제 책 구매해주셔서 감사합니다!
안녕하세요, '실전 카프카 - 개발에서 운영까지'를 읽으며 실습하다가 제 수준으로는 원인을 찾을 수 없는 오류를 만나서 질문드립니다.
7장 카프카 운영과 모니터링에 관한 실습을 진행하며 프로메테우스와 그라파나를 설치하는 부분에서, peter-ansible01.foo.bar:3000 사이트에 접속할 수 없습니다. docker ps 명령어로 확인한 결과 프로메테우스와 그라파나 모두 ports가 공백으로 나오구요.
과정은 이렇습니다.
sudo docker run -d --network host -p 9090:9090 -v .../.../prometheus.yml:.../.../promethuse.yml --name prometheus prom/prometheus
sudo docker run -d --network host -p 3000:3000 --name grafana grafana/grafana:7.3.7
위 두 명령어로 프로메테우스와 그라파나 컨테이너를 설치했습니다.
이후 docker ps 명령어를 입력하면 프로메테우스와 그라파나 모두 PORTS가 공백으로 나왔는데, Up 상태라 되겠거니 하고 넘어갔는데요.
jmx-exporter, node-exporter 모두 카프카 클러스터에 설치 후 그라파나 웹사이트를 사용하고자 하는데
peter-ansible01.foo.bar:3000 사이트에 접속이 안됩니다.
이를 해결하기 위해 제가 알아본 것들은 다음과 같습니다.
docker version : 20.10.23이고, 그 외의 사안들은 교재와 똑같이 진행했습니다.
(혹시 --network host와 -p 옵션을 같이 사용하신 이유가 있다면 뭔지 여쭤봐도 될까요?)
도커를 재시작하고, 서버를 재시작하고, 컨테이너를 재시작/ 재설치해봤으나 여전히 프로메테우스와 그라파나가 구동중일 때 peter-ansible01.foo.bar:3000 페이지로는 접근이 불가능합니다.
방화벽도 꺼져 있는 상태구요.
다만, ansible01 서버의 퍼블릭 IP 주소에서 3000 포트로 접속하면 grafana 웹사이트가 뜹니다만, 이 경우에는 데이터 소스로 prometheus를 어떠한 방법으로도 등록할 수 없었습니다(http://peter-ansible01.foo.bar:9090/ , http://{배포서버의 퍼블릭IP}:9090/, http://{배포 서버의 프라이빗IP}:9090/ 등).
7장 전까지 CLI를 이용하는 실습은 모두 구현할 수 있었습니다.
아마존 EC2 Instance에서 서버 구동과 Docker를 이 책 이전에는 거의 다뤄본 적이 없었음을 감안할 때, 위와 같은 문제를 해결할 수 있으려면 어떤 것을 검색하거나 공부하는 것이 좋은지 도움을 주셨으면 좋겠습니다. 3일 정도 진도를 못나가고 있습니다.....