[TIL] 사이드 프로젝트 03 - Grafana의 Loki설정 트러블 슈팅

최하온·2024년 7월 20일
0

TIL

목록 보기
71/71

🚨Issue occuring


  • Grafana 설정 중 loki의 연결이 정상적으로 이루어지지 않음

사진1) grafana 설정

사진2) Sava시 뜨는 에러메시지

사진3) docker log

❓Expected Cause


// 헬스체크 이상 없음
2024-07-20 17:47:47 grafana   | logger=tsdb.loki endpoint=CheckHealth endpoint=CheckHealth //중략
// 요청 준비 단계
level=info msg="Prepared request to Loki" duration=62.75µs queriesLength=1 stage=prepareRequest runInParallel=false
2024-07-20 17:47:47 grafana   | logger=tsdb.loki endpoint=CheckHealth endpoint=CheckHealth endpoint=CheckHealth endpoint=checkHealth pluginId=loki dsName=loki-1 dsUID=edsb3ad4dnpxcd uname=admin fromAlert=false t=2024-07-20T08:47:47.793779882Z
// 해당 엔드 포인트로 요청이 보내졌으나, 연결 거부 됨.
level=error msg="Error received from Loki" error="Get \"http://localhost:3100/loki/api/v1/query?direction=backward&query=vector%281%29%2Bvector%281%29&time=4000000000\": dial tcp [::1]:3100: connect: connection refused" status=error duration=1.627667ms stage=databaseRequest start=1970-01-01T00:00:01Z end=1970-01-01T00:00:04Z step=1s query=vector(1)+vector(1) queryType=instant direction=backward maxLines=0 supportingQueryType=none lokiHost=localhost:3100 lokiPath=/loki/api/v1/query
// 헬스체크 실패, 
2024-07-20 17:47:47 grafana   | logger=tsdb.loki endpoint=CheckHealth endpoint=CheckHealth endpoint=CheckHealth t=2024-07-20T08:47:47.793980132Z level=error msg="Loki health check failed" error="error from loki: Get \"http://localhost:3100/loki/api/v1/query?direction=backward&query=vector%281%29%2Bvector%281%29&time=4000000000\": dial tcp [::1]:3100: connect: connection refused"
// 요청이 완료되었음
2024-07-20 17:47:47 grafana   | logger=context userId=1 orgId=1 uname=admin t=2024-07-20T08:47:47.794147841Z level=info msg="Request Completed" method=GET path=/api/datasources/uid/edsb3ad4dnpxcd/health status=400 remote_addr=192.168.65.1 time_ms=5 duration=5.684708ms size=106 referer=http://localhost:3000/connections/datasources/edit/edsb3ad4dnpxcd handler=/api/datasources/uid/:uid/health status_source=server
  • 해당 엔드포인트가 잘못 되었거나, loki실행이 안 되어있음을 예상할 수 있음

💦Tried


  1. loki 로 요청 보내보기
curl http://localhost:3100/ready
ready
curl http://localhost:3100/loki/api/v1/labels
{"status":"success"}

응답이 정삭적으로 돌아오는 것으로 보아 loki 실행에는 문제가 없음!

  1. config파일 공식문서 및 레퍼런스 확인 , 검토
    • 다르게 기입하거나 다른 점X

💡Solve

Docker 사용 시 실제 주소가 아닌 컨터이너 이름으로 설정해주어야 함!

http://localhost:3100 가 아닌 http://loki:3100 로 지정해주었어야 함!

📃What I learned new


Docker는 동일한 네트워크 내에서 컨테이너 이름을 DNS처럼 처리하여, 이를 통해 다른 컨테이너와의 통신이 가능!
각 서비스는 자동으로 dns 이름을 할당받는데, 이 이름은 서비스 이름과 동일함!
서비스 간 통신을 위해선 대상 서비스의 이름을 호스트 이름으로 사용해야 함!

0개의 댓글