Prometheus & Grafana 정의 및 구축 방법
# Prometheus
1. 정의
Prometheus는 오픈 소스 기반의 모니터링 시스템이다. ELK 와 같은 로깅이 아니라, 대상 시스템으로 부터 각종 모니터링 지표를 수집하여 저장 하고 검색 할 수 있는 시스템이다. 구조가 간단해서 운영이 쉽고, 강력한 쿼리 기능을 가지고 있으며, 그라파나(Grafana) 를 통한 시각화 를 지원한다. 무엇보다 넓은 오픈 소스 생태계를 기반으로 해서, 많은 시스템을 모니터링할 수 있는 다양한 플러그인 을 가지고 있는 것이 가장 큰 장점이다. 특히 이런 간편함 때문에 특히나 쿠버네티스 의 메인 모니터링 시스템으로 많이 사용되면서 요즘 특히 더 주목을 받고 있다.
2. 장점
▪ pull 방식의 구조를 채택함으로써, 모든 메트릭의 정보를 중앙 서버로 보내지 않아도 됨. 대부분의 모니터링 구조는 push인데, 각 타겟 서버에서 부하가 걸릴 경우 push 방식은 fail point가 될 가능성이 있음.
▪ Kubernetes 환경에서 설치가 간단하고, grafana와 연동을 통한 운영이 쉽다.
▪ 다양한 metric exporter 제공하며 Linux, Window등의 OS metric 뿐 아니라 각종 Third-party의 exporter를 제공됨.
▪ 장기간 데이터 유지와 확인. 데이터 저장소가 시계열 데이터 저장소로 구성 되어 있어, 많은 양의 정보를 빠르게 검색 가능.
단점
▪ 각 Region에 프로메테우스를 배치 한 뒤, 이를 Master에 Aggregate하는 방식이 프로메테우스가 공식적으로 권장하는 다중화 방식이며, 이것은 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 exporter은 linux, 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, 하드 디스크 등 실시간(시분초 월 년 단위 등)으로 모니터링 가능.