# 다보리 - Grafana 매뉴얼

# Grafana

## **1. Grafana 개요**

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

### **주요 기능**

1. 다양한 데이터 소스 연동 (InfluxDB, Prometheus, MySQL, PostgreSQL 등)
2. 커스터마이징 가능한 대시보드 제공
3. 데이터 시각화 (그래프, 테이블, 히트맵 등)
4. 알림(Alert) 및 경고 시스템 지원
5. 사용자 관리 및 권한 제어 가능

## **2. Grafana 설치**

### **1) Linux (Ubuntu) 설치**

**wget <span class="link-annotation-unknown-block-id--1588742698">[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)</span>**

**yum install grafana-7.1.0-1.x86\_64.rpm**

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-sudo-systemctl-enabl"><div class="overflow-y-auto p-4" dir="ltr"><div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950"><div class="overflow-y-auto p-4" dir="ltr">`sudo systemctl <span class="hljs-built_in">enable</span> --now grafana-server` **# Grafana 서비스 활성화 및 자동 실행** </div></div></div></div>- - `enable`: 부팅 시 자동 실행
    - `--now`: 즉시 시작

<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950" id="bkmrk-sudo-systemctl-statu"><div class="overflow-y-auto p-4" dir="ltr">`sudo systemctl status grafana-server` **\# 실행 중인지 확인**</div></div>### **2) Windows 설치**

<div class="overflow-y-auto p-4" dir="ltr" id="bkmrk-%EA%B3%B5%EC%8B%9D-%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C-%ED%8E%98%EC%9D%B4%EC%A7%80%EC%97%90%EC%84%9C-window">- [공식 다운로드 페이지](https://grafana.com/grafana/download)에서 Windows용 Grafana 다운로드 후 설치
- `grafana-server.exe` 실행

</div>#### **공통) Grafana 실행 후 웹사이트 접근**

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

<div id="bkmrk-">  
</div>## **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 : `<a href="http://localhost:8086">http://localhost:3000 <strong># localhost 대신 서버 IP</strong></a>`
2. Grafana 로그인 후 **Configuration → Data Sources** 클릭
3. "Add data source" 버튼 클릭 후 **InfluxDB 선택**

<div id="bkmrk-http-%C2%A0-url%3A-http%3A%2F%2Fl">1. **HTTP**
    
    
    - URL: `<a href="http://localhost:8086">http://localhost:8086</a>`
        
        **InfluxDB Details**
        
        
        - Database: `사용하는 DB 이름`
        - User: `DB 사용자 아이디`
        - Password: `DB 비밀번호`
2. "Save &amp; Test" 클릭하여 연결 확인

</div>## **4. 대시보드 &amp; 패널 생성**

### **대시보드 생성**

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: 조회할 시간 범위 설정

<div id="bkmrk--3">  
</div>## **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. 그래프 &amp; 테이블 설정**

### **그래프 스타일 설정**

- `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`만 표시

<div id="bkmrk--5">  
</div><div id="bkmrk--6"></div><div id="bkmrk--7"></div>## **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
```

<div id="bkmrk-http_port-%3D-3000%3A-%ED%8F%AC%ED%8A%B8-1">- `http_port = 3000`: 포트 변경 가능
- `auth.anonymous enabled = true`: 익명 로그인 허용 가능

</div>