소개
이 실습에서는 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, 네트워크 트래픽과 같은 다른 시스템 메트릭을 모니터링하기 위해 대시보드에 더 많은 패널을 추가해 볼 수 있습니다.



