본문 바로가기
DevOps/Monitoring

[Grafana] 그라파나란? 간단한 구성과 실습

by BenKangKang 2024. 3. 27.

Grafana?

- 오픈소스 메트릭 데이터 시각화 도구, 메트릭 분석 플랫폼

- 다양한 빅테크 기업에서 시각화 도구로 사용하고 있다.

 

특징 (ChatGPT)

1. 다양한 데이터 소스 지원

그라파나는 여러 다양한 데이터 소스를 지원합니다. 예를 들어, Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL, Microsoft SQL Server 등 다양한 데이터베이스 및 시계열 데이터베이스와 통합할 수 있습니다.

 

2. 시각적 대시보드

라파나는 다양한 차트, 그래프, 테이블 등을 이용하여 데이터를 시각적으로 표현할 수 있는 대시보드를 제공합니다. 이를 통해 데이터의 변화 및 추이를 쉽게 파악할 수 있습니다.

 

3. 경고 및 알림

그라파나는 사용자가 정의한 임계값을 기준으로 데이터의 이상 상태를 감지하고 이에 대한 알림을 제공합니다. 예를 들어, CPU 사용률이 지정한 임계값을 초과하는 경우 이를 관리자에게 이메일로 알려줄 수 있습니다.

 

 

4. 다양한 플러그인 및 확장 기능

그라파나는 플러그인 아키텍처를 제공하여 사용자들이 원하는 기능을 확장하고 추가할 수 있습니다. 이를 통해 다양한 데이터 소스 및 시각화 방법을 지원할 수 있습니다.

https://grafana.com/grafana/plugins/

 

5. 사용자 친화적 인터페이스

그라파나는 사용하기 쉬운 대시보드 편집기를 제공하여 사용자가 대시보드를 쉽게 만들고 수정할 수 있습니다. 또한, 다양한 사용자 및 팀을 관리하고 사용 권한을 설정할 수 있습니다.

 

6. 커뮤니티 및 지원

그라파나는 활발한 커뮤니티와 다양한 문서, 자습서, 포럼을 제공하여 사용자들이 필요한 정보를 얻을 수 있도록 지원합니다. 또한, 상용 지원 옵션도 제공되어 사용자들이 고급 기능 및 지원을 받을 수 있습니다.

 

 

사용 사례:

  • 시스템 모니터링: 서버 및 네트워크 성능을 모니터링하고 문제를 식별하기 위해 그라파나를 사용합니다.
  • 응용 프로그램 모니터링: 응용 프로그램의 성능, 사용량, 사용자 동작 등을 추적하고 분석하기 위해 그라파나를 사용합니다.
  • 사업 지표 모니터링: 기업의 핵심 성과 지표를 모니터링하고 비즈니스 결정에 활용하기 위해 그라파나를 사용합니다.
  • IoT 디바이스 모니터링: 사물 인터넷 디바이스에서 수집된 데이터를 시각화하여 모니터링하고 분석하기 위해 그라파나를 사용합니다.

 

구성

docker-compose.yml

version: '3'

services:
  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=your_admin_password
      - GF_USERS_ALLOW_SIGN_UP=false
    restart: always

volumes:
  grafana_data:

 

grafana.ini

# 기본 서버 설정
[server]
http_addr = 0.0.0.0
http_port = 3000

# 보안 설정
[security]
admin_user = admin
admin_password = test!
login_remember_days = 7

# 사용자 관리 설정
[users]
allow_sign_up = false
allow_org_create = false
auto_assign_org = true

# 데이터베이스 설정 (예: MySQL)
[database]
type = mysql
host = localhost:3306
name = local_stage
user = root
password = 1234

# 로그 설정
[logging]
log_level = info

 

 

실습

1. 데이터 소스 추가

Connections - Data sources 에서 원하는 데이터 소스 추가

 

2. 대시보드 추가

 

3. Add visualization

 

 

4. 원하는 쿼리와 표현 형태 정해서 대시보드 생성

SELECT count(*), DATE_FORMAT(activatedOn, '%Y-%m') as activedMonth
FROM account
WHERE activatedOn IS NOT NULL
AND activatedOn >= $__timeFrom()
AND activatedOn <= $__timeTo()
GROUP BY (activedMonth);

 

5. 완료

댓글