2.5. OpenShift에서 Fuse 애플리케이션을 모니터링하도록 Prometheus 구성


2.5.1. Prometheus 정보

Prometheus 는 Red Hat OpenShift 환경에 배포된 서비스를 모니터링하는 데 사용할 수 있는 오픈 소스 시스템 및 서비스 모니터링 및 경고 툴킷입니다. Prometheus는 지정된 간격으로 구성된 서비스에서 지표를 수집 및 저장하고, 규칙 표현식을 평가하고, 결과를 표시하며, 지정된 조건이 true인 경우 경고를 트리거할 수 있습니다.

중요

Prometheus에 대한 Red Hat 지원은 Red Hat 제품 설명서에 제공된 설정 및 구성 권장 사항으로 제한됩니다.

OpenShift 서비스를 모니터링하려면 Prometheus 형식에 끝점을 노출하도록 각 서비스를 구성해야 합니다. 이 끝점은 메트릭 목록과 메트릭의 현재 값을 제공하는 HTTP 인터페이스입니다. Prometheus는 각 대상 정의 끝점을 주기적으로 스크랩하고 수집된 데이터를 데이터베이스에 씁니다. Prometheus는 현재 실행 중인 세션에 대해서만 데이터를 수집하는 것이 아니라 장기간에 걸쳐 데이터를 수집합니다. Prometheus는 데이터에 대한 쿼리를 그래픽으로 시각화하고 실행할 수 있도록 데이터를 저장합니다.

2.5.1.1. Prometheus 쿼리

Prometheus 웹 인터페이스에서 PromQL(Prometheus Query Language) 에서 쿼리를 작성하여 수집된 데이터를 선택하고 집계할 수 있습니다.

예를 들어 다음 쿼리를 사용하여 지표 이름으로 http_requests_total 이 있는 모든 시계열 데이터에 대해 Prometheus가 지난 5분 내에 기록한 모든 값을 선택할 수 있습니다.

http_requests_total[5m]

쿼리 결과를 추가로 정의하거나 필터링하려면 메트릭에 레이블( key:value 쌍)을 지정합니다. 예를 들어 다음 쿼리를 사용하여 메트릭 이름 http_requests_totalintegration 으로 설정된 작업 레이블이 있는 모든 시계열 데이터에 대해 Prometheus가 지난 5분 내에 기록한 모든 값을 선택할 수 있습니다.

http_requests_total{job="integration"}[5m]

2.5.1.2. Prometheus 데이터를 표시하는 옵션

Prometheus가 쿼리 결과를 처리하는 방법을 지정할 수 있습니다.

  • Prometheus 데이터를 Prometheus의 표현식 브라우저에서 표 형식으로 표시합니다.
  • Prometheus HTTP API 를 통해 외부 시스템에서 Prometheus 데이터를 사용합니다.
  • 그래프에 Prometheus 데이터를 표시합니다.

    Prometheus는 수집하는 데이터의 기본 그래픽 보기를 제공합니다. Prometheus 데이터를 볼 수 있는 보다 강력한 그래픽 대시보드를 선호하는 경우 Grafana를 사용하는 것이 좋습니다.

    참고

    Grafana는 커뮤니티에서 지원하는 기능입니다. Red Hat 제품을 모니터링하기 위해 Grafana를 배포하는 것은 Red Hat 프로덕션 SLA(서비스 수준 계약)에서 지원되지 않습니다.

PromQL 언어를 사용하여 Prometheus의 Alertmanager 툴에서 경고를 구성할 수도 있습니다.

2.5.2. 4.14용 Prometheus 설정

Prometheus를 설정하려면 클러스터에 Prometheus Operator 사용자 정의 리소스 정의를 설치한 다음 Fuse 애플리케이션이 포함된 OpenShift 프로젝트에 Prometheus를 추가합니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 액세스 권한이 있어야 합니다.
  • OpenShift의 Fuse에 설명된 대로 OpenShift 이미지 및 템플릿에 Fuse를 설치하여 OpenShift 클러스터를 준비했습니다.
  • 클러스터에서 OpenShift 프로젝트를 생성하고 Fuse 애플리케이션을 추가했습니다.

프로세스

  1. 관리자 권한으로 OpenShift에 로그인합니다.

    oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
  2. cluster-monitoring-config.yml:이라는 파일을 생성합니다.

    apiVersion: v1
    kind: ConfigMap
    metadata:
     name: cluster-monitoring-config
     namespace: openshift-monitoring
    data:
     config.yaml: |
       enableUserWorkload: true
  3. "openshift-monitoring" 네임스페이스에 클러스터 모니터링 구성을 적용합니다.

    oc create -f cluster-monitoring-config.yml -n openshift-monitoring

