Grafana는 오픈소스 데이터 시각화 및 모니터링 도구로, 다양한 데이터 소스를 연결해 사용자 지정 대시보드를 생성할 수 있는 강력한 플랫폼입니다. 개발 및 운영팀이 실시간으로 데이터를 분석하고, 인사이트를 얻는 데 유용합니다.
Docker와 Helm을 활용하여 Grafana를 설치하는 방법을 간단히 소개합니다. Docker는 컨테이너 기반의 설치를, Helm은 Kubernetes 환경에서 간편한 설치 및 관리를 제공합니다.
Docker와 Helm을 활용하여 Grafana를 설치하는 방법을 간단히 소개합니다. Docker는 컨테이너 기반의 설치를, Helm은 Kubernetes 환경에서 간편한 설치 및 관리를 제공합니다.
사전 준비 사항:
- Docker 및 Docker-Compose가 설치된 환경
- Kubernetes 클러스터 접근 권한
- Helm이 설치된 환경
전체 내용:
- Docker Compose로 설치:
- Localhost에 Docker를 이용하여 설치.
- Kubernetes에 설치:
- Helm을 이용하여 설치.
* Local에 Docker Compose 이용
* 예제에서 데이터 파일을 저장할 로컬경로를 “/data/grafana”로 지정 했습니다. 이 경우 docker에서 사용하는 group id, user id와 데이터 경로의 소유자가 같아야 하기 때문에 데이터 경로 생성과 소유자 설정이 먼저 이루어 져야 합니다.
* 공식 grafana docker 이미지는 group id로 472을 user id로 472을 사용 합니다.
* 공식 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
# remove container
user:~$ docker container rm
* 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
* 공식문서를 통해 확인할 수도 있습니다. : 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