Prometheus란?
Prometheus는 오픈 소스 시스템 모니터링 및 경보(alerting) 툴로, 시계열(time-series) 데이터를 수집하고 저장하는 기능을 제공합니다. Cloud Native Computing Foundation (CNCF)의 프로젝트로 관리되며, 특히 Kubernetes 환경에서의 모니터링에 널리 사용됩니다.
특징
시계열 데이터(Time-Series Data) 수집
- Prometheus는 메트릭(metric)을 시계열 데이터 형식으로 저장합니다.
- 각 메트릭은 타임스탬프(timestamp)와 함께 저장되며, 이를 활용해 특정 시간의 성능 지표를 분석할 수 있습니다.
Pull 방식 데이터 수집
- Prometheus는 HTTP 기반의 Pull 방식으로 타겟(target)에서 직접 데이터를 가져옵니다.
- 일반적인 모니터링 시스템이 Push 방식(예: StatsD, Graphite)을 사용하는 것과 달리, Prometheus는 Scraping 방식(Pull)을 채택해 타겟에서 직접 메트릭을 가져오므로 모니터링 대상의 상태를 능동적으로 탐색할 수 있습니다.
아키텍처
- Prometheus Server
- 타겟에서 메트릭을 가져와 저장하는 핵심 서버입니다.
- 내장된 시계열 데이터베이스(TSDB)를 사용하여 데이터를 저장합니다.
- Exporter
- 애플리케이션 및 시스템에서 데이터를 Prometheus가 이해할 수 있는 형식으로 변환해주는 역할을 합니다.
- 예: node_exporter (서버 시스템 메트릭 수집), mysqld_exporter (MySQL 메트릭 수집)
- Push Gateway
- Prometheus는 기본적으로 Pull 방식이지만, 일부 단기 실행 작업(Batch Jobs)에서는 Push 방식이 필요할 수 있습니다.
- Push Gateway는 이를 지원하는 컴포넌트입니다.
도입이유
회사 자체가 서버나 네트워크 장비대상 모니터링을 진행하는 플랫폼을 개발하는 회사라 해당 장비에 대한
여러가지 정보를 SNMP를 통해 가져오는 것은 가능한데 이는 대부분 2,3,4 Layer를 대상으로 데이터를 수집하는 경우였습니다.
최근 Docker 기반 컨테이너환경 구축으로 서버 아키텍처를 마이그레이션 하면서 각 컨테이너를 관리하고,
모니터링 하는 기술들이 필요해졌습니다.
그래서 Node Exporter , Aleter Manager , Promethus , CAdvisor , MYSQL 에 대한 Exporter를
적용해서 7 Layer에서의 데이터를 수집하는 것을 목표로 도입 하였습니다.
그리고 Grafana를 사용하여 시각화 대쉬보드를 사용하는 것을 도입하였습니다.
'NetWork' 카테고리의 다른 글
유니캐스트 , 멀티캐스트 , 브로드캐스트 (0) | 2025.04.02 |
---|---|
Inline / out of Paths - 웹 보안에 대한 기술 방식 (0) | 2025.03.23 |
-2 Prometheus PromQL 과 사용법 (0) | 2025.03.11 |
리틀 엔디언 (Little Endian) vs 빅 엔디언 (Big Endian) (0) | 2025.02.07 |
nginx , Docker를 기반하여 포트포워딩 하는 법 (0) | 2025.01.09 |