[그라파나 #1] 그라파나 ui 접속 및 프로메테우스 연결

도람·2025년 12월 29일
post-thumbnail


현재 이렇게 pods와 service는 모두 올라온 상태이다.
따라서
http://192.168.1.12 에 접속하게 되면 다음과 같이 확인할 수 있다.


프로메테우스 연결

그라파나에서 프로메테우스를 연결하는 이유

Grafana의 역할은 다음과 같다.

혼자서는 아무것도 못하기 때문에
반드시 데이터 소스(Data Source) 가 필요하다. 또한

Prometheus의 역할은 다음과 같다.

  • CPU, 메모리, 노드 상태 같은 메트릭을 수집한다
  • HTTP API(/api/v1/query)로 데이터를 제공한다

즉,

Grafana는
“Prometheus에게 모아둔 데이터 좀 달라”
라고 요청하는 구조다.

그래서 Grafana 설정에서
Data Source → Prometheus 를 추가하는 것이다.


본격적으로 연결하기

  1. Settings → Data Sources를 눌러준다.
    이 화면은
    “Grafana가 어디서 데이터를 가져올지 정하는 곳”이다.

이렇게 설정 -> data source가 나오게 되는데,

여기서 프로메테우스를 선택해준다.
Prometheus를 선택했다는 말은 “Grafana의 데이터 공급자는 Prometheus다”
라고 선언하는 것이다.


그런다음, url에 192.168.1.11을 적어도 되지만,
http://prometheus-server.monitoring.svc.cluster.local를 적어준다.
(실무적으로는 도메인 네임을 써서 하는것이 훨씬 변경에 대응하기 좋다.)

이는 Grafana와 Prometheus가 같은 monitoring 네임스페이스에 존재하기 때문이다.

Grafana Pod는 Prometheus에 접근할 때
쿠버네티스의 내부 DNS 탐색 규칙을 사용한다.

쿠버네티스는 기본적으로 다음 순서로 서비스를 탐색한다.

  1. 같은 네임스페이스 내의 Service를 먼저 탐색한다
  2. 없을 경우 .svc.cluster.local 도메인까지 자동으로 확장하여 탐색한다

따라서 전체 주소인

prometheus-server.monitoring.svc.cluster.local

를 모두 입력하지 않아도,
Grafana는 monitoring 네임스페이스 내에 존재하는
prometheus-server Service를 자동으로 찾아갈 수 있다.

해당 서비스 이름은 다음 명령어를 통해 확인할 수 있다.

kubectl get svc -n monitoring

이 명령어 결과에 표시되는
prometheus-server가
Grafana에서 연결해야 할 Prometheus Service의 실제 이름이다.

save&test 하면 다음과 같이 잘되는 것을 확인할 수 있다.


Prometheus URL에 쿠버네티스 서비스 주소를 사용하는 이유

Grafana와 Prometheus는
모두 쿠버네티스 클러스터 내부의 Pod로 실행되고 있다.

따라서 Grafana는
외부 IP가 아닌 쿠버네티스 내부 Service 주소를 통해
Prometheus에 접근한다.

쿠버네티스에서는
다음과 같은 DNS 규칙을 제공한다.

서비스이름.네임스페이스.svc.cluster.local

이를 통해
Grafana는 Prometheus Service를
IP가 아닌 이름 기반으로 안정적으로 접근할 수 있다.

profile
정도를 걷는 엔지니어

0개의 댓글