티스토리 뷰
목차
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개를 띄웠다가 하나 중지했더니 이런 그래프가 그려졌다.
.
.
여기까지가 프로젝트의 마지막이다.
짧은 회고로 마무리해보자.
'개발계발 > Project' 카테고리의 다른 글
[kubernetes로 모니터링시스템 구축하기] 6. 짧은 회고 (0) | 2023.05.03 |
---|---|
[kubernetes로 모니터링시스템 구축하기] 0. 프로젝트 시작 (0) | 2023.05.03 |
[kubernetes로 모니터링시스템 구축하기] 4. ELK Stack으로 로그 모니터링 시스템 구축하기 (0) | 2023.05.02 |
[kubernetes로 모니터링시스템 구축하기] 3. ArgoCD 개념 파악 및 배포하기 (1) | 2023.05.01 |
[kubernetes로 모니터링시스템 구축하기] 2. 인프라 설정 및 Nginx 띄워보기 (0) | 2023.05.01 |
- Total
- Today
- Yesterday
- bugfix
- JWT
- supervisord
- fastapi
- Pydantic
- ArgoCD
- promethus
- miniproject
- pytest
- coroutine
- grafana
- async
- kibana
- await
- kubectl
- DevOps
- OAuth
- Project
- kubernetes
- Supervisor
- gradle
- elasticsearch
- sns로그인
- numble
- jwt로그인
- NCP
- elk
- factory_boy
- logstash
- GitOps
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |