Prometheus
-
Prometheus Query (1) PromQL 기본24년 11월 이전/Metric 2021. 4. 20. 22:24
개요 Prometheus에 저장된 데이터를 쿼리하는 방법은 크게 다음의 2가지가 있다. PromQL HTTP API 이 장에서는 일반적으로 쿼리하는데 사용되는 PromQL의 "기본"이라 할 수 있는 Scalar, Selector, Matcher, Instant Vector, Range Vector, Time Duration, offset 등에 대해 살펴본다. 이 장에서는 쉽고 빠르게 데이터를 수집하도록 node-exporter와 Prometheus를 연동할 것이다. node-exporter와 Prometheus 연동 및 모니터링 시 필요한 내용들에 대해서는 "2부 모니터링 편"에서 깊이 다룰 예정이다. 여기서는, 실행하는 방법만 살펴보도록 하자. 코드는 다음 URL에서 얻을 수 있다. 5장 코드 : ht..
-
prometheus.yml 환경 변수 이용해서 동적으로 설정하기24년 11월 이전/Metric 2021. 4. 17. 21:39
개요 최근 회사에서 모니터링 시스템을 구축 관련 IaC 작업을 하다가 생긴 일이다. 내가 직면했던 문제 상황은 다음과 같다. 현재 시스템 내에서 메트릭 수집은 Prometheus가 담당하고 있고 Consul 서비스 디스커버리 연동 기능을 통해서 시스템 내의 다른 서버 인스턴스들의 메트릭을 수집하고 있다. Terraform으로 AWS 리소스들을 자주 생성/삭제를 하게 된다. 따라서 EC2 인스턴스의 할당된 public IP도 고정되지 않고 자주 바뀐다. 따라서 Prometheus는 동적으로 변경되는 Consul의 Control Plane Node 서버의 IP를 참조하여 설정되어야 한다. 따라서 prometheus.yml이 동적으로 변경되는 IP를 참조할 수 있는 방법을 찾아보게 되었다. 해결 방법의 종류 ..
-
Prometheus Metric Type24년 11월 이전/Metric 2021. 4. 9. 22:42
개요 Prometheus에서 메트릭을 수집하는 방법은 대표적으로 크게 2가지가 있다. 참고! 메트릭이란? 메트릭이란 수집하는 시계열 데이터를 일컫는 말이라고 보시면 됩니다. Client Library를 통한 메트릭 수집 Exporter를 통한 메트릭 수집 위 2가지 방법 모두, Prometheus에서 지원하는 다음의 4가지 메트릭 타입으로 각 메트릭을 정의하여 저장한다. Counter Gauge Summary Histogram 보통 모니터링 상황에서는 Exporter를 이용해서, 각 메트릭을 수집하는 것이 일반적이지만, 이번 장에서는 Prometheus의 메트릭 타입을 살펴보기 위해서, Golang 기반의 Client Library를 이용하여, 메트릭을 수집해 볼 것이다. 코드는 다음에서 확인할 수 있다..
-
Cortex란 무엇인가24년 11월 이전/Metric 2021. 3. 23. 22:24
개요 이번 장에서는 Cortex가 무엇인지 공부한다. "갑자기 생뚱맞게 Prometheus 공부하다가 무슨 Cortex야?" 라는 의문이 생길 수도 있다. Prometheus는 뛰어난 성능과, 쉬운 접근성을 바탕으로 최근 나온 모니터링 기술 중 InfluxDB와 함께 업계 표준으로 자리 잡았다. 하지만 다음과 같은 문제점이 존재한다. Prometheus는 scale-out 구조를 고려하지 않고 설계되었다. Prometheus에서 긴 시간 범위를 지닌 데이터를 쿼리할 때 성능이 매우 저하되었다. Prometheus가 저장하는 데이터 특성 상 오랜 시간 저장하는 것이 쉽지 않다. 위 문제점들을 해결하기 위한 대표적인 솔루션이 바로 Cortex이다. 단점이라면 백엔드 구성을 S3, GCS 등으로 구성해야 하기..
-
프로세스 포트 모니터링하기 (1) blackbox-exporter24년 11월 이전/Metric 2021. 3. 19. 22:29
프로세스 포트 모니터링이란? 프로세스 포트 모니터링이란 명칭은 필자의 회사에서 사용하고 있는 모니터링 시스템의 기능 중 하나이다. 다른 곳도 동일하게 부르는지는 모르겠다. 간단하게 설명해서 특정 IP:PORT로 TCP 통신이 가능한 지 헬스 체크하는 것이다. 보통은 Zabbix, PRTG 등의 기술로 실행 중인 프로세스에 매핑된 포트를 모니터링을 한다. 우리는 이번 장에서 이를 Prometheus와 blackbox-exporter를 이용해서 구축한다. Blackbox Monitoring과 blackbox-exporter 먼저 용어 설명이 필요할것 같다. Blackbox Monitoring이란 무엇일까? 모니터링은 어떤 방법을 체택하는지에 따라 크게 다음과 같이 분류할 수 있다. Whitebox Monit..
-
웹 서버 모니링하기 (1) nginx-prometheus-exporter24년 11월 이전/Metric 2021. 3. 8. 20:35
개요 이 문서에서는 nginx-prometheus-exporter를 이용해서 Nginx의 커넥션 정보에 대한 메트릭을 수집한다. 그 후 Grafana, Prometheus를 이용해서 Nginx 웹 서버를 모니터링할 수 있는 대시보드를 구축하는 것에 대하여 다룬다. 자세한 내용은 다음과 같다. Nginx와 설치 nginx-prometheus-exporter와 설치 메트릭 수집을 위한 각 컴포넌트 설정 NGINX 서버 모니터링을 위한 Grafana 대시보드 구축 이 문서에서 진행되는 실습 코드는 편의성을 위해 로컬 Docker 환경에서 진행되나, 실세 서버 환경에서도 거의 동일하게 적용할 수 있도록 작성되었다. 이번 장의 코드는 다음 링크에서 확인할 수 있다. 이번 장 코드 : https://github.c..
-
서비스 메트릭 모니터링하기 (1) prometheus-nginxlog-exporter24년 11월 이전/Metric 2021. 3. 4. 22:07
개요 이 문서에서는 prometheus-nginxlog-exporter를 이용해서 Nginx의 액세스 로그를 분석하여 RPS, 상태 코드 개수 등의 서비스 메트릭을 수집한다. 그 후 Grafana, Prometheus를 이용해서 서비스 메트릭을 모니터링할 수 있는 대시보드를 구축하는 것에 대하여 다룬다. 자세한 내용은 다음과 같다. Nginx와 설치 prometheus-nginxlog-exporter와 설치 메트릭 수집을 위한 각 컴포넌트 설정 서비스 메트릭 모니터링을 위한 Grafana 대시보드 구축 이 문서에서 진행되는 실습 코드는 편의성을 위해 로컬 Docker 환경에서 진행되나, 실세 서버 환경에서도 거의 동일하게 적용할 수 있도록 작성되었다. 이번 장의 코드는 다음 링크에서 확인할 수 있다. 이..
-
시스템 메트릭 모니터링하기 (2) collectd-exporter24년 11월 이전/Metric 2021. 3. 2. 21:54
개요 이 문서에서는 Grafana, Prometheus, CollectD, collectd-exporter를 이용해서 시스템 메트릭을 모니터링할 수 있는 대시보드를 구축하는 것에 대하여 다룬다. 자세한 내용은 다음과 같다. CollectD와 설치 collectd-exporter와 설치 메트릭 수집을 위한 각 컴포넌트 설정 시스템 메트릭 모니터링을 위한 Grafana 대시보드 구축 이 문서에서 진행되는 실습 코드는 편의성을 위해 로컬 Docker 환경에서 진행되나, 실세 서버 환경에서도 거의 동일하게 적용할 수 있도록 작성되었다. 이번 장의 코드는 다음 링크에서 확인할 수 있다. 이번 장 코드 : https://github.com/gurumee92/gurumee-book-prometheus/tree/mas..