티스토리 뷰

목차

1. 쿠버네티스 구성 살펴보기 

2. 인프라 설정 및 Nginx 띄워보기 

3. ArgoCD 개념 파악 및 배포하기 

4. ELK Stack으로 로그 모니터링 시스템 구축하기 

5. Prometheus와 Grafana 사용해보기 👈 here

 

이번 포스팅에서는 Prometheus와 Grafana를 사용할 것이다. 간단하게 개념부터 살펴보자.

 

Prometheus(프로메테우스)

모니터링 및 경고 툴킷으로 메트릭 이름과 키/값 쌍으로 식별되는 시계열 데이터를 수집한다. 매트릭이란 숫자 측정을 의미하며 요청 시간, 연결 수, 활성 쿼리 수 등이 해당한다. PromQL이라는 프로메테우스의 자체 쿼리 언어를 제공하여 쿼리문으로 시간 관련 쿼리 기능 등을 제공한다.

아래 그림은 프로메테우스 아키텍처이다.

 

Grafana(그라파나)

프로메테우스에서 수집한 메트릭을 시각화해서 보여주어 모니터링 할 수 있도록 하고 알럿 설정을 통한 위험 감지 등이 가능하다.

 


설치하기

ArgoCD에서 관리하기 위해 우선 Application CRD를 작성한다.

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: kube-prometheus-stack
  namespace: argocd
spec:
  project: default
  destination:
    server: https://kubernetes.default.svc
    namespace: prometheus
  sources:
  - repoURL: 'https://prometheus-community.github.io/helm-charts'
    chart: kube-prometheus-stack
    targetRevision: 45.23.0
    helm:
      valueFiles:
      - $values/kube-prometheus-stack/values.yaml
  - repoURL: 'https://github.com/Jyejin/build-monitoring-system.git'
    targetRevision: HEAD
    ref: values

외부 repo에서 chart를 가져오는 방식으로 source에 repo경로를, chart에 chart directory를 적어주면 된다. values.yaml의 작성은 나의 개인 repo에 저장해 두었으므로 valueFiles에 values.yaml 경로를 추가하고 나의 repoURL도 추가해준다. 참고로 $values가 루트이다.

마찬가지로 ArgoCD에서 sync를 사용해 배포한다.

계정정보는 email은 admin이고 비밀번호는 values.yaml에서 adminPassword로 초기 값을 설정할 수 있다.

대시보드에서 노드의 매트릭 정보를 살펴보자.

테스트 환경이라 별 지표가 없지만 뿌듯하다..

 

직접 쿼리를 작성하여 나만의 대시보드도 만들 수 있다.

Dashboard > new > new Dashboard에서 panel을 설정하자.

아래는 노드의 CPU 사용률을 보여주는 쿼리 예시이다. (참고)

100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

노드 2개를 띄웠다가 하나 중지했더니 이런 그래프가 그려졌다. 

 

.

.

여기까지가 프로젝트의 마지막이다.

짧은 회고로 마무리해보자.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함