Grafana


Grafana - 그라파나

Grafana(그라파나)는 오픈 소스 데이터 시각화 및 모니터링 툴입니다. 주로 시스템의 상태, 성능, 지표 등을 실시간으로 대시보드 형태로 시각화하는 데 사용됩니다.
기본 포트: 3000

1. 📌 Grafana의 주요 특징

  • 데이터 시각화 (Visualization): 다양한 차트, 그래프, 게이지 등을 이용해 데이터를 직관적으로 표현할 수 있습니다.
  • 다양한 데이터 소스 지원: Prometheus, InfluxDB, Elasticsearch, MySQL, PostgreSQL, Loki, Graphite 등 여러 데이터베이스와 모니터링 툴과 연동됩니다.
  • 대시보드 생성 및 공유 사용자 정의 가능한 대시보드를 쉽게 만들 수 있으며, 팀원들과 공유하거나 템플릿으로 저장할 수 있습니다.
  • 알림 기능 (Alerting): 특정 조건을 만족할 때 이메일, Slack, Webhook 등으로 알림을 보낼 수 있습니다.
  • 플러그인 시스템: 다양한 플러그인을 통해 시각화 도구나 데이터 소스를 확장할 수 있습니다.

2. 🧰 사용 예시

  • 시스템 자원 사용률 모니터링 (CPU, 메모리, 디스크 등)
  • 서버 및 애플리케이션 로그 분석 (Loki 연동 시)
  • DevOps 환경에서 Prometheus + Grafana를 통한 메트릭 분석
  • IoT 장비 데이터 시각화

3. ✅ Prometheus가 적합한 상황

  • 인프라 운영 및 DevOps 환경
  • 실시간 데이터가 필요한 애플리케이션
  • 데이터 시각화 중심의 리포트 대시보드 구축

4. ⚙️ 다운로드(설치), 실행

📥 다운로드(설치) - Grafana Release 확인

  • $ cd /app
  • $ mkdir grafana && cd grafana -> grafana dir 생성하고 이동
  • $ wget https://dl.grafana.com/oss/release/grafana-11.5.1.linux-amd64.tar.gz -> 140M
  • $ tar -zxvf grafana-11.5.1.linux-amd64.tar.gz -> 압축 풀기
  • $ ll grafana-v11.5.1/bin -> 실행 파일: grafana (크기: 256M)
  • $ mkdir bin conf data log plugins -> dir 생성
  • $ ln -s ../grafana-v11.5.1/bin/grafana bin/grafana -> 링크 생성
    $ ln -s ../grafana-v11.5.1/bin/grafana-cli bin/grafana-cli -> 링크 생성
    $ ln -s ../grafana-v11.5.1/bin/grafana-server bin/grafana-server -> 링크 생성
    $ cp -r grafana-v11.5.1/public . -> public dir 복사, 복사하지 않으면 에러가 나고 시작하지 않는다.
      ➡ logger=settings level=error msg="Failed to detect generated javascript files in public/build"
    $ cp grafana-v11.5.1/conf/defaults.ini conf/ -> default conf 파일 복사
  • grafana dir 최종 상태

⚙️ Grafana 설정 파일 확인

cat /app/grafana/conf/grafana.ini

🖥️ 시스템 서비스 등록

sudo vi /usr/lib/systemd/system/grafana-server.service

  • sudo systemctl daemon-reload -> 설정 reload
  • sudo systemctl start grafana -> 시작(실행)
  • sudo systemctl enable grafana -> 자동 실행 등록
  • sudo systemctl stop grafana -> 중지(shutdown)
  • sudo systemctl status grafana -> 상태 확인

⚓ 3000 포트 허용

  1. sudo vi /etc/sysconfig/iptables -> 아래 내용 저장
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT
  2. sudo systemctl restart iptables
  3. sudo iptables -L -n | grep 3000 -> iptables 설정 확인
    target prot opt source destination
    ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3000
  4. sudo netstat -tulnp | grep 3000 -> netstat 확인
    tcp6 0 0 :::3000 :::* LISTEN 14105/grafana
  5. 포트 관련 추가로 필요한 설정이 있으면 해주세요.

🌐 브라우저 ➡ 실행 화면 확인

• http://IP:3000 -> Grafana 기본 화면


• 메뉴: Dashboards
  - Node Exporter와 Redis 2개 dashboard가 나온다. 클릭하면 해당 dashboard로 이동한다.


• Node Exporter(서버 모니터링) 화면
  - 이 화면이 나오려면 아래 'Data sources 등록'과 'Dashboards 등록'을 해야 한다.


• Redis Exporter(레디스 모니터링) 화면

Data sources 등록 💾

• Connections > Data sources > [Add new data source] > Prometheus


• Prometheus: Name(이름) 설정, Connection: URL IP:port 설정


• Prometheus: Scrape interval 설정


• Prometheus: [Save & test] 저장

Dashboards 등록 💾

• Dashboards > [New] > Import > ID:1860 [Load] -> Select data source -> [Import]


• Import dashboard: ID:1860 (서버 모니터) or 11835 (레디스 모니터) [Load]


• Import dashboard: Name, Select a Prometheus data source


• Import dashboard: Select a Prometheus data source -> [Import]


• Dashboards 메뉴를 클릭하면 import 된 Dashboards를 볼 수 있고, 선택하면 해당 모니터링 화면이 나옵니다.


Email 답글이 올라오면 이메일로 알려드리겠습니다.