Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Contrail Networking Analytics

개요: 분석

분석은 주니퍼 클라우드 네이티브 Contrail® Networking™ 릴리스 22.1에 설정된 옵션 기능입니다. Contrail Networking의 핵심 CNI 구성 요소와 별도로 패키지화되어 있으며 자체 설치 절차를 가지고 있습니다. 이 패키지는 오픈 소스 소프트웨어와 주니퍼가 개발한 소프트웨어로 구성되어 있습니다.

분석 기능은 다음과 같은 상위 수준의 기능 영역으로 분류됩니다.

  • 지표—Contrail Networking 구성 요소 및 기본 Kubernetes 시스템에서 수집된 통계적 타임 시리즈 데이터입니다.
  • 플로우 및 세션 레코드—Contrail Networking vRouter에서 수집된 네트워크 트래픽 정보입니다.
  • Sandesh UVE(User Visible Entities)—Contrail Networking vRouter 및 컨트롤 노드 구성 요소에서 수집된 외부 가시 객체의 시스템 전체 상태를 나타내는 레코드입니다.
  • 로그—Kubernetes pod에서 수집된 로그 메시지.
  • Introspect—Contrail Networking 구성 요소의 내부 상태를 탐색할 수 있는 기능을 제공하는 진단 유틸리티입니다.

메트릭

데이터 모델

지표 정보는 숫자 타임 시리즈 데이터 모델을 기반으로합니다. 시리즈의 각 데이터 포인트는 주기적인 간격으로 수집되는 일부 시스템 상태의 샘플입니다. 샘플 값은 컬렉션이 발생한 타임스탬프와 함께 기록됩니다. 샘플 레코드는 Label이라는 키 값 페어(옵션)를 포함할 수도 있습니다. 레이블은 동일한 메트릭 이름에 대한 레이블의 주어진 조합이 해당 메트릭의 특정 차원 인스턴스를 식별하는 지표를 위한 차원 기능을 제공합니다. 예를 들어, 명명된 api_http_requests_total 메트릭은 URL 및 방법 유형 수준에서 요청 카운트에 대한 가시성을 제공하기 위해 레이블을 사용할 수 있습니다. 다음 예에서는 10의 샘플 값에 대한 메트릭 레코드에는 요청 유형을 나타내는 레이블 집합이 포함됩니다.

api_http_requests_total{method="POST", handler="/messages"} 10

지표 데이터 유형

모든 지표 샘플 값은 숫자임에도 불구하고 이 숫자 데이터 모델 내에 유형 개념이 있습니다. 지표는 다음과 같은 유형 중 하나로 간주됩니다.

  • 카운터—재시작시 0으로만 가치를 늘리거나 재설정할 수 있는 단일 단일 단조로 증가 카운터를 나타내는 누적 메트릭.
  • 게이지—임의로 오르내려갈 수 있는 단일 숫자 값을 나타내는 측정 지표입니다.
  • 히스토그램—히스토그램 샘플 관찰(일반적으로 요청 기간 또는 응답 크기와 같은 것)을 구성 가능한 버킷으로 계산합니다. 히스토그램은 관찰된 모든 값의 합계도 제공합니다.
  • 요약—히스토그램과 유사하게 요약 샘플 관찰(일반적으로 요청 기간 및 응답 크기 등). 관찰된 전체 횟수와 관찰된 모든 값의 합계를 제공하지만, 요약에서는 슬라이딩 시간 동안 구성 가능한 정량화(quantiles)를 계산합니다.

Contrail Networking의 메트릭 기능은 Prometheus에 의해 구현됩니다. 메트릭 데이터 모델에 대한 자세한 내용은 Prometheus의 설명서를 참조하십시오.

지원되는 지표

분석 솔루션에서 지원하는 지표 세트는 아래와 같이 범주화되어 있습니다.

경고

경고는 수집된 메트릭 데이터 분석을 기반으로 생성됩니다. 지원되는 모든 경고 유형은 다음 정보가 포함된 규칙 정의를 기반으로 합니다.

  • 경고 이름—경고 유형에 대한 고유한 문자열 식별자입니다.
  • 조건 표현식—프로메테우스 쿼리 언어 표현식으로, 수집된 메트릭 값에 대해 평가되어 경고 조건이 있는지 확인합니다.
  • 조건 지속 시간—경고가 생성되기 위해 문제가 있는 상태가 존재해야 하는 시간.
  • 심각도—경고 수준(중요, 주요, 경고, 정보).
  • 요약—문제가 있는 상태에 대한 간략한 설명
  • 설명—문제가 있는 상태에 대한 자세한 설명

