Grafana 자동 대시보드 구성: VS Code + Docker + SSH

Category
log-central
Status
Published
Tags
Docker
Grafana
Provisioning
VS Code
Description
Published
Slug

조건

  • Ubuntu 서버에 docker, docker-compose 설치되어 있음
  • ElasticSearch + Grafana가 Docker로 실행 중임
  • 로컬 PC는 Windows이며, VS Code 설치됨
 

1. SSH 접속 설정 (VS Code Remote - SSH)

1-1. VS Code 플러그인 설치

  1. VS Code 좌측 확장 탭 (아이콘) 클릭
  1. Remote - SSH 검색 → 설치
 

1-2. SSH 설정 파일 수정 (서버 접속 정보 등록)

  1. 명령 팔레트 열기 (Ctrl + Shift + P)
  1. Remote-SSH: Open SSH Configuration File... 선택
  1. 경로 선택 (일반적으로 C:\Users\[사용자명]\.ssh\config)
Host plitsoft-dev HostName 210.107.205.150 User lottecard Port 1412 IdentityFile C:/Users/[사용자명]/.ssh/id_rsa
Port 번호는 서버에서 허용된 SSH 포트로 설정 IdentityFile 경로는 본인의 개인키 경로
 

1-3. 접속

  1. 명령 팔레트 열기 (Ctrl + Shift + P)
  1. Remote-SSH: Connect to Host...열고자 하는 서버 선택
  1. 처음이면 플랫폼 선택 (Linux), 서버에 설치 진행됨
선택 항목
설명
예시
Linux
리눅스 기반 서버 (대부분의 클라우드 서버, Ubuntu 등)
AWS EC2, Google Cloud, Ubuntu 서버
Windows
원격 서버가 윈도우 OS일 때
Windows Server에 SSH 설정해놓은 경우
macOS
맥북이나 맥 서버를 원격으로 접속할 때
드물지만 Mac Mini 서버 등

2. Grafana 설정 위한 디렉토리 구조 생성

 

1. 폴더 구조 세팅

접속한 서버 안에서 Grafana provisioning 설정을 담을 디렉토리를 만듦
cd ~/docker mkdir -p grafana/provisioning/{dashboards,datasources,notifiers} mkdir -p grafana/dashboards

2. docker-compose.yml 수정

~/docker/docker-compose.yml 파일을 VS Code에서 열고,
아래처럼 grafana 서비스의 volumes 항목에 설정 추가
grafana: ... volumes: - grafana-data:/var/lib/grafana - ./grafana/provisioning:/etc/grafana/provisioning - ./grafana/dashboards:/var/lib/grafana/dashboards
 
  • 설정 yaml 파일들을 /etc/grafana/provisioning/에 넣고
  • 대시보드 JSON 파일을 /var/lib/grafana/dashboards에 넣겠다는 의미
 
 

3. Provisioning 설정 파일 작성

3-1. 데이터소스 설정

grafana/provisioning/datasources/datasource.yml
apiVersion: 1 datasources: - name: Elasticsearch type: elasticsearch access: proxy url: http://elasticsearch:9200 jsonData: esVersion: 8 timeField: "@timestamp" isDefault: true

3-2. 대시보드 경로 설정

grafana/provisioning/dashboards/dashboard.yml
apiVersion: 1 providers: - name: Default folder: "AutoDashboards" type: file options: path: /var/lib/grafana/dashboards

3-3. 대시보드 JSON 파일 생성: grafana/dashboards/system-cpu.json

  1. Grafana 웹 UI에서 하나의 대시보드 생성
  1. 우측 상단 → "JSON으로 내보내기"
  1. 해당 JSON 파일을 grafana/dashboards/ 경로에 업로드

 

4. Docker 재시작

cd ~/docker docker-compose down docker-compose up -d

 

5. 결과 확인

  • 브라우저 접속: http://~~:23000
  • ID/PW: admin / admin
  • Dashboards → Manage → "AutoDashboards" 폴더 확인