성능/Promethous & Grafana

Prometheus & Grafana 정의 및 구축 방법

멋진놈 2023. 10. 25. 11:15
728x90

# Prometheus

1. 정의

Prometheus는 오픈 소스 기반의  모니터링  시스템이다. ELK 와 같은 로깅이 아니라, 대상 시스템으로 부터 각종 모니터링 지표를 수집하여  저장 하고  검색 할 수 있는 시스템이다. 구조가 간단해서 운영이 쉽고, 강력한 쿼리 기능을 가지고 있으며, 그라파나(Grafana) 를 통한  시각화 를 지원한다. 무엇보다 넓은 오픈 소스 생태계를 기반으로 해서, 많은 시스템을 모니터링할 수 있는  다양한 플러그인 을 가지고 있는 것이 가장 큰 장점이다. 특히 이런 간편함 때문에 특히나  쿠버네티스 의 메인 모니터링 시스템으로 많이 사용되면서 요즘 특히 더 주목을 받고 있다.

 

2. 장점

pull 방식의 구조를 채택함으로써, 모든 메트릭의 정보를 중앙 서버로 보내지 않아도 됨. 대부분의 모니터링 구조는 push인데, 각 타겟 서버에서 부하가 걸릴 경우 push 방식은 fail point가 될 가능성이 있음.

Kubernetes 환경에서 설치가 간단하고, grafana와 연동을 통한 운영이 쉽다.

다양한 metric exporter 제공하며 Linux, Window등의 OS metric 뿐 아니라 각종 Third-partyexporter를 제공됨.

장기간 데이터 유지와 확인. 데이터 저장소가 시계열 데이터 저장소로 구성 되어 있어, 많은 양의 정보를 빠르게 검색 가능.

 

단점

Region에 프로메테우스를 배치 한 뒤, 이를 MasterAggregate하는 방식이 프로메테우스가 공식적으로 권장하는 다중화 방식이며, 이것은 Clustering과는 거리가 멈.

싱글 호스트 아키텍처이기 때문에 저장용량이 부족하면 디스크 용량을 늘리는 것 밖에 방법이 없음.

프로메테우스 서버가 다운되거나, 설정 변경 등을 위해서 재시작을 할 경우 그간의 metric은 유실 됨.

일정 풀링 주기를 기반으로 metric을 가져오기 때문에 풀링하는 순간의 스냅샷 정보만알 수 있음. 스냅샷의 연속된 모음이기 때문에 근사값의 형태.

 

Prometheus의 작동 원리

 

 

 

3. 구축 방법

 

3.1. Promethous 설치

https://prometheus.io/download/

압축 풀기

cmd 실행

해당 경로로 이동

 

명령어 실행

prometheus.exe --config.file prometheus.yml --web.listen-address ":9090" --storage.tsdb.path "data"

 

 

 

4. 엑세스 허용

 

 

 

5. 실행된 서버(준비)

 

 

6. Prometheus 대시보드

http://localhost:9090 정상적으로 설치 완료시

 

 

 

7. Prometheus Target 확인

 

 

8. up으로 확인하는 법

 

9. Grafana 설치

 

https://prometheus.io/download/

 

Download | Prometheus

An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.

prometheus.io

 

 

10. GrafanaEnterprise Setup

Next & Install -> 앱 디바이스 허용 나오면 Yes -> Finish

 

 

11. C:\Program Files\GrafanaLabs\grafana\conf\defaults.ini 설정

enabled = true

 

수정 권한이 없다고 나올 시에 속성에서 추가

 

 

12. Grafana Web Page

http://localhost:3000/login 정상적으로 설치 완료시

 

 

13. Login

Email or username: admin, Password: admin

로그인 시 New password로 지정.

 

 

14. New password

 

15. Grafana 대시보드

 

16. WMI Exporter 설치

https://github.com/prometheus-community/windows_exporter/releases

node exporter랑 같은 역할 = node exporterlinux, macOS(darwin)

 

 

17. windows_expoter install

다른 UI 없이 위 사진 부분 지나면 끝남.

 

18. 성공적으로 설치 됐는지 확인

http://localhost:9182/metrics

서비스 > windows_exporter

 

 

19. Prometheus.yml WMI Exporter추가

WMI Exporter 정보 입력

 

 

20. Prometheus 재실행

 

 

21. Grafana Configuration

 

22. Add data source

Add data source - Prometheus 클릭

 

 

23. Data Sources / Prometheus 내용 입력

 

24. Save & Test

 

25. Dashboards / Import dashboard

 

26. import via grafana.com id 입력

grafana ID: 14510 입력

14510: Windows Exporter Node

▪ Load 버튼 클릭

 

27. Promethous 선택 및 Import

 

28. Promethous 선택 및 Import

 

 

29. Grafana 그래프

각종 CPU, Memory, 하드 디스크 등 실시간(시분초 월 년 단위 등)으로 모니터링 가능.