Grafana 대시보드

DockerBeginner
지금 연습하기

소개

이 랩에서는 Grafana 를 사용하여 모니터링 대시보드를 만드는 기본 사항을 배우게 됩니다. Grafana 는 모니터링 및 관찰 가능성 (observability) 을 위한 인기 있는 오픈 소스 플랫폼으로, 데이터가 어디에 저장되어 있든 상관없이 메트릭을 쿼리하고 시각화하며 알림을 설정하고 탐색할 수 있게 해줍니다.

다음과 같이 사전 구성된 환경에서 작업하게 됩니다.

  • Grafana: 대시보드를 구축할 시각화 도구입니다.
  • Prometheus: Grafana 의 데이터 소스로 사용될 시계열 데이터베이스 (time-series database) 입니다.
  • Node Exporter: 호스트 머신에서 하드웨어 및 OS 메트릭을 수집하여 Prometheus 가 스크랩 (scrape) 할 수 있도록 노출하는 에이전트입니다.

여러분의 목표는 랩 환경의 실시간 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:3000->8080/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 로그인 페이지 (admin 자격 증명 포함)

로그인한 후 데이터 소스 연결을 확인해 보겠습니다.

  1. 왼쪽 메뉴에서 Connections 아이콘 (플러그 또는 커넥터 모양) 을 클릭합니다.
  2. Connections 페이지에서 Data sources를 클릭합니다.
  3. Prometheus라는 사전 구성된 데이터 소스가 표시됩니다. 이 연결은 초기화 스크립트에 의해 자동으로 설정되어 Grafana 가 Prometheus 컨테이너를 쿼리할 수 있도록 합니다.

Grafana UI (Prometheus 데이터 소스 선택 표시)

이제 첫 번째 대시보드를 구축할 준비가 되었습니다.

Grafana UI 에서 새 대시보드 생성

이 단계에서는 Grafana 인터페이스에서 새롭고 비어 있는 대시보드를 만듭니다. 대시보드는 그리드에 배열된 하나 이상의 패널 모음입니다.

  1. Grafana UI 에서 왼쪽 사이드바를 찾습니다.
  2. 나타나는 메뉴에서 Dashboard를 선택합니다.

새 대시보드 만들기

이 작업을 수행하면 새롭고 비어 있는 대시보드가 생성됩니다. 첫 번째 패널을 추가하라는 메시지가 즉시 표시됩니다. 패널은 Grafana 의 기본 시각화 빌딩 블록입니다.

화면 중앙에 있는 Add visualization 버튼을 클릭하여 패널 편집기로 진행합니다.

새 패널 추가

이제 패널 편집기 화면으로 이동했으며, 다음 단계에서 데이터 쿼리를 정의하고 시각화를 사용자 정의하게 됩니다.

CPU 사용량에 대한 PromQL 쿼리로 패널 추가

이 단계에서는 대시보드에 패널을 추가하고 PromQL(Prometheus Query Language) 쿼리를 사용하여 CPU 사용량 데이터를 가져옵니다.

이전 단계에서 이미 패널 편집기에 있어야 합니다.

  1. 편집기 하단에서 쿼리 섹션을 찾습니다. Prometheus 데이터 소스가 기본적으로 선택되어 있어야 합니다.
  2. Metrics browser 텍스트 상자에 다음 PromQL 쿼리를 입력합니다. 직접 복사하여 붙여넣을 수 있습니다.
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

이 쿼리를 분석해 보겠습니다.

  • node_cpu_seconds_total{mode="idle"}: Node Exporter 의 메트릭으로, CPU 가 "idle" 상태에 있었던 총 시간을 초 단위로 계산합니다.
  • rate(...[5m]): 이 함수는 지난 5 분 동안 idle 시간의 초당 평균 증가율을 계산합니다. 결과는 0 과 1 사이의 값으로, CPU 가 idle 상태였던 시간의 비율을 나타냅니다.
  • avg by (instance): 여러 개의 CPU 또는 머신이 있는 경우 유용한 집계 결과입니다.
  • * 100: 이 부분은 소수점 값을 백분율로 변환합니다 (예: 0.95 는 95 가 됩니다).
  • 100 - ...: 마지막으로 idle 백분율을 100 에서 빼서 활성 CPU 사용량 백분율을 얻습니다.

쿼리를 입력한 후 미리 보기 창 상단에 그래프가 자동으로 나타나며 시간 경과에 따른 CPU 사용량을 표시해야 합니다.

쿼리가 포함된 Grafana 패널

패널에 데이터가 표시되고 있지만, 다음 단계에서 수행할 더 나은 레이블 지정 및 서식으로 개선할 수 있습니다.

대시보드 사용자 정의 및 저장

이 단계에서는 패널의 모양을 사용자 정의하고 대시보드를 저장합니다. 잘 구성된 패널은 한눈에 훨씬 이해하기 쉽습니다.

  1. 패널 편집기 오른쪽에서 Panel options 섹션을 찾습니다.
  2. Title 필드에 CPU Usage %와 같이 패널에 대한 설명적인 이름을 입력합니다. 미리 보기 창에서 제목이 업데이트되는 것을 볼 수 있습니다.
  3. 오른쪽 옵션에서 아래로 스크롤하여 Standard options 섹션을 찾습니다.
  4. Unit 드롭다운 메뉴를 클릭합니다. 현재 "None"으로 되어 있습니다.
  5. 나타나는 검색 상자에 percent를 입력하고 목록에서 **Percent (0-100)**를 선택합니다. 이렇게 하면 그래프의 Y 축이 올바르게 서식이 지정되어 백분율 기호가 표시됩니다.

패널 옵션 사용자 정의

이제 패널이 구성되었으므로 변경 사항을 적용하고 대시보드 보기로 돌아갑니다.

  1. 화면 오른쪽 상단에 있는 Save 버튼을 클릭합니다.

이제 새로 만든 패널이 포함된 대시보드로 돌아왔습니다. 마지막 단계는 전체 대시보드를 저장하는 것입니다.

  1. 대시보드 헤더 오른쪽 상단에 있는 Save dashboard 아이콘 (플로피 디스크 모양) 을 클릭합니다.
  2. "Save dashboard" 대화 상자가 나타납니다. 대시보드 이름을 입력합니다. 예를 들어, My System Dashboard입니다.
  3. Save 버튼을 클릭합니다.

대시보드 저장

축하합니다! 첫 번째 Grafana 대시보드를 성공적으로 만들고 저장했습니다.

요약

이 실습에서는 처음부터 Grafana 대시보드를 성공적으로 구축했습니다. 사전 구성된 모니터링 스택으로 시작하여 다음과 같은 주요 작업을 수행했습니다.

  • Grafana, Prometheus 및 Node Exporter 컨테이너로 구성된 환경을 탐색했습니다.
  • Grafana UI 를 탐색하여 새롭고 빈 대시보드를 만들었습니다.
  • 시각화 패널을 추가하고 Prometheus 데이터 소스에서 CPU 사용량 데이터를 가져오기 위한 PromQL 쿼리를 작성했습니다.
  • 가독성을 높이기 위해 패널의 제목과 단위 서식을 사용자 정의했습니다.
  • 나중에 사용할 수 있도록 완성된 대시보드를 저장했습니다.

이제 Grafana 에서 시각화를 만드는 기본 워크플로를 배웠습니다. 이 지식을 바탕으로 메모리 사용량, 디스크 I/O 또는 네트워크 트래픽과 같은 다른 시스템 메트릭을 모니터링하기 위해 대시보드에 더 많은 패널을 추가할 수 있습니다.