# 다보리 - Grafana 매뉴얼 # 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](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 설치**
- [공식 다운로드 페이지](https://grafana.com/grafana/download)에서 Windows용 Grafana 다운로드 후 설치 - `grafana-server.exe` 실행
#### **공통) Grafana 실행 후 웹사이트 접근** 웹 브라우저에서 `http://localhost:3000` 접속 후 로그인 (`admin/admin` 기본 계정)
## **3. 데이터 소스 설정** ### **InfluxDB 연동 방법** InfluxDB는 시계열(time-series) 데이터베이스로, 일정 시간이 지나면 자동으로 데이터가 삭제되는 기능을 제공하여 실시간 모니터링 및 데이터 시각화에 최적화되어 있습니다. 따라서 Grafana에서 장기간 데이터를 유지할 필요 없이 최근 데이터를 기준으로 대시보드를 구성하기에 적합하기에 이번 매뉴얼에선 InfluxDB를 활용합니다. [![스크린샷 2025-02-18 오후 5.43.13.png](https://manual.dabory.com/uploads/images/gallery/2025-02/scaled-1680-/2025-02-18-5-43-13.png)](https://manual.dabory.com/uploads/images/gallery/2025-02/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](https://manual.dabory.com/uploads/images/gallery/2025-02/scaled-1680-/2025-02-18-5-49-34.png)](https://manual.dabory.com/uploads/images/gallery/2025-02/2025-02-18-5-49-34.png) - Panel Title: 패널 제목 지정 - Visualization: 그래프, 테이블, 게이지 등 시각화 방법 선택 - Queries: InfluxDB, Prometheus 등의 데이터 쿼리 작성 - Time range: 조회할 시간 범위 설정
## **5. 쿼리 작성 (InfluxDB 예제)** [![스크린샷 2025-02-18 오후 5.57.43.png](https://manual.dabory.com/uploads/images/gallery/2025-02/scaled-1680-/2025-02-18-5-57-43.png)](https://manual.dabory.com/uploads/images/gallery/2025-02/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_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`: 익명 로그인 허용 가능