Prometheus는 오픈 소스 메트릭 기반 모니터링 시스템입니다. 메트릭 끝점에서 HTTP 요청을 보내 서비스 및 호스트에서 데이터를 수집합니다. 그런 다음 결과를 시계열 데이터베이스에 저장하고 분석 및 경고에 사용할 수 있도록 합니다.

왜 모니터링해야 합니까?

  • 문제가 발생하면, 가급적이면 문제가 발생하기 전에 알림을 활성화합니다. 누군가가 그것을 볼 수 있도록.
  • 문제의 분석, 디버깅 및 해결을 가능하게 하는 통찰력을 제공합니다.
  • 시간 경과에 따른 추세/변화를 볼 수 있습니다. 예를 들어 주어진 시간에 활성 세션 수입니다. 이는 설계 결정 및 용량 계획에 도움이 됩니다.

모니터링은 일반적으로 이벤트와 관련이 있습니다. 이벤트에는 HTTP 요청 수신, 응답 전송, 디스크 읽기, 사용자 로그인이 포함될 수 있습니다. 시스템 모니터링에는 프로파일링, 로깅, 추적, 메트릭, 경고 및 시각화가 포함될 수 있습니다.

블랙박스 대 화이트박스 모니터링

모니터링은 두 가지 주요 범주로 나뉩니다.

블랙박스 모니터링

블랙박스 모니터링에서 모니터링은 외부에서 관찰되므로 애플리케이션 또는 호스트 수준에서 이루어집니다. 이것은 상당히 제한적일 수 있습니다.

화이트박스 모니터링

화이트박스 모니터링은 서비스 내부를 모니터링하는 것을 의미합니다. 내부 구성 요소의 상태 및 성능에 대한 데이터를 노출합니다.

네 개의 황금 신호

구글에 따르면사용자 대면 시스템의 4가지 메트릭만 측정할 수 있는 경우 4가지 황금 신호라고 하는 다음 4가지에 집중하십시오.

#1. 지연 시간

요청을 처리하는 데 걸리는 시간(성공 또는 실패)입니다. 성공한 요청뿐만 아니라 실패한 요청도 추적하는 것이 중요합니다.

  Addappt는 Android에 도착합니다. 친구와 연락처 정보 동기화

#2. 교통

시스템에 얼마나 많은 수요가 있는지 측정합니다. 웹 서비스의 경우 일반적으로 초당 HTTP 요청입니다.

#삼. 오류

실패한 요청 비율입니다.

#4. 포화

당신의 서비스가 얼마나 충만한가. 대기 시간 증가는 종종 포화도의 중요한 지표입니다. 많은 시스템이 100% 사용률을 달성하기 훨씬 전에 성능이 저하됩니다.

Prometheus 메트릭 유형

Prometheus 메트릭은 네 가지 주요 유형입니다.

#1. 카운터

카운터의 값은 항상 증가합니다. 절대 감소할 수 없지만 0으로 재설정할 수 있습니다. 따라서 스크랩이 실패하면 데이터 포인트가 누락되었음을 의미할 뿐입니다. 누적 증가는 다음 읽기에서 사용할 수 있습니다. 예:

  • 수신된 총 HTTP 요청 수
  • 예외 수입니다.

#2. 계량기

게이지는 특정 시점의 스냅샷입니다. 증가하거나 감소할 수 있습니다. 데이터 가져오기에 실패하면 샘플이 손실됩니다. 다음 가져오기는 다른 값을 표시할 수 있습니다. 예: 디스크 공간, 메모리 사용량.

#삼. 히스토그램

히스토그램은 관찰을 샘플링하고 구성 가능한 버킷에서 계산합니다. 요청 기간 또는 응답 크기와 같은 항목에 사용됩니다. 예를 들어 특정 HTTP 요청에 대한 요청 기간을 측정할 수 있습니다. 히스토그램에는 1ms, 10ms 및 25ms와 같은 버킷 세트가 있습니다. Prometheus는 모든 요청에 ​​대한 모든 기간을 저장하는 대신 특정 버킷에 속하는 요청 빈도를 저장합니다.

#4. 요약

히스토그램 샘플 관찰과 유사하게 일반적으로 요청 기간 또는 응답 크기입니다. 총 관찰 수와 관찰된 모든 값의 합계를 제공하여 관찰된 값의 평균을 계산할 수 있습니다. 예를 들어, 1분에 2,3,4초가 걸리는 세 개의 요청이 있었습니다. 합계는 9이고 개수는 3입니다. 대기 시간은 3초입니다.

프로메테우스 생태계의 구성 요소

프로메테우스 서버

메트릭을 수집하고 저장하며 쿼리에 사용할 수 있도록 하고 수집된 메트릭을 기반으로 경고를 보냅니다.

스크래핑

프로메테우스 풀 기반 시스템입니다. 메트릭을 가져오기 위해 Prometheus는 스크랩이라는 HTTP 요청을 보냅니다. 구성에 따라 대상에 스크랩을 보냅니다.

