Skip to main content

Grafana

1. Grafana 개요

Grafana는 다양한 데이터 소스를 연결하여 시각적으로 데이터를 모니터링할 수 있는 오픈소스 대시보드 도구입니다. IT 인프라, 애플리케이션 성능 모니터링, 데이터 분석 등에 널리 사용됩니다.

주요 기능

  1. 다양한 데이터 소스 연동 (InfluxDB, Prometheus, MySQL, PostgreSQL 등)

  2. 커스터마이징 가능한 대시보드 제공

  3. 데이터 시각화 (그래프, 테이블, 히트맵 등)

  4. 알림(Alert) 및 경고 시스템 지원

  5. 사용자 관리 및 권한 제어 가능

2. Grafana 설치

1) Linux (Ubuntu) 설치

wget https://dl.grafana.com/oss/release/grafana-7.1.0-1.x86_64.rpm

yum install grafana-7.1.0-1.x86_64.rpm

sudo systemctl enable --now grafana-server # Grafana 서비스 활성화 및 자동 실행 
    • enable: 부팅 시 자동 실행
    • --now: 즉시 시작
sudo systemctl status grafana-server # 실행 중인지 확인

2) Windows 설치

공통) Grafana 실행 후 웹사이트 접근

웹 브라우저에서 http://localhost:3000 접속 후 로그인 (admin/admin 기본 계정)


3. 데이터 소스 설정

InfluxDB 연동 방법

InfluxDB는 시계열(time-series) 데이터베이스로, 일정 시간이 지나면 자동으로 데이터가 삭제되는 기능을 제공하여 실시간 모니터링 및 데이터 시각화에 최적화되어 있습니다. 따라서 Grafana에서 장기간 데이터를 유지할 필요 없이 최근 데이터를 기준으로 대시보드를 구성하기에 적합하기에 이번 매뉴얼에선 InfluxDB를 활용합니다.

스크린샷 2025-02-18 오후 5.43.13.png

  1. Grafana 접근 URL : http://localhost:3000 # localhost 대신 서버 IP
  2. Grafana 로그인 후 Configuration → Data Sources 클릭
  3. "Add data source" 버튼 클릭 후 InfluxDB 선택
  1. HTTP

     

    • URL: http://localhost:8086

      InfluxDB Details

      • Database: 사용하는 DB 이름

      • User: DB 사용자 아이디

      • Password: DB 비밀번호

  2. "Save & Test" 클릭하여 연결 확인

4. 대시보드 & 패널 생성

대시보드 생성

  1. Dashboard → New Dashboard 클릭

  2. "Add new panel" 클릭하여 패널 추가

패널 기본 설정

스크린샷 2025-02-18 오후 5.49.34.png

  • Panel Title: 패널 제목 지정

  • Visualization: 그래프, 테이블, 게이지 등 시각화 방법 선택

  • Queries: InfluxDB, Prometheus 등의 데이터 쿼리 작성

  • Time range: 조회할 시간 범위 설정


5. 쿼리 작성 (InfluxDB 예제)

스크린샷 2025-02-18 오후 5.57.43.png

Row Query 작성은 연필 모양을 눌러서 작성하고, Query instpector를 눌러서 쿼리 적용과 컴파일을 한다

기본적인 InfluxDB 쿼리

SELECT mean("cpu_rate") FROM "user_usage" WHERE $timeFilter GROUP BY time(1m), "user_name" fill(0)
  • mean("cpu_rate"): 평균 CPU 사용량 조회

  • GROUP BY time(1m), "user_name": 1분 간격, 유저별 그룹핑

  • fill(0): 데이터가 없을 경우 0으로 채움

6. 그래프 & 테이블 설정

그래프 스타일 설정

  • Lines: 선 그래프 활성화

  • Bars: 막대 그래프 활성화

  • Points: 점 그래프 활성화 # ex)그래프에 1분간격으로 찍히는 것마다 점으로 표시 

  • Fill: 채우기 강도 설정    # 그래프와 아래 간격이 전부 색으로 채워짐

  • Stacking: 데이터 겹쳐서 쌓기 활성화

7. Tooltip, Legend, Alias 설정

Tooltip 설정

  • Mode: Single → 마우스를 올린 데이터 포인트 하나만 보이게 설정

  • Mode: All series → 모든 데이터가 함께 표시됨

Legend (범례) 설정

  • 위치 변경: To the right로 설정하면 오른쪽 정렬 가능

  • 값 추가: Min, Max, Avg, Total, Current 값 표시 가능

Alias 설정

SELECT mean("cpu_rate") FROM "user_usage" WHERE $timeFilter GROUP BY time(1m), "user_name" fill(0)
  • Alias by: $tag_user_nameuser_name만 표시


8. Grafana 운영 및 유지보수

1) Grafana 백그라운드 실행

nohup grafana-server > /dev/null 2>&1 &

2) 설정 파일 수정 (환경 설정 변경)

sudo nano /etc/grafana/grafana.ini
  • http_port = 3000: 포트 변경 가능

  • auth.anonymous enabled = true: 익명 로그인 허용 가능

3) 로그 확인

1) Grafana 백그라운드 실행

nohup grafana-server > /dev/null 2>&1 &

2) 설정 파일 수정 (환경 설정 변경)

sudo nano /etc/grafana/grafana.ini
  • http_port = 3000: 포트 변경 가능

  • auth.anonymous enabled = true: 익명 로그인 허용 가능