프로메테우스
-
알림 규칙24년 11월 이전/Metric 2021. 7. 10. 11:12
이 문서는 프로메테우스 공식 문서 "Alerting Rules"를 번역한 문서입니다. 원 문서를 보고 싶으시다면 여기를 클릭해주세요. Alerting rule은 PromQL을 기반으로 알람 조건을 정의하고, 외부 서비스에 FIRING된 알람들을 전달합니다. 알람 표현식이 지정된 시점부터 하나 이상의 벡터 요소를 생성하게 될 때마다 알람 라벨 세트가 ACTIVE 상태가 된 것으로 계산합니다. alert rule 정의하기 Alerting rule은 recording rule과 같은 방식으로 Prometheus에서 설정 됩니다. 다음은 알람을 생성하는 rule file의 예입니다. groups: - name: example rules: - alert: HighRequestLatency expr: job:req..
-
알림 규칙(Alerting Rule)이란 무엇인가24년 11월 이전/Metric 2021. 7. 9. 19:26
개요 Prometheus의 알람은 크게 2가지 부분으로 나눌 수 있다. 알람 규칙을 정의하는 Alerting Rule 생성된 알람을 3자에 전달해주는 Alertmanager 이 문서에서는 Prometheus에서 알람을 생성하는 부분인 Alerting Rule에 대해서 다룰 예정이다. 또한 현재 문서에서는 편의성을 위해 Docker 환경에서 진행하나, 실제 서버 환경에서도 크게 다르지 않으니 거의 동일하게 작업할 수 있다. 관련 코드는 다음 링크를 참고하길 바란다. 이번 장 코드 : https://github.com/gurumee92/gurumee-prometheus-code/tree/master/part4/ch03 Alerting Rule은 무엇인가? Prometheus 공식 문서에 따르면 Alertin..
-
기록 규칙(Recording Rule)이란 무엇인가24년 11월 이전/Metric 2021. 6. 27. 22:09
개요 이번 장에서는 PromQL의 쿼리 성능을 보다 높여줄 수 있는 Recording Rule에 대해 알아볼 것이다. 이 문서에서는 편의성을 위해서 Docker 환경에서 진행할 것이나, 실제 서버 환경에서 어떻게 작업해야 하는지까지 최대한 다루도록 하겠다. 관련 코드는 다음 링크를 참고하길 바란다. 이번 장 코드 : https://github.com/gurumee92/gurumee-prometheus-code/tree/master/part4/ch02 Recording Rule은 무엇인가? Prometheus 공식 문서에 따르면, Recording Rule의 정의는 다음과 같다. 기록 규칙은 일관된 이름 체계를 사용함으로써, 한 눈에 규칙을 쉽게 파악할 수 있다. 이것은 또한 부정확하거나 무의미한 계산을 ..
-
알람 파이프라인 구축하기24년 11월 이전/Metric 2021. 6. 26. 17:29
개요 이번 장에서는 Prometheus, Alertmanager, Slack을 연동해서, 알람 파이프라인을 구축할 것이다. 우리가 구축할 알람 파이프라인은 다음과 같다. 알람 파이프라인에 대해 간단히 설명하자면, 먼저 지난 장 "서비스 메트릭 모니터링하기 (1) prometheus-nginxlog-exporter"에서 진행했던 것을 토대로 Nginx, Prometheus, prometheus-nginxlog-exporter를 연동해서 상태 코드 및, 응답 실패율에 대한 정보를 얻는다. 그리고 다음 조건을 만족하면 Prometheus에서 알람을 발생(Firing)시킨다. 1분간 상태 코드 4xx 개수의 합이 10개 이상이다. 1분간 4xx 응답 실패율이 50% 이상이다. 그리고 이 발생된 알람을 Alert..
-
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 Label24년 11월 이전/Metric 2021. 4. 16. 22:01
개요 Label은 Prometheus의 아주 강력한 기능 중 하나이다. Label은 키-값 쌍으로 이루어져 있으며, Prometheus가 시계열 데이터를 식별하는데 "메트릭 이름"과 더불어서 사용한다. 예를 들어보자. 모니터링 세계에서 HTTP 요청에 대한 상태 코드는 주로 다음과 같이 수집한다. 2xx (응답 성공) 3xx (응답 성공 - 리다이렉션) 4xx (응답 실패 - 사용자 오류) 5xx (응답 실패 - 서버 오류) 어떻게 메트릭 이름을 지을 것인가? 아주 간단하게 다음과 같이 지을 수 있을 것이다. http_request_status_code_2xx http_request_status_code_3xx http_request_status_code_4xx http_request_status_cod..
-
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를 이용하여, 메트릭을 수집해 볼 것이다. 코드는 다음에서 확인할 수 있다..
-
프로세스 포트 모니터링하기 (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..