각 대상(정적으로 정의되거나 동적으로 검색됨)은 일정한 간격(스크레이프 간격)으로 스크랩됩니다. 각 스크랩은 /metrics HTTP 엔드포인트를 읽어 클라이언트 메트릭의 현재 상태를 가져오고 Prometheus 시계열 데이터베이스의 값을 유지합니다.

  Linux의 4가지 최고의 SSD 친화적 파일 시스템

탐색할 수 있는 모니터링 솔루션을 위한 더 많은 시계열 데이터베이스가 있습니다.

클라이언트 라이브러리

서비스를 모니터링하려면 코드에 계측을 추가해야 합니다. 널리 사용되는 모든 언어 및 런타임에 사용할 수 있는 클라이언트 라이브러리가 있습니다. 이러한 라이브러리를 사용하여 몇 줄의 코드를 추가하면 코드에서 메트릭 내보내기를 시작할 수 있습니다. 이를 직접 계측이라고 합니다. 이러한 라이브러리를 사용하면 내부 메트릭을 정의하고 HTTP 끝점을 통해 이를 노출할 수도 있습니다. Prometheus가 메트릭 HTTP 엔드포인트를 스크랩하면 클라이언트 라이브러리가 메트릭을 서버로 보냅니다.

Prometheus는 Go, Java, Python 및 Ruby용 공식 클라이언트 라이브러리를 제공합니다. Prometheus에는 개방형 생태계가 있습니다. C, PHP, Node.js, C#/.NET 등에서 사용할 수 있는 커뮤니티 구축 클라이언트 라이브러리도 있습니다.

수출업체

많은 애플리케이션이 비Prometheus 형식으로 메트릭을 노출합니다. 이러한 애플리케이션과 소유하지 않거나 코드에 대한 액세스 권한이 없는 애플리케이션의 경우 계측을 직접 추가할 수 없습니다. 예를 들어 MySQL, Kafka, JMX, HAProxy 및 NGINX 서버입니다. 이러한 시나리오에서는 다음을 사용합니다. 수출업자.

내보내기는 메트릭을 원하는 애플리케이션과 함께 배포하는 도구입니다. 내보내기는 애플리케이션과 Prometheus 간의 프록시 역할을 합니다. Prometheus 서버로부터 요청을 받고 애플리케이션의 액세스 로그, 오류 로그에서 데이터를 수집하고 이를 올바른 형식으로 변환한 다음 최종적으로 Prometheus 서버로 반환합니다.

인기 있는 수출업체는 다음과 같습니다.

  • 윈도우 – Windows 서버 메트릭의 경우
  • 마디 – Linux 서버 메트릭의 경우
  • 블랙 박스 – DNS 및 웹사이트 성능 메트릭용
  • JMX – Java 기반 애플리케이션 메트릭용

애플리케이션이 구성되거나 내보내기가 준비되면 Prometheus에 애플리케이션이 어디에 있는지 알려줘야 합니다. 이는 정적 구성을 사용하여 수행할 수 있습니다. 동적 환경의 경우에는 이 작업을 수행할 수 없습니다. 따라서 서비스 검색이 사용됩니다.

알림

Prometheus를 사용한 경고는 두 부분으로 구성됩니다.

경고 규칙은 Alertmanager에 경고를 보냅니다.

그러면 Alertmanager가 해당 알림을 관리합니다. 이메일, Slack, Hipchat 및 PagerDuty와 같은 다양한 즉시 사용 가능한 통합을 사용하여 알림을 보냅니다. Alertmanager는 알림 수를 줄이기 위해 침묵 또는 집계를 수행할 수도 있습니다.

  Apple Music 대 Google Play 뮤직 대 Spotify: 최고의 스트리밍 음악 서비스

Prometheus 및 Dashboard를 사용하여 Linux 서버를 모니터링하는 방법을 안내합니다.

대시보드로 시각화

Prometheus에는 PromQL 쿼리가 시각화를 위한 원시 데이터를 생성할 수 있는 여러 API가 있습니다.

Prometheus에는 임시 쿼리에 사용할 수 있는 표현식 브라우저가 포함되어 있지만 사용 가능한 최고의 도구는 다음과 같습니다. 그라파나. Grafana는 Prometheus와 완전히 통합되며 다양한 대시보드를 생성할 수 있습니다.

Grafana의 데이터 소스로 Prometheus를 구성해야 합니다.

다음을 통해 대시보드를 추가할 수 있습니다.

  • 커뮤니티 구축 대시보드 가져오기
  • 나만의 건물
  • 사전 정의된 대시보드 사용.

사전 정의된 노드 내보내기 대시보드는 다음과 같습니다.

Grafana에는 전 세계적으로 사이트 및 DNS 성능 지표를 모니터링할 수 있는 worldPing 모듈이 있습니다.

요약

Prometheus에는 요구 사항이 거의 없습니다. 구성 파일이 있는 단일 바이너리이므로 실행이 매우 간단할 수 있습니다. 수천 개의 대상을 처리하고 초당 수백만 개의 샘플을 수집할 수 있습니다. Prometheus는 전체 시스템, 상태, 시스템 동작을 추적하도록 설계되었습니다.

Grafana는 메트릭 시각화에 사용할 수 있는 최고의 도구이며 다음과 완벽하게 통합됩니다. 프로메테우스.

x