Cloud/Docker & Kubernetes

[모니터링] Prometheus & Grafana

마메프 2022. 8. 10. 13:43
반응형

1. Prometheus

GitHub : Prometheus

구조

  1. Prometheus Server
    • 시계열 데이터를 수집하고 저장
  2. Service Discovery
    • Monitoring 대상 리스트를 조회하는 것
    • 사용자는 쿠버네티스에 등록하고, Prometheus Server 는 쿠버네티스 API Server 에게 모니터링 대상을 물어본다
  3. Exporter
    • Prometheus 가 metrics 을 수집해갈 수 있도록 정해진 HTTP Endpoint 를 제공하여 정해진 형태로 metrics 를 Export
    • Prometheus Server 가 이 Exporter 의 Endpoint 로 HTTP GET Request 를 보내 metrics 를 Pull 하여 저장한다.
    • 하지만, 이런 pull 방식은 수집 주기와 네트워크 단절 등의 이유로 모든 Metrics 데이터를 수집하는 것을 보장할 수 없기 때문에 Push 방식을 위한 Pushgateway 제공
  4. Pushgateway
    • Prometheus Server 의 pull 주기(period) 보다 짧은 lifecycle 을 지닌 작업의 metrics 수집 보장을 위함
  5. AlertManager
    • PromQL 을 사용해 특정 조건문을 만들고, 해당 조건문이 만족되면 정해진 방식으로 정해진 메시지를 보낼 수 있음 ex) service A 가 5분간 응답이 없으면, 관리자에게 slack DM 과 e-mail 을 보낸다.
  6. Grafana
    • Prometheus 와 항상 함께 연동되는 시각화 툴
    • Prometheus 자체 UI 도 있고, API 제공을 하기에 직접 시각화 대시보드를 구성할 수도 있음
  7. PromQL   Querying basics | Prometheus
    • Prometheus 가 저장한 데이터 중 원하는 정보만 가져오기 위한 Query Language 이 제공된다

2. Grafana

GitHub - grafan

  • 2014 년 릴리즈된 프로젝트로 처음에는 InfluxDB, Prometheus 와 같은 TimeSeriesDB 전용 시각화 툴로 개발되었으나 이후 MySQL, PostgreSQL 과 같은 RDB 도 지원
  • playground 페이지도 제공하여 쉽고 간편하게 Grafana Dashboard 를 사용해볼 수 있음 > go to Playground


 

 

반응형