소개
이 실습에서는 Grafana를 사용하여 모니터링 대시보드를 만드는 기초를 배웁니다. Grafana는 모니터링 및 관측 가능성을 위한 인기 있는 오픈 소스 플랫폼으로, 데이터 저장 위치와 관계없이 메트릭을 쿼리, 시각화, 알림 설정 및 탐색할 수 있게 해줍니다.
이번 실습에서는 다음과 같이 사전 구성된 환경을 사용합니다:
- Grafana: 대시보드를 구축할 시각화 도구입니다.
- Prometheus: Grafana의 데이터 소스 역할을 하는 시계열 데이터베이스입니다.
- Node Exporter: 호스트 머신에서 하드웨어 및 OS 메트릭을 수집하여 Prometheus가 스크랩할 수 있도록 노출하는 에이전트입니다.
여러분의 목표는 실습 환경의 실시간 CPU 사용량을 표시하는 간단한 대시보드를 처음부터 구축하는 것입니다.
사전 구성된 환경 탐색
이 단계에서는 실습 환경을 살펴봅니다. 설정 스크립트를 통해 기본적인 모니터링 스택을 구성하는 세 개의 Docker 컨테이너가 이미 실행 중입니다.
먼저 모든 컨테이너가 정상적으로 실행 중인지 확인합니다. 터미널을 열고 다음 명령어를 실행하세요:
docker ps
grafana, prometheus, node-exporter 컨테이너가 나열된 다음과 유사한 출력을 볼 수 있습니다. 컨테이너 ID는 다를 수 있습니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1a2b3c4d5e6 grafana/grafana "/run.sh" 15 seconds ago Up 14 seconds 0.0.0.0:8080->3000/tcp grafana
f6e5d4c3b2a1 prom/prometheus "/bin/prometheus --c…" 20 seconds ago Up 19 seconds 0.0.0.0:9090->9090/tcp prometheus
a9b8c7d6e5f4 prom/node-exporter "/bin/node_exporter …" 25 seconds ago Up 24 seconds 0.0.0.0:9100->9100/tcp node-exporter
각 구성 요소에 대한 간단한 설명입니다:
node-exporter: 가상 머신에서 시스템 메트릭을 수집합니다.prometheus:node-exporter로부터 메트릭을 스크랩하고 저장합니다.grafana: Prometheus를 쿼리하고 데이터를 시각화합니다.
이제 Grafana 사용자 인터페이스에 접속해 보겠습니다.
LabEx VM의 리버스 프록시 설정에 따라, 데스크톱 인터페이스로 전환한 뒤 왼쪽 상단에 있는 Firefox 브라우저를 클릭하고 주소창에 http://localhost:8080을 입력하세요. Grafana 로그인 페이지가 나타납니다.
기본 자격 증명으로 로그인합니다:
- 사용자 이름:
admin - 비밀번호:
admin
비밀번호 변경 메시지가 나타날 수 있습니다. 이번 실습에서는 Skip을 클릭해도 됩니다.

로그인 후 데이터 소스 연결 상태를 확인합니다.
Grafana는 릴리스마다 왼쪽 사이드바의 레이블과 아이콘이 변경될 수 있으므로, 화면이 스크린샷과 정확히 일치하지 않을 수 있습니다. 사이드바가 축소되어 있다면 먼저 확장하세요.
- 데이터 소스 관리 영역을 엽니다. 최신 Grafana 버전에서는 Connections를 선택한 후 Data sources를 클릭합니다. Connections가 보이지 않으면 사이드바 검색 기능을 사용하여 Data sources를 찾으세요.
Prometheus라는 이름의 사전 구성된 데이터 소스가 있는지 확인합니다. 이 연결은 초기화 스크립트에 의해 자동으로 설정되었으며, Grafana가 Prometheus 컨테이너를 쿼리할 수 있게 해줍니다.

이제 첫 번째 대시보드를 구축할 준비가 되었습니다.
Grafana UI에서 새 대시보드 생성
이 단계에서는 Grafana 인터페이스에서 비어 있는 새 대시보드를 생성합니다. 대시보드는 그리드 형태로 배치된 하나 이상의 패널 모음입니다.
- Grafana UI의 왼쪽 사이드바를 확인합니다.
- 새 대시보드를 생성합니다. 메뉴 레이블은 Grafana 버전에 따라 다를 수 있습니다:
- + Create 항목이 보이면 이를 열고 New dashboard를 선택합니다.
- 사이드바에 Dashboards가 보이면 이를 열고 New dashboard를 선택합니다.
- 사이드바 레이아웃이 다르다면 Grafana 검색창을 사용하여 New dashboard를 검색해 엽니다.

이 작업을 수행하면 비어 있는 새 대시보드가 생성됩니다. 즉시 첫 번째 패널을 추가하라는 메시지가 표시됩니다. 패널은 Grafana에서 시각화를 구성하는 기본 단위입니다.
화면 중앙의 Add visualization 버튼을 클릭하여 패널 편집기로 이동합니다.