서비스 모니터에 는 OpenShift Container Platform에서 지정된 서비스 및 프로젝트(네임스페이스)에 대한 지표를 수집하는 Prometheus에 대한 지침이 포함되어 있습니다.

  1. 서비스 모니터를 설치하려면 다음을 수행합니다.

    oc process -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-7_13_0-00014-redhat-00001/monitoring/fuse-servicemonitor.yml -p NAMESPACE=<YOUR NAMESPACE> -p FUSE_SERVICE_NAME=<YOUR FUSE SERVICE> | oc apply -f -

    예를 들어 myfuseapp 이라는 Fuse 애플리케이션을 포함하는 myproject 라는 OpenShift 프로젝트(namespace)를 사용합니다.

    oc process -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-7_13_0-00014-redhat-00001/monitoring/fuse-servicemonitor.yml -p NAMESPACE=myproject -p FUSE_SERVICE_NAME=myfuseapp | oc apply -f -

  2. Prometheus 대시보드를 열려면 다음을 수행합니다.

    1. OpenShift 콘솔에 로그인합니다.
    2. Prometheus를 추가한 프로젝트를 엽니다.
    3. 왼쪽 창에서 관리자 보기를 선택하고 모니터링 -> 메트릭을 엽니다.
    4. Prometheus Hostname URL을 클릭하여 Prometheus 대시보드를 엽니다.

Prometheus에 대한 자세한 내용은 Prometheus 설명서 를 참조하십시오.

2.5.3. OpenShift 환경 변수

애플리케이션의 Prometheus 인스턴스를 구성하려면 표 2.2. “Prometheus 환경 변수” 에 나열된 OpenShift 환경 변수를 설정할 수 있습니다.

표 2.2. Prometheus 환경 변수
환경 변수설명기본

AB_PROMETHEUS_HOST

바인딩할 호스트 주소입니다.

0.0.0.0

AB_PROMETHEUS_OFF

설정된 경우 Prometheus 활성화를 비활성화합니다(빈 값 선택).

Prometheus가 활성화되어 있습니다.

AB_PROMETHEUS_PORT

사용할 포트입니다.

9779

AB_JMX_EXPORTER_CONFIG

파일(경로 포함)을 Prometheus 구성 파일로 사용합니다.

Camel 메트릭이 포함된 /opt/prometheus/prometheus-config.yml 파일입니다.

AB_JMX_EXPORTER_OPTS

Cryostat 내보내기 구성에 추가할 추가 옵션입니다.

해당 없음

추가 리소스

Pod의 환경 변수 설정에 대한 자세한 내용은 OpenShift 개발자 가이드 (https://access.redhat.com/documentation/en-us/openshift_container_platform/3.11/html/developer_guide/)를 참조하십시오.

2.5.4. Prometheus가 모니터링하고 수집하는 메트릭 제어

기본적으로 Prometheus는 Camel에서 노출하는 모든 가능한 메트릭을 포함하는 구성 파일( https://raw.githubusercontent.com/jboss-fuse/application-templates/master/prometheus/prometheus-config.yml)을 사용합니다.

Prometheus가 모니터링 및 수집하려는 애플리케이션 내에 사용자 지정 메트릭이 있는 경우(예: 애플리케이션 프로세스에서 처리하는 주문 수) 고유한 구성 파일을 사용할 수 있습니다. 식별할 수 있는 지표는 Cryostat에서 제공되는 지표로 제한됩니다.

프로세스

사용자 지정 구성 파일을 사용하여 기본 Prometheus 구성에서 다루지 않는 빈을 노출하려면 다음 단계를 따르십시오.

  1. 사용자 정의 Prometheus 구성 파일을 생성합니다. 기본 파일(prometheus-config.yml https://raw.githubusercontent.com/jboss-fuse/application-templates/master/prometheus/prometheus-config.yml)의 콘텐츠를 형식 가이드로 사용할 수 있습니다.

    사용자 지정 구성 파일에 임의의 이름을 사용할 수 있습니다(예: my-prometheus-config.yml ).

  2. prometheus 구성 파일(예: my-prometheus-config.yml)을 애플리케이션의 src/main/jkube-includes 디렉터리에 추가합니다.
  3. 애플리케이션에 src/main/jkube/deployment.xml 파일을 생성하고 해당 값이 구성 파일로 설정된 AB_JMX_EXPORTER_CONFIG 환경 변수에 대한 항목을 추가합니다. 예를 들면 다음과 같습니다.

    spec:
      template:
        spec:
          containers:
            -
              resources:
                requests:
                  cpu: "0.2"
                limits:
                  cpu: "1.0"
              env:
              - name: SPRING_APPLICATION_JSON
                value: '{"server":{"tomcat":{"max-threads":1}}}'
              - name: AB_JMX_EXPORTER_CONFIG
                value: "my-prometheus-config.yml"

    이 환경 변수는 Pod 수준에서 애플리케이션에 적용됩니다.

  4. 애플리케이션을 다시 빌드하고 배포합니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.