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 웹 인터페이스에서 Prometheus 쿼리 언어(PromQL) 에서 쿼리를 작성하여 수집된 데이터를 선택하고 집계할 수 있습니다.
예를 들어 다음 쿼리를 사용하여 메트릭 이름으로 http_requests_total
이 있는 모든 시계열 데이터에 대해 Prometheus가 지난 5분 내에 기록된 모든 값을 선택할 수 있습니다.
http_requests_total[5m]
http_requests_total[5m]
쿼리 결과를 추가로 정의하거나 필터링하려면 메트릭에 대한 레이블( 키:값
쌍)을 지정합니다. 예를 들어 다음 쿼리를 사용하여 지표 이름 http_requests_total
과 통합
으로 설정된 모든 시계열 데이터에 대해 Prometheus가 지난 5분 내에 기록된 모든 값을 선택할 수 있습니다.
http_requests_total{job="integration"}[5m]
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.13용 Prometheus 설정 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus를 설정하려면 클러스터에 Prometheus Operator 사용자 정의 리소스 정의를 설치한 다음 Fuse 애플리케이션이 포함된 OpenShift 프로젝트에 Prometheus를 추가합니다.
사전 요구 사항
-
OpenShift 클러스터에 대한
클러스터 관리자
액세스 권한이 있어야 합니다. - OpenShift의 Fuse에 설명된 대로 OpenShift 이미지 및 템플릿에 Fuse를 설치하여 OpenShift 클러스터를 준비했습니다.
- 클러스터에 OpenShift 프로젝트를 생성하고 여기에 Fuse 애플리케이션을 추가했습니다.
절차
관리자 권한으로 OpenShift에 로그인합니다.
oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
oc login --user system:admin --token=my-token --server=https://my-cluster.example.com:6443
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster-monitoring-config.yml
:이라는 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow "openshift-monitoring" 네임스페이스에 클러스터 모니터링 구성을 적용합니다.
oc create -f cluster-monitoring-config.yml -n openshift-monitoring
oc create -f cluster-monitoring-config.yml -n openshift-monitoring
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
서비스 모니터에 는 OpenShift Container Platform에서 지정된 서비스 및 프로젝트(네임스페이스)에 대한 지표를 수집하는 Prometheus에 대한 지침이 포함되어 있습니다.
- 서비스 모니터를 설치하려면 다음을 수행합니다.
oc process -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-sb2-7_11_1-00016-redhat-00002/monitors/fuse-servicemonitor.yml -p NAMESPACE=<your-fuse-namespace> -p FUSE_SERVICE_NAME=<fuse-app-name> | oc apply -f -
oc process -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-sb2-7_11_1-00016-redhat-00002/monitors/fuse-servicemonitor.yml -p NAMESPACE=<your-fuse-namespace> -p FUSE_SERVICE_NAME=<fuse-app-name> | oc apply -f -
+ 예를 들어 myfuseapp 이라는 Fuse 애플리케이션을 포함하는 myproject 라는 OpenShift 프로젝트(네임스페이스)를 사용합니다.
+
예제
oc process -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-sb2-7_11_1-00016-redhat-00002/monitors/fuse-servicemonitor.yml -p NAMESPACE=myproject -p FUSE_SERVICE_NAME=myfuseapp | oc apply -f -
oc process -f https://raw.githubusercontent.com/jboss-fuse/application-templates/application-templates-2.1.0.fuse-sb2-7_11_1-00016-redhat-00002/monitors/fuse-servicemonitor.yml -p NAMESPACE=myproject -p FUSE_SERVICE_NAME=myfuseapp | oc apply -f -
Prometheus 대시보드를 여는 다음을 수행합니다.
- OpenShift 콘솔에 로그인합니다.
- Prometheus를 추가한 프로젝트를 엽니다.
- 왼쪽 창에서 관리자 보기를 선택하고 모니터링 -> 메트릭을 엽니다.
- Prometheus Hostname URL을 클릭하여 Prometheus 대시보드를 엽니다.
Prometheus에 대한 자세한 내용은 Prometheus 설명서 를 참조하십시오.
2.5.3. OpenShift 환경 변수 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션의 Prometheus 인스턴스를 구성하려면 표 2.2. “Prometheus 환경 변수” 에 나열된 OpenShift 환경 변수를 설정할 수 있습니다.
환경 변수 | 설명 | Default |
---|---|---|
| 바인딩할 호스트 주소입니다. |
|
| 설정된 경우 Prometheus의 활성화를 비활성화합니다(예: 빈 값 선택). | Prometheus가 활성화되어 있습니다. |
| 사용할 포트입니다. |
|
| 파일(path 포함)을 Prometheus 구성 파일로 사용합니다. | Camel 지표를 사용한 /opt/prometheus/prometheus-config.yml 파일 |
| 10.0.0.1 내보내기 구성에 추가할 수 있는 추가 옵션입니다. | 해당 없음 |
추가 리소스
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가 모니터링 및 수집(예: 애플리케이션 프로세스 순서 수)에 사용자 지정 메트릭이 있는 경우 자체 구성 파일을 사용할 수 있습니다. 확인할 수 있는 지표는 ScanSetting에서 제공된 지표로 제한됩니다.
절차
사용자 지정 구성 파일을 사용하여 기본 Prometheus 구성에서 다루지 않는ans를 노출하려면 다음 단계를 따르십시오.
사용자 정의 Prometheus 구성 파일을 생성합니다. 기본 파일(
prometheus-config.yml
https://raw.githubusercontent.com/jboss-fuse/application-templates/master/prometheus/prometheus-config.yml)의 내용을 형식의 가이드로 사용할 수 있습니다.사용자 지정 구성 파일에 모든 이름을 사용할 수 있습니다(예:
my-prometheus-config.yml
).-
prometheus 설정 파일(예:
my-prometheus-config.yml
)을 애플리케이션의 gRPC/main/jkube-includes
디렉터리에 추가합니다. 애플리케이션 내에 ScanSetting
/main/jkube/deployment.xml
파일을 생성하고 해당 값을 구성 파일로 설정하여 AB_JMX_EXPORTER_CONFIG 환경 변수에 대한 항목을 추가합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 환경 변수는 Pod 수준에서 애플리케이션에 적용됩니다.
- 애플리케이션을 다시 빌드하고 배포합니다.