Grafana
1. Grafana 개요
Grafana는 다양한 데이터 소스를 연결하여 시각적으로 데이터를 모니터링할 수 있는 오픈소스 대시보드 도구입니다. IT 인프라, 애플리케이션 성능 모니터링, 데이터 분석 등에 널리 사용됩니다.
주요 기능
-
다양한 데이터 소스 연동 (InfluxDB, Prometheus, MySQL, PostgreSQL 등)
-
커스터마이징 가능한 대시보드 제공
-
데이터 시각화 (그래프, 테이블, 히트맵 등)
-
알림(Alert) 및 경고 시스템 지원
-
사용자 관리 및 권한 제어 가능
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
-
enable
: 부팅 시 자동 실행--now
: 즉시 시작
2) Windows 설치
-
공식 다운로드 페이지에서 Windows용 Grafana 다운로드 후 설치
-
grafana-server.exe
실행
공통) Grafana 실행 후 웹사이트 접근
웹 브라우저에서 http://localhost:3000
접속 후 로그인 (admin/admin
기본 계정)
3. 데이터 소스 설정
InfluxDB 연동 방법
InfluxDB는 시계열(time-series) 데이터베이스로, 일정 시간이 지나면 자동으로 데이터가 삭제되는 기능을 제공하여 실시간 모니터링 및 데이터 시각화에 최적화되어 있습니다. 따라서 Grafana에서 장기간 데이터를 유지할 필요 없이 최근 데이터를 기준으로 대시보드를 구성하기에 적합하기에 이번 매뉴얼에선 InfluxDB를 활용합니다.
- Grafana 접근 URL :
http://localhost:3000 # localhost 대신 서버 IP
- Grafana 로그인 후 Configuration → Data Sources 클릭
- "Add data source" 버튼 클릭 후 InfluxDB 선택
-
HTTP
-
InfluxDB Details
-
Database:
사용하는 DB 이름
-
User:
DB 사용자 아이디
-
Password:
DB 비밀번호
-
-
-
"Save & Test" 클릭하여 연결 확인
4. 대시보드 & 패널 생성
대시보드 생성
-
Dashboard → New Dashboard 클릭
-
"Add new panel" 클릭하여 패널 추가
패널 기본 설정
-
Panel Title: 패널 제목 지정
-
Visualization: 그래프, 테이블, 게이지 등 시각화 방법 선택
-
Queries: InfluxDB, Prometheus 등의 데이터 쿼리 작성
-
Time range: 조회할 시간 범위 설정
5. 쿼리 작성 (InfluxDB 예제)
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_name
→user_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
: 익명 로그인 허용 가능
No Comments