Grafana 설치 – Docker, Kubernetes

Grafana는 오픈소스 데이터 시각화 및 모니터링 도구로, 다양한 데이터 소스를 연결해 사용자 지정 대시보드를 생성할 수 있는 강력한 플랫폼입니다. 개발 및 운영팀이 실시간으로 데이터를 분석하고, 인사이트를 얻는 데 유용합니다.
Docker와 Helm을 활용하여 Grafana를 설치하는 방법을 간단히 소개합니다. Docker는 컨테이너 기반의 설치를, Helm은 Kubernetes 환경에서 간편한 설치 및 관리를 제공합니다.

사전 준비 사항:

  • DockerDocker-Compose가 설치된 환경
  • Kubernetes 클러스터 접근 권한
  • Helm이 설치된 환경

전체 내용:

  1. Docker Compose로 설치:
    • Localhost에 Docker를 이용하여 설치.
  2. Kubernetes에 설치:
    • Helm을 이용하여 설치.

* Local에 Docker Compose 이용

* 예제에서 데이터 파일을 저장할 로컬경로를 “/data/grafana”로 지정 했습니다. 이 경우 docker에서 사용하는 group id, user id와 데이터 경로의 소유자가 같아야 하기 때문에 데이터 경로 생성과 소유자 설정이 먼저 이루어 져야 합니다.
* 공식 grafana docker 이미지는 group id로 472을 user id로 472을 사용 합니다.
				
					user:~$ sudo mkdir -p /data/grafana
user:~$ sudo chown 472:472 /data/grafana
				
			
docker-compose.yml
				
					services:
# define grafana container
  grafana:
    image: grafana/grafana:latest
    restart: unless-stopped
    container_name: grafana
    ports:
      - "3000:3000"  # web port
    volumes:
      - /data/grafana:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=admin
				
			
실행 & 제거
				
					# start container
user:~$ docker compose up postgresql -d

# stop container
user:~$ docker container stop <container hash value>

# remove container
user:~$ docker container rm <container hash value>

				
			

* Kubernetes에 HELM 이용

Kubernetes 환경에서 PostgreSQL을 설치할 때 Helm을 활용하면 간단하고 효율적으로 설치 및 관리를 할 수 있습니다. 특히, 하나의 명령으로 주요 설정을 완료할 수 있어 초보자도 쉽게 따라 할 수 있습니다. 이번 글에서는 Grafana의 공식 Helm Chart와 Docker 이미지를 활용해 PostgreSQL을 설치하는 가장 간단한 방법을 소개합니다.
repository 등록
				
					user:~$ helm repo add grafana https://grafana.github.io/helm-charts
user:~$ helm repo update
				
			
설정 옵션 확인
				
					user:~$ helm show values grafana/grafana > grafana-values.yaml
				
			
* Helm에 values에서 설정할 수 있는 옵션과 각 옵션들의 정확한 위치를 확인하기 위해 values.yaml 파일로 저장 합니다.
* 공식문서를 통해 확인할 수도 있습니다. : github
설치
				
					user:~$ helm install grafana grafana/grafana --namespace grafana --create-namespace \
  --set persistence.enabled=true \
  --set persistence.storageClassName=local-path \
  --set persistence.size=50Gi \
  --set adminUser={ID} \
  --set adminPassword={PASSWORD} \
  --set service.type=LoadBalancer \
  --set service.port=80 \
  --set service.targetPort=3000
				
			
실행 & 제거
				
					# Check if it is installed and running properly.
user:~$ kubectl get all -n postgresql
				
			

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다