리눅스로 한 학기 살기 프로젝트-10

ashcircle·2025년 5월 28일

Prometheus

Prometheus(프로메테우스)란?

Prometheus는 메트릭 기반 오픈소스 모니터링 시스템이다
특히 쿠버네티스(Kubernetes) 환경에서 표준처럼 사용되며,
시스템/애플리케이션의 성능과 상태를 실시간으로 관찰하고 알림까지 제공하는 도구다.


쿠버네티스에서 프로메테우스 설치 과정 요약

1. 모니터링 네임스페이스 생성

모니터링 리소스를 분리하려고 전용 네임스페이스를 만든다.

kubectl create namespace monitoring

2. 쿠버네티스 매니페스트 파일 준비

아래 리소스 정의 파일들을 작성한다.

  • namespace.yaml: 모니터링 네임스페이스 정의
  • prometheus-configmap.yaml: 프로메테우스 설정 정보
  • prometheus-deployment.yaml: 프로메테우스 배포 설정
  • prometheus-service.yaml: 프로메테우스 서비스 정의
  • prometheus-serviceaccount.yaml: 서비스 계정
  • prometheus-clusterrole.yaml: 클러스터 권한 설정
  • prometheus-clusterrolebinding.yaml: 권한 바인딩

3. 프로메테우스 설정 구성

ConfigMap에 아래 설정을 넣는다.

  • 전역 스크래핑 간격 15초로 지정
  • 쿠버네티스 노드, 파드, kube-state-metrics, 디스코드 봇 등 메트릭 수집 작업 추가

4. RBAC(Role-Based Access Control) 설정

프로메테우스가 쿠버네티스 API에 접근할 수 있도록 권한을 부여한다.

  • ServiceAccount 생성
  • ClusterRole로 메트릭 수집 권한 부여
  • ClusterRoleBinding으로 권한 연결

5. kube-state-metrics 설치

쿠버네티스 리소스 상태 메트릭을 수집하려고 kube-state-metrics 컴포넌트를 설치한다.

  • 배포, 서비스, RBAC 설정 적용
  • 네임스페이스를 monitoring으로 맞춘다

6. 프로메테우스 배포

  • prom/prometheus:latest 이미지로 Deployment 생성
  • NodePort 서비스(예: 30090 포트)로 외부에서 접근할 수 있게 설정

7. 구성 업데이트

  • 초기 설정 후 ConfigMap을 업데이트해서 더 많은 메트릭을 수집하도록 개선
  • 대시보드에 필요한 메트릭이 모두 들어오도록 설정 조정

8. 설치 확인

  • 프로메테우스 웹 UI(http://192.168.49.2:30090)에 접속
  • 쿼리 기능으로 메트릭 수집 상태 확인

minikube의 pod에서 prometheus가 실행 중인 것을 확인할 수 있다.

다음과 같이 k8s의 health도 한눈에 확인할 수 있다.

PromQL를 이용해서 디코봇 pod의 cpu 누적 사용시간을 그래프로 확인할 수 있다.

하지만 예쁘지 않아서 맘에 안든다. 다음에는 Grafana를 설치해서 웹 ui를 통해 k8s 전체 리소스를 한눈에 볼 수 있게 해보겠다.

profile
안녕하세요 코린이입니다.

0개의 댓글