Cloud/Prometheus

프로메테우스 설치 및 실행

DGO 2023. 5. 31. 13:17

Helm 설치

 

헬름은 쿠버네티스에 패키지를 손쉽게 배포할 수 있도록 패키지를 관리하는 쿠버네티스 전용 패키지 매니저로 리눅스의

 

yum, apt 파이썬의 pip와 같은 역할을 한다.

 

헬름을 설치하고 이를 통해 프로메테우스를 설치한다.

 

 

아래 명령어를 통해 helm을 설치한다.

 

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

 

사전 설치 및 설정

 

프로메테우스를 설치하기 전 프로메테우스 서버와 연결할 nfs, PV, PVC 생성과 외부 ip를 부여할 metallb를 구성하여야 한다.

 

https://do0911.tistory.com/17

 

PV, PVC

쿠버네티스에서 파드는 언제든 생성되고 지워진다. 하지만 파드에서 생성한 내용을 기록하고 보관하거나 모든 파드가 동일한 설정 값을 유지하고 관리하기 위해 공유된 볼륨으로 부터 값을 가

do0911.tistory.com

 

 

nfs 서버를 생성하기 위해 nfs_shared/prometheus/server 폴더를 생성하고 /etc/exports 설정 파일에 등록한다.

mkdir nfs_shared/prometheus/server
echo '/nfs_shared/prometheus/server 192.168.1.0/24(rw,sync,no_root_squash)' >> /etc/exports

 

해당 nfs 볼륨을 사용하도록 PV, PVC를 아래와 같은 오브젝트 파일을 생성하여 nfs 서버를 프로비저닝 한다.

 

이름은 prometheus-server로 설정한다.

apiVersion: v1
kind: PersistentVolume		## PV
metadata:
  name: prometheus-server
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    server: 192.168.1.10
    path: /nfs_shared/prometheus/server
---
apiVersion: v1
kind: PersistentVolumeClaim	## PVC
metadata:
  name: prometheus-server
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi

 

 

metallb도 이전 포스트를 참조하여 구성한다.

 

https://do0911.tistory.com/15

 

쿠버네티스의 서비스 (LoadBalancer)

Loadbalancer 로드밸런서는 서버에 가해지는 부하를 분산해주는 기술 및 장치로 클라이언트와 서버 사이에 위치하여 한 대의 서버로 부 하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적

do0911.tistory.com

 

 

 

 

Helm을 통해 프로메테우스 설치

 

프로메테우스의 공식 깃허브에 있는 레포지토리를 헬름에 추가하고 최신 차트 정보를 동기화한다.

 

https://github.com/prometheus-community/helm-charts

 

GitHub - prometheus-community/helm-charts: Prometheus community Helm charts

Prometheus community Helm charts. Contribute to prometheus-community/helm-charts development by creating an account on GitHub.

github.com

 

$ helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
$ helm repo update

 

 

해당 레포지토리에는 다양한 chart가 있으며 위 주소에서 확인하거나 helm search repo prometheus-community 명령어를

 

사용하여 확인할 수 있다.

 

 

 

이중 프로메테우스 환경을 구성할 수 있는 prometheus를 다운받고 해당 파일의 압축을 해제한다.

$ helm pull prometheus-community/prometheus
$ tar xvfz prometheus-22.6.2.tgz

 

폴더의 내용을 살펴보면 values.yaml이라는 파일이 존재하는데 해당 설정 파일을 수정하여 사용할 수도 있다.

 

설치전에 로컬 환경에서 실행하기 위해 values.yaml 파일을 수정하여야 한다.

 

우선 405번 줄의 existingClaim을 위에서 만든 PVC를 사용하도록 prometheus-server로 변경한다.

 

 

607번 줄의 type을 metallb로부터 외부 ip를 할당받아 웹 ui로 확인할 수 있도록 LoadBalancer로 설정한다.

 

 

마지막으로 181번줄의 extraFlags에서 storage.tsdb.no-lockfile 항목을 주석 해제한다.

 

프로메테우스의 설정을 변경할 때 lockfile이 있으면 변경작업을 실패하기 때문에 해당 설정으로 lockfile이 생성되지 않게

 

할 수 있다.

 

 

values.yaml 설정이 끝나면 아래 명령어로 프로메테우스를 설치한다.

$ helm install prometheus prometheus-community/prometheus -f values.yaml

 

설치가 완료되면 구성요소가 설치됐는지 확인하고 kubectl get service 명령어로 프로메테우스 서비스의 IP주소를 확인하

 

여 정상적으로 접속되는지 웹에서 확인한다.

 

 

'Cloud > Prometheus' 카테고리의 다른 글

프로메테우스 (Web UI)  (0) 2023.06.01
Prometheus란?  (0) 2023.05.31