본문 바로가기

Infrastructure/Prometheus

(5)
Prometheus Pushgateway with Node.Js 이번엔 Prometheus 의 Pushgateway 에 대해 살펴보도록 하겠습니다. - Pushgateway 다시한번 간략히 설명하자면, Pull 방식으로 Prometheus 가 메트릭을 수집할 수 없을 때 (ex. batch-job) 사용 가능한 대안입니다. Prometheus 공식 설명에서도 Pushgateway 는 서비스 수준 배치 작업의 결과를 캡쳐하는 정도로 사용하는게 유일하면서 유용한 사례라고 얘기하고 있습니다. (참고 링크) 일반적인 케이스에서 Pull 방식이 아닌 Pushgateway 를 사용할 경우 아래와 같이 발생할 수 있는 몇가지 위험이 있습니다. • 단일 Pushgateway 를 사용해 여러 instance 를 모니터링 할 경우 Pushgateway 는 잠재적인 병목의 위험을 갖게 ..
Node.js Cluster mode 모니터링 이번엔 지난 시간에 이어 싱글 프로세스가 아닌, cluster 로 여러 프로세스를 띄운 상태에서의 메트릭 수집 및 모니터링을 해보도록 하겠습니다. - Prometheus Client Libraries 이전의 포스트에서 prom-client 라는 Node.js 에서 사용 가능한 Prometheus 클라이언트 라이브러리를 소개해드렸습니다. 이번에도 마찬가지로 해당 라이브러리를 사용할 것입니다. (prom-client 는 cluster 환경에서의 메트릭 수집을 지원하는 객체 및 함수가 있습니다) - 샘플 프로젝트 프로젝트 설정이나 지표를 수집하는 부분은 이전 내용과 어느정도 동일하지만 처음부터 만든다고 가정하고 시작해보겠습니다. • 먼저 Node.js 프로젝트를 하나 생성합니다. > mkdir prom-cli..
Node.js 어플리케이션 모니터링 이번엔 Node.js 어플리케이션 (서버) 에서 직접 메트릭을 수집하고, 이를 Prometheus 로 모니터링해보도록 하겠습니다. - Prometheus Client Libraries 직접 운영하는 서비스에서 별도의 메트릭을 추가해 모니터링하기 위해선, Prometheus 의 클라이언트 라이브러리를 설치하고 코드 레벨에 적절한 추가가 필요합니다. 이러한 라이브러리들은 Prometheus 의 4가지 메트릭타입을 구현하고 있습니다. (관련 링크) Node.js 에서 사용할 수 있는 클라이언트 라이브러리는 prom-client 입니다. 이 라이브러리가 공식 라이브러리는 아닌데, 저도 실무에서 사용하고 있지만 완전하지 않다고 느끼긴 합니다. (pm2 와의 연동, pushgateway 기능 부족 등.. 제 개인적..
Prometheus Node Exporter 모니터링 이번엔 Prometheus 와 Node Exporter 를 설치해서 제공하는 메트릭 지표를 확인하고, 시각화 도구인 Grafana 까지 연동해보도록 하겠습니다. 해당 테스트를 위해 aws ec2 instance 를 사용했습니다. - Docker 설치 Prometheus 는 binary 로 설치해도 되지만 전 docker 로 실행하기 위해 먼저 ec2 에 docker 를 설치하도록 하겠습니다. > sudo yum -y install docker 터미널에서 위와 같은 command 를 실행하면 아래처럼 설치가 될 것입니다. docker 버전을 확인해 제대로 설치되었는지 보도록 합니다. > docker -v Docker version 20.10.4, build d3cb89e 20.10.4 버전의 docker ..
Prometheus 란? 팀에서 관리중인 여러 프로젝트의 모니터링을 위해 도입한 Prometheus 에 대해 정리해보도록 하겠습니다. - Prometheus Prometheus 는 메트릭 기반의 오픈소스 모니터링 시스템입니다. (공식 페이지) 제가 다른 모니터링 시스템을 사용해보진 않아 직접적인 비교는 어렵지만, 사용이 어렵지 않습니다. 또한 많은 관심을 받고 있는 Kubernetes 의 서비스 모니터링에도 사용되고 있습니다. 공식 페이지에서 소개하고 있는 Prometheus 의 특징들 입니다. 간략하게 정리해보겠습니다. 고차원 데이터 모델을 구현, 시계열은 메트릭 이름과 key-value 쌍으로 식별됨 PromQL 을 통한 강력한 쿼리들 뛰어난 데이터 시각화 (with Grafana) custom format 을 통해 효율적인..