Index
0) 요구사항
- 우리팀 서버에 문제가 생겼을 때 알 수 있어야 한다.
- 현 시스템이 DB 로그에 보는 것에 익숙하지 않다.
- Kubernates에 접근하기 어려우며, 서버 배포 환경을 이해하기 어려운 구조이다.
- API Application 필터링 해서 로그를 봐야 한다.
- Kubernates는 로그를 보는데 가독성이 떨어진다. → 시각화의 필요성
- Kubernates 인스턴스 모니터링 + 각각의 pod 요소들의 전반적인 메트릭은 Prometheus가 보기 편하다.
- 서버 모니터링과 서비스 모니터링의 차이점
- 서버 모니터링 : 여러대의 서버 중 1대라도 죽는 경우를 모니터링
- 서비스 모니터링 : 사용자 입장에서 서비스가 안되는 경우가 모니터링
*** 경고 시스템의 구성 요건**
- 우리 팀이 빠르게 이해할 수 있는 메시지
- 심각도 구분
- 경고 주기 설정
- 효과적인 채널 선택 (Ex. email)
- 정확한 담당자에게 전달
- 모니터링 시스템 구축 목적
- 빠른 장애 탐지
- 다운타임 최소화
- 의사결정 도움
- 자동화
적용 사례
1) Prometheus → Alert Manager → Slack 개념
Prometheus : 서버에 접근해서 정보를 pull 해오는 데이터 수집기 서버
- Prometheus 서버가 노드나 프로그램 등에 데이터를 요청하면, 노드나 프로그램 등은 데이터를 보내주면 된다.
postgres_exporter 깃허브 https://github.com/prometheus-community/postgres_exporter
- 정보 수집을 하는 exporter들을 통해서 일정 간격으로 정보를 수집하라는 명령
- 수집한 정보들을 바탕으로 자신의 DB(ex. postgres)에 저장하고
- Grafana가 그 정보를 보고자 하면 제공하는 것이 Prometheus의 역할이다.
prometheus의 단점 사례
- Prometheus의 컨테이너가 많은 양의 메모리를 사용할 수 있는 가능성
사례1) Prometheus와 연동한 Grafana 대시보드를 보니 Prometheus가 시작된 지 불과 5분 만에 시계열 수가 2,162,256 까지 급격하게 증가했던 사례
최종 목표
Kubernates의 Cluster들의 메트릭을 Prometheus로 수집 → Grafana 등의 web UI를 통해 시각화
2) 설치 방법
2-0) Slack
slack k8s-alert-test 개인 채널 생성 → Incoming WebHooks 추가
2-1) prometheus 설치
brew install prometheus
2-2) Alert Manager 설치 by Docker https://github.com/prometheus/alertmanager
$ docker run --name alertmanager -d -p 127.0.0.1:9093:9093 [quay.io/prometheus/alertmanager](<http://quay.io/prometheus/alertmanager>)
'Backend' 카테고리의 다른 글
블록체인 이벤트 수신 시 로컬에서 이벤트 수신 vs kubernates의 pods로 이벤트 수신 차이점 (0) | 2023.07.18 |
---|---|
Request와 Response (0) | 2023.07.15 |
백엔드 > 프론트엔드 데이터 전달과정(API,블록체인) (0) | 2023.03.14 |
'어디서' 데이터를 가져오느냐 / '어떤' 데이터를 가져오느냐 -> API와 Contract 그 경계 (0) | 2023.03.09 |