본문 바로가기

Grafana와 InfluxDB 연계: 실시간 데이터 시각화 및 대시보드 구성 가이드

by 애덤더미 2025. 1. 2.
반응형

 

지난번 작성한 포스팅인 Windows에서 PowerShell로 InfluxDB와 CLI 설치: 초보자를 위한 가이드를 통해 InfluxDB를 설치하고 간단히 CLI로 데이터를 다뤄봤습니다. 이번에는 여기서 더 나아가 Grafana를 연계하여 대시보드를 구성하는 과정을 시도해봤습니다. 실시간으로 데이터를 시각화하고 모니터링하는 대시보드를 만들면서 느낀 점과 구성 방법을 공유합니다.

1. 간단한 시스템 리소스 데이터 샘플 준비

먼저, 데이터를 준비해야겠죠? 제가 사용한 데이터는 간단한 시스템 리소스 정보(CPU 사용량, 메모리 사용량)입니다. 이를 InfluxDB에 저장해보고, Grafana로 시각화했습니다. 아래는 샘플 데이터입니다:

샘플 데이터 구조

시간(Time) CPU 사용량(CPU Usage) 메모리 사용량(Memory Usage)
2025-01-02T10:00:00Z 35.5 65.2
2025-01-02T10:01:00Z 40.2 70.1
2025-01-02T10:02:00Z 45.3 73.5
2025-01-02T10:03:00Z 50.1 75.8

InfluxDB에 샘플 데이터 삽입

InfluxDB에 데이터를 넣기 위해 CLI나 API를 사용했습니다. CLI로 데이터를 삽입하려면 아래 명령어를 사용하면 됩니다:

influx write \
  --bucket my-bucket \
  --precision s \
  'system_resources,cpu=usage value=35.5 1700000000
   system_resources,cpu=usage value=40.2 1700000060
   system_resources,memory=usage value=65.2 1700000000
   system_resources,memory=usage value=70.1 1700000060'

이 데이터를 바탕으로 Grafana에서 시각화 작업을 진행했습니다.

 

2. Grafana 설치 및 데이터 소스 연동

A. Grafana 설치

Grafana는 Docker로 설치하는 것이 가장 간단했습니다. 명령어 한 줄로 실행 가능합니다:

docker run -d -p 3000:3000 grafana/grafana

설치 후 http://localhost:3000에 접속하면 바로 UI가 열립니다.

B. 데이터 소스 연동

  1. InfluxDB와 연결:
    • Grafana 대시보드에서 Add Data Source를 클릭.
    • InfluxDB를 선택한 뒤 URL과 데이터베이스 정보를 입력.
    • 연결 테스트 후 연동 완료.

 

3. Grafana 대시보드 구성

https://www.influxdata.com/

A. 패널 추가

Grafana에서 시각화를 위해 패널을 추가합니다. CPU 사용량과 메모리 사용량 데이터를 시각화하기 위해 다음과 같은 패널을 구성했습니다:

  • CPU 사용량: 선 그래프(Line Chart)
  • 메모리 사용량: 게이지(Gauge Chart)

B. 쿼리 작성

InfluxQL로 데이터를 조회하는 간단한 쿼리를 작성했습니다. 예를 들어, 최근 1시간 동안의 CPU 사용량을 가져오려면:

SELECT mean("value") FROM "system_resources" WHERE "cpu" = 'usage' AND time > now() - 1h GROUP BY time(1m)

이 쿼리는 CPU 사용량의 평균을 시간별로 집계하여 선 그래프로 표시합니다.

C. 경고(Alert) 설정

CPU 사용량이 90% 이상일 때 알림을 설정:

  • Trigger: 조건 value > 90
  • Notification: 이메일 또는 Slack 연동.

 

4. 시도해보니 느낀 점

  1. 데이터 시각화는 확실히 직관적이다
    • 숫자로만 보던 데이터를 그래프로 보니, 트렌드와 문제를 한눈에 파악할 수 있었습니다.
  2. 설치와 연계는 간단하다
    • Docker로 설치하고 UI에서 데이터 소스를 연결하는 과정이 매우 직관적이어서, 처음 사용하는 사람도 쉽게 따라 할 수 있었습니다.
  3. 유용한 알림 기능
    • 문제가 발생했을 때 바로 알림을 받을 수 있어, 대응 시간을 크게 줄일 수 있었습니다.

 

 

 

 

반응형