이제 패널 편집기에 들어왔습니다. 다음 단계에서 데이터 쿼리를 정의하고 시각화 설정을 커스터마이징하게 됩니다.
CPU 사용량을 위한 PromQL 쿼리 패널 추가
이 단계에서는 대시보드에 패널을 추가하고 PromQL(Prometheus Query Language) 쿼리를 사용하여 CPU 사용량 데이터를 가져옵니다.
이전 단계에서 이어진 패널 편집기 화면에 있어야 합니다.
- 편집기 하단에서 쿼리 섹션을 찾습니다.
Prometheus데이터 소스가 기본적으로 선택되어 있어야 합니다. - Metrics browser 텍스트 상자에 다음 PromQL 쿼리를 입력합니다. 직접 복사하여 붙여넣을 수 있습니다.
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
쿼리에 대한 설명은 다음과 같습니다:
node_cpu_seconds_total{mode="idle"}: CPU가 "idle(유휴)" 상태였던 총 시간을 초 단위로 계산하는 Node Exporter의 메트릭입니다.rate(...[5m]): 지난 5분 동안 유휴 시간의 초당 평균 증가율을 계산합니다. 결과값은 0에서 1 사이이며, CPU가 유휴 상태였던 시간의 비율을 나타냅니다.avg by (instance): 여러 CPU나 머신이 있을 경우 유용한 결과 집계 방식입니다.* 100: 비율 값을 백분율로 변환합니다(예: 0.95는 95%가 됨).100 - ...: 마지막으로 100에서 유휴 백분율을 빼서 활성 CPU 사용량 백분율을 구합니다.
쿼리를 입력하면 상단 미리보기 창에 시간에 따른 CPU 사용량을 보여주는 그래프가 자동으로 나타납니다.

이제 패널에 데이터가 표시되지만, 다음 단계에서 더 나은 레이블과 서식을 적용하여 개선해 보겠습니다.
대시보드 커스터마이징 및 저장
이 단계에서는 패널의 모양을 커스터마이징하고 대시보드를 저장합니다. 잘 구성된 패널은 한눈에 이해하기 훨씬 쉽습니다.
- 패널 편집기 오른쪽에서 Panel options 섹션을 찾습니다.
- Title 필드에
CPU Usage %와 같이 패널을 설명하는 이름을 입력합니다. 미리보기 창에서 제목이 업데이트되는 것을 확인할 수 있습니다. - 오른쪽 옵션에서 아래로 스크롤하여 Standard options 섹션을 찾습니다.
- Unit 드롭다운 메뉴를 클릭합니다. 현재 "None"으로 설정되어 있습니다.
- 나타나는 검색창에
percent를 입력하고 목록에서 **Percent (0-100)**를 선택합니다. 이렇게 하면 그래프의 Y축이 백분율 기호와 함께 올바르게 표시됩니다.

패널 설정이 완료되었으므로 변경 사항을 적용하고 대시보드 보기로 돌아갑니다.
- 화면 오른쪽 상단의 Save 버튼을 클릭합니다. 일부 Grafana 버전에서는 이 버튼이 Apply로 표시될 수 있습니다.
이제 새로 만든 패널이 포함된 대시보드로 돌아왔습니다. 마지막 단계는 전체 대시보드를 저장하는 것입니다.
- 대시보드 헤더 오른쪽 상단에 있는 Save dashboard 아이콘(플로피 디스크 모양)을 클릭합니다.
- "Save dashboard" 대화 상자가 나타납니다. 실습 환경에서 저장된 대시보드를 확인할 수 있도록 정확히
My System Dashboard라는 이름을 입력합니다. - Save 버튼을 클릭합니다.

축하합니다! 첫 번째 Grafana 대시보드를 성공적으로 생성하고 저장했습니다.
요약
이번 실습에서는 Grafana 대시보드를 처음부터 성공적으로 구축했습니다. 사전 구성된 모니터링 스택으로 시작하여 다음과 같은 핵심 작업을 수행했습니다:
- Grafana, Prometheus, Node Exporter 컨테이너로 구성된 환경을 탐색했습니다.
- Grafana UI를 탐색하여 비어 있는 새 대시보드를 생성했습니다.
- 시각화 패널을 추가하고 PromQL 쿼리를 작성하여 Prometheus 데이터 소스로부터 CPU 사용량 데이터를 가져왔습니다.
- 가독성을 높이기 위해 패널 제목과 단위 서식을 커스터마이징했습니다.
- 완성된 대시보드를 향후 사용을 위해 저장했습니다.
이제 Grafana에서 시각화를 생성하는 기본적인 워크플로우를 익혔습니다. 이 지식을 바탕으로 메모리 사용량, 디스크 I/O, 네트워크 트래픽 등 다른 시스템 메트릭을 모니터링하기 위한 패널을 추가하여 대시보드를 확장해 보세요.



