본문 바로가기
ETC DB

prometheus 개요

by 타마마임팩트_쫀 2021. 7. 21.

1. 프로메테우스란?

Prometheus 는 원래 SoundCloud에 구축 된 오픈 소스 시스템 모니터링 및 경고 툴킷 입니다. 2012 년에 시작된 이래 많은 회사와 조직에서 Prometheus를 채택 했으며 이 프로젝트에는 매우 활동적인 개발자 및 사용자 커뮤니티가 있습니다. 지금은 독립형 오픈소스 프로젝트이며 많은 회사들이 사용 하고 있고, 또한 kubernetes에서도 Prometheus를 사용하여 매트릭 수집 및 대시보드를 구축하는 방식을 장려하고 있습니다.

 

2. features

Prometheus의 주요 기능은 다음과 같습니다.

  • 메트릭 이름 및 키 / 값 쌍으로 식별되는 시계열 데이터가있는 다차원 데이터 모델
  • 이러한 차원을 활용 하는 유연한 쿼리 언어인 PromQL
  • 분산 스토리지에 의존하지 않습니다.
  • 시계열 수집은 HTTP를 통한 pull 모델을 통해 발생합니다.
  • 푸시 시계열 은 중간 게이트웨이를 통해 지원됩니다.
  • 서비스 검색 또는 정적 구성을 통해 대상 검색
  • 다양한 그래프 및 대시 보드 모드 지원

 

3. 구성

Prometheus 에코 시스템은 여러 구성 요소로 구성되며 그 중 대부분은 선택 사항입니다.

  • 시계열 데이터를 수집하고 저장 하는 기본 Prometheus 서버
  • 애플리케이션 코드를 계측하기 위한 클라이언트 라이브러리
  • 짧은 주기의 작업을 지원하기위한 푸쉬 게이트웨이
  • HAProxy, StatsD, Graphite 등과 같은 서비스를위한 특수 목적 exporter
  • 핸들 경고하기 위한 alertmanager 
  • 다양한 지원 도구

대부분의 Prometheus 구성 요소는 Go 로 작성되어 정적 바이너리로 쉽게 빌드하고 배포 할 수 있습니다.

 

4. 아키텍처

간단하게 설명하자면 아래와 같습니다.
Jobs/exporters는 실제로 매트릭을 수집하는 프로세스라고 보면 됩니다.
이 exporter가 매트릭을 수집하고 HTTP 통신을 통해 매트릭 데이터를 가져갈 수 있게 /metrics 라는 HTTP 엔드포인트를 제공합니다.
그러면 Prometheus server가 이 exporter의 endpoint로 HTTP GET 요청을 날려 매트릭 정보를 수집(Pull)한고, 단기 작업은 중간 푸시 게이트웨이를 통해 메트릭을 스크랩합니다.
스크랩 된 모든 샘플을 로컬에 저장하고이 데이터에 대한 규칙을 실행하여 기존 데이터에서 새 시계열을 집계 및 기록하거나 경고를 생성합니다.
수집한 정보를 Prometheus가 제공하는 간단한 웹 뷰를 통해 조회할 수 있고 그 안에서 테이블 및 그래프 형태로 볼 수 있습니다.
하지만 시각화 도구가 부족해서 이를 직접 사용하지는 않고 대부분 Grafana라는 Data Visualization tool을 이용하여 시각화하고 있습니다.

 

5. 추천 환경

Prometheus는 장애 조건에서도 시스템에 대해 사용 가능한 통계를 항상 볼 수 있습니다.
Prometheus는 순수한 숫자 시계열을 기록하는 데 적합합니다. 이는 기계 중심 모니터링과 동적 인 서비스 지향 아키텍처의 모니터링에 모두 적합합니다. 마이크로 서비스의 세계에서 다차원 데이터 수집 및 쿼리에 대한 지원이 강점입니다.
Prometheus는 문제를 신속하게 진단 할 수 있도록 가동 중단시 시스템의 안정성을 위해 설계되었습니다. 각 Prometheus 서버는 네트워크 스토리지 또는 기타 원격 서비스에 의존하지 않고 독립형입니다. 인프라의 다른 부분이 손상 되었을 때 이를 사용하기 위해 광범위한 인프라를 설정할 필요가 없습니다.

 

6. 비 추천  환경

billing 같이 100 % 정확성이 필요한 경우 수집 된 데이터가 상세하고 완전하지 않을 가능성이 높으므로 Prometheus는 좋은 선택이 아닙니다. 이러한 경우 다른 시스템을 사용하여 billing 데이터를 수집하고 분석하고 이를 제외한 나머지 모니터링에는 Prometheus를 사용하는 것이 가장 좋습니다.

'ETC DB' 카테고리의 다른 글

prometheus disk storage  (0) 2021.07.21
prometheus 데이터 구조  (2) 2021.07.21
Amazon Aurora DB와 mysql 차이점  (0) 2021.07.21
Amazon Aurora 특징  (0) 2021.07.21
Amazon Aurora 스토리지  (0) 2021.07.21