snow · 2026.5.15 11:04 · 조회 2
Grafana 백업 및 복구
백업 대상
Grafana의 모든 설정은 SQLite(기본) 또는 MySQL/PostgreSQL 데이터베이스와 설정 파일에 저장됩니다.
| 항목 | 위치 | 내용 |
|---|---|---|
| 데이터베이스 | /var/lib/grafana/grafana.db | 대시보드, 사용자, 데이터 소스, 알림 설정 |
| 설정 파일 | /etc/grafana/grafana.ini | 서버 설정 |
| 플러그인 | /var/lib/grafana/plugins/ | 설치된 플러그인 |
| Provisioning | /etc/grafana/provisioning/ | 코드 기반 설정 |
SQLite 데이터베이스 백업
1#!/bin/bash2BACKUP_DIR=/backup/grafana3DATE=$(date +%Y%m%d_%H%M%S)4mkdir -p $BACKUP_DIR5 6# 서비스 중단 없이 백업 (SQLite WAL 모드)7cp /var/lib/grafana/grafana.db $BACKUP_DIR/grafana_$DATE.db8 9# 설정 파일 백업10cp /etc/grafana/grafana.ini $BACKUP_DIR/grafana_$DATE.ini11 12# 30일 이상 된 백업 삭제13find $BACKUP_DIR -name "*.db" -mtime +30 -delete14 15echo "백업 완료: grafana_$DATE.db"Cron 등록
10 2 * * * /opt/scripts/grafana-backup.sh >> /var/log/grafana-backup.log 2>&1Docker 환경 백업
1# 볼륨 백업2docker run --rm \3 -v grafana_data:/source \4 -v /backup/grafana:/backup \5 alpine tar -czf /backup/grafana_$(date +%Y%m%d).tar.gz -C /source .대시보드 내보내기
UI에서 개별 대시보드 내보내기
- 대시보드 열기
- 상단 공유 아이콘 → Export
- Export for sharing externally 활성화
- Save to file 클릭
API로 일괄 내보내기
1TOKEN="your-service-account-token"2GRAFANA_URL="http://grafana:3000"3 4# 대시보드 목록 조회5dashboards=$(curl -s -H "Authorization: Bearer $TOKEN" \6 "$GRAFANA_URL/api/search?type=dash-db" | jq -r '.[].uid')7 8# 각 대시보드 내보내기9for uid in $dashboards; do10 curl -s -H "Authorization: Bearer $TOKEN" \11 "$GRAFANA_URL/api/dashboards/uid/$uid" \12 | jq '.dashboard' > "dashboard_${uid}.json"13done복구
데이터베이스 복구
1sudo systemctl stop grafana-server2cp /backup/grafana/grafana_20251001_020000.db /var/lib/grafana/grafana.db3sudo chown grafana:grafana /var/lib/grafana/grafana.db4sudo systemctl start grafana-server대시보드 가져오기
Dashboards → Import → JSON 파일 업로드 또는 붙여넣기
MySQL/PostgreSQL 백업 (외부 DB 사용 시)
외부 DB를 사용하는 경우 표준 DB 백업 방식을 사용합니다.
1# MySQL 백업2mysqldump -u grafana -p grafana > grafana_$(date +%Y%m%d).sql3 4# 복구5mysql -u grafana -p grafana < grafana_20251001.sql댓글
아직 댓글이 없습니다.
댓글을 작성하려면 로그인이 필요합니다.