Contrail Networking 분석 솔루션은 미리 정의된 경고 규칙을 설치합니다. 사용자 지정 경고 규칙을 정의할 수도 있습니다. 이는 분석 헬름 차트가 구축된 네임스페이스에 PrometheusRule Kubernetes 리소스를 생성함으로써 지원됩니다. 사용자 지정 경고 규칙의 예는 아래에 나와 있습니다.

생성된 경고는 프로메테우스의 레코드로 저장되며 Grafana UI에서 볼 수 있습니다. AlertManager 컴포넌트에서도 경고 알림을 위한 PagerDuty, OpsGenie, 이메일 등의 외부 시스템과의 통합이 지원됩니다.

아키텍처

그림 1에서와 같이 프로메테우스는 메트릭 아키텍처의 핵심 구성 요소입니다. 프로메테우스는 다음과 같은 기능을 구현합니다.

  • 수집—다른 컴포넌트(내보내기)에 대해 API 호출을 호출하여 지표 집합에 대한 값을 끌어오는 주기적인 폴링 메커니즘입니다.
  • 스토리지—익스퓨터로부터 수집된 메트릭에 대한 지속성을 제공하는 타임 시리즈 데이터베이스입니다.
  • 쿼리—과거 메트릭 정보를 데이터베이스에서 검색할 수 있도록 하는 PromQL(Prometheus 쿼리 언어)이라는 표현식 언어를 지원하는 API입니다.
  • 알림—수집된 메트릭 데이터에서 특정 조건이 관찰될 때 경고를 생성하는 규칙을 정의하는 기능을 제공하는 프레임워크입니다.
그림 1: 지표 아키텍처 Metrics Architecture

메트릭 아키텍처의 다른 구성 요소는 다음과 같습니다.

  • Grafana—사용자가 그래프에서 메트릭 데이터를 시각화할 수 있도록 웹 UI 인터페이스를 제공하는 서비스입니다.
  • AlertManager—Prometheus에서 생성한 경고의 외부 시스템을 알려주는 통합 서비스입니다.

구성

메트릭 기능은 최종 사용자의 구성을 요구하지 않습니다. 분석 설치는 위의 지원되는 지표 섹션에 설명된 모든 지표를 제공하는 익스피리더 집합에서 수집하도록 Prometheus 구성을 처리합니다. 기본 경고 규칙 그룹도 설치의 일부로 자동으로 설정됩니다. 그러나 이러한 기본 기능은 설치 후 추가 구성을 통해 최종 사용자에 의해 확장될 수 있습니다. 예를 들어 고객별 경고 규칙을 정의할 수 있으며, AlertManager는 사용자 환경에 있는 지원되는 외부 시스템과 통합하도록 구성할 수 있습니다.

Prometheus 및 AlertManager의 구성에는 프로메테우스 운영자라는 추가 아키텍처 구성 요소가 포함됩니다. 그림 2와 같이 구성은 Kubernetes 사용자 지정 리소스로 지정됩니다. 운영자는 이러한 리소스의 내용을 Prometheus 구성 요소가 이해하는 기본 구성으로 변환하고 그에 따라 구성 요소를 업데이트한 다음 특정 구성 변경에 재시작이 필요할 때마다 컴포넌트를 다시 시작하는 작업을 처리합니다.

그림 2: 프로메테우스 운영자 Prometheus Operator

운영자가 지원하는 전체 리소스 세트에 대한 설명서는 Prometheus Operator API에서 확인할 수 있습니다. 그러나 고객은 경고 규칙 정의 및 외부 시스템 통합과 관련된 리소스 유형의 하위 집합으로 구성을 제한하는 것이 좋습니다.

그라파나(Grafana)

지표 데이터 및 알림을 확인하는 주요 UI는 Grafana입니다. Grafana 서비스는 분석 설치의 일환으로 프로메테우스를 데이터 소스로 설정하여 자동으로 구성합니다. 기본 대시보드 세트도 생성됩니다.

에서 Grafana 웹 UI에 https://<k8sClusterIP>/grafana/login액세스하십시오. 기본 로그인 자격 증명은 사용자 admin 및 암호 prom-operator입니다.