인프런 커뮤니티 질문&답변

득이님의 프로필 이미지

작성한 질문수

따라하며 배우는 MySQL on Docker

Grafana Container 구성 및 Dashboard 만들기

grafana에서 prometheus의 데이터를 받아오지 못합니다.

해결된 질문

작성

·

767

0

prometheus에서 up을 검색했을 때 데이터가 출력된다면, exporters가 실행되면서 데이터를 얻어온다는 말 아닌가요?

제가 이해한 프로세스는 exporters로 데이터 로그 추출 -> prometheus에서 추출한 로그 저장 -> grafana에서 prometheus에 저장된 로그 시각화

입니다. 따라서, prometheus에서 검색할 수 있다면 grafana에서도 시각화할 수 있어야 한다고 생각하는데, 잘 되지 않습니다.

host os는 ubuntu:20.04입니다.

dashboard는

https://github.com/percona/grafana-dashboards/blob/master/dashboards/MySQL_Overview.json

에서 받아와 사용했습니다.

혹시 제가 오타나 잘못한 부분이 있을까봐 처음부터 다시 해봤는데도 같은 증상이라 질문 올립니다. ㅜ.ㅜ

답변 2

1

김영헌님의 프로필 이미지
김영헌
지식공유자

안녕하세요.

위에 첨부해 주신 이미지를 보면 prometheus에서 up으로 데이터를 조회했을때.

db001은 value가 1이므로 정상적으로 데이터 수집이 되는 상태인 거 같구요.

db002와 db003은 value가 0으로 나타나는 것을 보니 정상적으로 수집이 안되는 거 같습니다.

grafana에서 db001도 그래프가 나오지 않나요?

득이님의 프로필 이미지
득이
질문자

아 넵 connection을 비롯해서 다른 곳에서도 db001의 그래프도 확인할 수가 없습니다.

김영헌님의 프로필 이미지
김영헌
지식공유자

그렇다면 grafana에서  data source로 prometheus를 등록할때 sav&test 버튼 클릭 시에 별다른 에러는 없었나요?

득이님의 프로필 이미지
득이
질문자

넵 다른 에러는 발생하지 않았고, 체크표시와 함께 data source ia working 메세지가 나타났습니다

득이님의 프로필 이미지
득이
질문자

거기에 더해 그래프에서는 db002, db003의 up 내용이 1로 찍힌 부분이 존재하는데 table에서는 0으로 찍히는 이유가 궁금합니다!

김영헌님의 프로필 이미지
김영헌
지식공유자

위에서 말씀드린 것 처럼 일단 현재 상태를 보면 db001은 2개의 exporter가 모두 정상적으로 수행되고 있고 데이터 수집도 되는 상태인 것 같습니다.

db002, 003은 체크가 필요할 거 같애요, 'up' 값이 일단 1로 나와야 정상적인 상태입니다.

db001의 데이터가 잘 수집되는 상태이고 data source 등록 시에도 별다른 문제가 없었다면 당연히 grafana에서도 db001은 그래프가 정상적으로 나타나야 할 거 같은데요.

보통 이런 문제들은 container간에 적절한 port로 통신을 못해서 발생하는 경우라서.

db constainer <- prometheus 9100, 9104 port

prometheus <- grafana 9090 port

아래와 같이 각 container에 접속해서 port가 open됐는지 한번 확인해 보시겠어요?

prometheus container에서

# docker exec -it -uroot prom001 /bin/sh

/prometheus # nc -z -v db001 9100

db001 (172.19.0.2:9100) open

/prometheus # nc -z -v db001 9104

db001 (172.19.0.2:9104) open

grafana container에서

# docker exec -it -uroot grafana /bin/sh

/usr/share/grafana # nc -z -v prom001 9090

prom001 (172.19.0.6:9090) open 

0

득이님의 프로필 이미지
득이
질문자

확인해 보니, prometheus에서 둘 다 open이 안 되길래 처음부터 다시 진행해 봤더니 이번엔 9014는 열립니다! 현재 node_extractor를 실행하면 prometheus에서 한 1초 동안은 1이 뜨다가 바로 0으로 내려가는데 같은 이유인가요? 아니면 node_extractor를 실행할 때 마지막에 발생하는 permission denied error 때문일까요? 첨부된 사진의 윗부분은 node_extractor를 실행했을 때 생긴 에러, 중간은 prometheus의 port 확인, 하단은 grafana의 port를 확인한 정보입니다.

김영헌님의 프로필 이미지
김영헌
지식공유자

안녕하세요.

해당 container에서 node_exporter가 제대로 기동되지 못하는 거 같습니다.

상태를 봐서는 떴다가 바고 죽는 상황인거 같구요. 

제일 아래에 나타난 메세지가 원인으로 보입니다.

아래 url의 article이 위 문제와 연관된 내용으로 보이구요.
https://github.com/prometheus/node_exporter/issues/1892

해당 article에서 guide하는 바로는 "--no-collector.rapl" 옵션을 사용해서 node_exporter를

기동하라는 것 같습니다.

해당 container에서 "start_node_exporter.sh"의 파일 내용을 아래와 같이 수정하고 

다시 기동해 보시겠어요?

      nohup /opt/exporters/node_exporter/node_exporter --no-collector.rapl &

득이님의 프로필 이미지
득이
질문자

와...드디어 해결됐네요 ㅋㅋㅋ ㅠㅠ 정말 감사합니다!!!

김영헌님의 프로필 이미지
김영헌
지식공유자

잘 된다니 다행이네요. ^^

득이님의 프로필 이미지

작성한 질문수

질문하기