Outline

지금까지 쿠버네티스 클러스터를 구축하고, 여기에 Helm 차트를 이용해 Free5GC를 설치했다.
이제 Step 3의 모니터링 툴을 이용해서 Free5GC의 각종 Metric을 확인해볼 차례이다.
우선, Prometheus와 Grafana, Loki라는 모니터링 툴에 대해 소개하고, 이어서 실제로 이들을 설치해서 부하를 확인해볼 것.
모니터링 Tool들
Prometheus - 시계열 metrics 수집

Prometheus는 metric 수집에 특화된 오픈소스 모니터링 툴로, 메트릭 수집 → 저장 → 분석/시각화 → 알림까지, 인프라와 서비스 운영에 필요한 모니터링 전 과정을 지원한다.
CNCF(Cloud Native Computing Foundation)를 2018년 8월에 Graduated되었으며, 모니터링과 알림에 특화되었다.
Prometheus는 애플리케이션이나 서버에서 발생하는 메트릭 데이터를 (여기서는 free5GC의 metric 데이터를) 시계열(Time-series) 형태로 수집해 자체 데이터베이스에 저장하며, 이를 통해 빠르고 효율적인 조회가 가능하다.
Prometheus는 PromQL이라는 전용 쿼리 언어를 지원해, 실시간으로 데이터를 분석하거나 대시보드에 시각화할 수 있다.
또한 AlertManager와 연동해 사용자가 정의한 규칙에 따라 자동 알림을 발송할 수 있다.
Loki - Log 기록 수집

Prometheus가 메트릭을 수집하듯, Loki는 로그를 수집하고 저장한다.
최근에는 Grafana라는 시각화 툴과 통합되어 Grafana Loki라고도 불린다.
PromQL처럼 쿼리 언어로 LogQL을 사용하여 로그를 사용자가 정의한대로 필터링, 집계, 분석할 수 있다.
또한 AlertManager와 연동하여 특정 로그 패턴이 감지되면 알람을 발생시켜 운영자에게 알람을 주는 것도 가능하다.
Loki는 과거에는 log 수집기로 Promtail을 사용했다.
Promtail이 각 노드에 실행되면서 로그를 수집해 중앙의 Loki로 전송하는 방식입니다.
그런데 현재 Promtail은 Deprecated되었고, 최근에는 OpenTelemetry Collector가 그 자리를 대체하는 추세이다.
OpenTelemetry Collector는 범용 Observability 데이터 파이프라인으로, 로그뿐만 아니라 메트릭, 트레이스까지 통합 수집/가공/전송 가능하다.
Grafana - 통합 모니터링


Grafana는 로그와 메트릭 정보를 한 눈에 대시보드로 보여주기 때문에 모니터링을 용이하게 할 수 있다.
또한 Grafana는 자체 AlertManager 기능까지 있어, 알림까지 통합 관리할 수 있는 오픈소스 모니터링 툴이다.
현재 Grafana Loki와, Promtail, OpenTelemetry 모두 Helm 차트를 통해 간편하게 쿠버네티스 클러스터에 설치할 수 있다.
모니터링 Tool 설치하기
Prometheus & Grafana 설치
# kube-prometheus-stack Repo 추가 및 패키지 다운로드
cd ~
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm pull prometheus-community/kube-prometheus-stack —version 66.2.1
# 압축 해제
tar -xf kube-prometheus-stack-66.2.1.tgz
ls -al
여기에 Prometheus와 Grafana용 PVC와 PV를 수동으로 생성해야 한다.
- kube-prometheus-stack-66.22.1/grafana-pv.yaml
- kube-prometheus-stack-66.22.1/prometheus-pv.yaml
위 두 경로로 가서 server를 우리의 master-node 환경인 192.168.56.50으로 교체한다.

이어서 PVC랑 PV를 만들어야 한다.
- kube-prometheus-stack-66.22.1 /namespace.yaml
- kube-prometheus-stack-66.22.1 /grafana-pvc.yaml
위 파일들을 보면, 이 pvc를 만들 때 namespace가 먼저 있어야 하니, namespace도 추가를 해준 것이다.
이걸 쭉 복사해서 생성을 하면 된다.

# 리소스 확인
kubectl get -n monitoring pvc grafana-pvc
kubectl get -n monitoring pvc grafana-pvc –o yaml

리소스를 확인해보면 grafana-pvc가 grafana-pv랑 잘 연결이 되었다.
그리고 grafana-pvc의 spec을 보면 밑에 volumeName에 PV를 Selector가 아닌 volumeName으로 PV의 이름인 grafana-pv의 내용을 바로 지정했다.
# Deploy
cd kube-prometheus-stack
helm upgrade --install monitoring . -n monitoring
# Pod 확인
kubectl get -n monitoring pod

이렇게 Pod를 확인을 해보면 Pod들이 제대로 올라갔음을 확인할 수 있다.
Grafana Loki 설치
Loki 설치 (https://grafana.com/docs/loki/latest/setup/install/helm/)
# Loki 설치
helm repo add grafana https://grafana.github.io/helm-charts
helm pull grafana/loki --version 6.25.1
# Extract archive
tar -xf loki-6.25.1.tgz
# Deploy cd loki
cd loki
helm upgrade --install loki . -n logging --create-namespace
OpenTelemetry 설치 (https://opentelemetry.io/docs/platforms/kubernetes/)
# OpenTelemetry Collector 설치
cd ~
helm repo add opentelemetry-helm https://open-telemetry.github.io/opentelemetry-helm-charts
helm pull opentelemetry-helm/opentelemetry-collector --version 0.116.0
# Extract archive
tar -xf opentelemetry-collector-0.116.0.tgz
# Deploy
cd opentelemetry-collector
helm upgrade --install opentelemetry-collector . -n logging
Grafana 대시보드 확인
이후 192.168.56.50을 통해 grafana로 접속하기 위한 Hosts 설정이 필요하다
# 해당 폴더에서 hosts 파일을 관리자 모드로 열기
C:\Windows\System32\drivers\etc\hosts
# hosts 파일에 아래 내용 추가
192.168.56.50 grafana

이후 https://grafana에 접속해서 로그인한다.
접속 : (id/pw) admin /admin

메트릭 조회 (Home > Explore)
여기서 metric browse를 하면 정말 많은 metric들이 있다. 여기서 node로 시작하는 메트릭을 보자.
여기서 node_cpu_seconds_total이라는 게 있고, 이걸 클릭하면 이 metric에 있는 여러 label들이 있다.

여기서 어떤 노드에서 온 metric을 조건으로 걸 수도 있다.


이후 Run query로 조회를 하면 metric 정보가 쭉 나온다.
이를 통해 kube-prometheus-stack을 설치해 다양한 metric을 보는 것이 가능하다.

Free5GC와 관련된 Pod들의 metric도 Grafana Dashboard를 구성하여 한 눈에 확인 가능하다.
'RAN CN 테스트베드 구축 > Free5GC on K8s (Core)' 카테고리의 다른 글
| UERANSIM과 OpenAirInterface의 차이점 정리 (0) | 2026.01.07 |
|---|---|
| Free5GC의 metric을 한 눈에 보는 Grafana 대시보드 만들기 (0) | 2026.01.07 |
| UERANSIM을 활용한 Free5GC E2E 테스트하기 (0) | 2026.01.07 |
| Helm을 활용한 Free5GC 설치 방법 (Orange Opensource의 Towards5gs-helm (0) | 2026.01.06 |
| 쿠버네티스 클러스터 구축 방법 (K8s - Free5GC 클러스터 구축) (0) | 2026.01.06 |