This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.5.11. Prometheus를 사용하여 기본 제공 모니터링 구성
이 가이드에서는 Prometheus Operator를 사용하여 Operator SDK에서 제공하는 기본 제공 모니터링 지원 및 Go 기반 Operator 작성자의 세부 정보를 설명합니다.
5.11.1. Prometheus Operator 지원 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus는 오픈 소스 시스템 모니터링 및 경고 툴킷입니다. Prometheus Operator는 OpenShift Container Platform과 같은 Kubernetes 기반 클러스터에서 실행되는 Prometheus 클러스터를 생성, 구성, 관리합니다.
Helper 함수는 기본적으로 Operator SDK에 있으며 Prometheus Operator가 배포된 클러스터에서 사용하기 위해 생성한 Go 기반 Operator의 지표를 자동으로 설정합니다.
5.11.2. Go 기반 Operator를 위한 사용자 정의 메트릭 노출 링크 복사링크가 클립보드에 복사되었습니다!
Operator 작성자는 controller-runtime/pkg/metrics
라이브러리의 글로벌 Prometheus 레지스트리를 사용하여 사용자 정의 지표를 게시할 수 있습니다.
사전 요구 사항
- Operator SDK를 사용하여 Go 기반 Operator가 생성됨
- OpenShift Container Platform 클러스터에 기본적으로 배포되는 Prometheus Operator
절차
Operator SDK 프로젝트에서
config/default/kustomization.yaml
파일에서 다음 행의 주석을 제거합니다.../prometheus
../prometheus
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator에서 추가 지표를 게시하는 사용자 정의 컨트롤러 클래스를 생성합니다. 다음 예제에서는
위젯
및widgetFailures
수집기를 글로벌 변수로 선언한 다음 컨트롤러의 패키지에init()
함수에 등록합니다.예 5.17.
controllers/memcached_controller_test_metrics.go
fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 기본
컨트롤러 클래스의 조정 루프에서 이러한 수집기에 대한 레코드로, 메트릭의 비즈니스 로직을 결정합니다.예 5.18.
controllers/memcached_controller.go
fileCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator를 빌드하고 내보냅니다.
make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator를 배포합니다.
make deploy IMG=<registry>/<user>/<image_name>:<tag>
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform 클러스터의 Prometheus 인스턴스에서 서비스 모니터를 스크랩할 수 있도록 역할 및 역할 바인딩 정의를 생성합니다.
서비스 계정에 네임스페이스의 메트릭을 스크랩할 수 있는 권한이 있도록 역할을 할당해야 합니다.
예 5.19.
config/prometheus/role.yaml
역할Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예 5.20.
config/prometheus/rolebinding.yaml
역할 바인딩Copy to Clipboard Copied! Toggle word wrap Toggle overflow 배포된 Operator에 대한 역할 및 역할 바인딩을 적용합니다.
oc apply -f config/prometheus/role.yaml
$ oc apply -f config/prometheus/role.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc apply -f config/prometheus/rolebinding.yaml
$ oc apply -f config/prometheus/rolebinding.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스크랩할 네임스페이스의 레이블을 설정하여 해당 네임스페이스에 대한 OpenShift 클러스터 모니터링을 가능하게 합니다.
oc label namespace <operator_namespace> openshift.io/cluster-monitoring="true"
$ oc label namespace <operator_namespace> openshift.io/cluster-monitoring="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
-
OpenShift Container Platform 웹 콘솔에서 메트릭을 쿼리하고 확인합니다. 사용자 지정 컨트롤러 클래스에 설정된 이름(예:
widgets_total
및widget_failures_total
)을 사용할 수 있습니다.
5.11.3. Ansible 기반 Operator에 대한 사용자 정의 메트릭 노출 링크 복사링크가 클립보드에 복사되었습니다!
Ansible 기반 Operator를 생성하는 Operator 작성자는 Operator SDK의 osdk_metrics
모듈을 사용하여 사용자 정의 Operator 및 Operand 지표를 노출하고 이벤트를 발송하며 로깅을 지원할 수 있습니다.
사전 요구 사항
- Operator SDK를 사용하여 Ansible 기반 Operator 생성
- OpenShift Container Platform 클러스터에 기본적으로 배포되는 Prometheus Operator
절차
Ansible 기반 Operator를 생성합니다. 이 예에서는
testmetrics.com
도메인을 사용합니다.operator-sdk init \ --plugins=ansible \ --domain=testmetrics.com
$ operator-sdk init \ --plugins=ansible \ --domain=testmetrics.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 지표
API를 생성합니다. 이 예에서는Testmetrics
:라는종류를
사용합니다.operator-sdk create api \ --group metrics \ --version v1 \ --kind Testmetrics \ --generate-role
$ operator-sdk create api \ --group metrics \ --version v1 \ --kind Testmetrics \ --generate-role
Copy to Clipboard Copied! Toggle word wrap Toggle overflow roles/testmetrics/tasks/main.yml
파일을 편집하고osdk_metrics
모듈을 사용하여 Operator 프로젝트에 대한 사용자 정의 지표를 생성합니다.예 5.21.
roles/testmetrics/tasks/main.yml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
클러스터에서 Operator를 실행합니다. 예를 들어 "run을 배포" 메서드로 사용하려면 다음을 수행합니다.
Operator 이미지를 빌드하고 레지스트리로 내보냅니다.
make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
$ make docker-build docker-push IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 클러스터에 Operator를 설치합니다.
make install
$ make install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator를 배포합니다.
make deploy IMG=<registry>/<user>/<image_name>:<tag>
$ make deploy IMG=<registry>/<user>/<image_name>:<tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Testmetrics
CR(사용자 정의 리소스)을 생성합니다.CR 사양을 정의합니다.
예 5.22.
config/samples/metrics_v1_testmetrics.yaml
파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오브젝트를 생성합니다.
oc create -f config/samples/metrics_v1_testmetrics.yaml
$ oc create -f config/samples/metrics_v1_testmetrics.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Pod 세부 정보를 가져옵니다.
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE ansiblemetrics-controller-manager-<id> 2/2 Running 0 149m testmetrics-sample-memcached-<id> 1/1 Running 0 147m
NAME READY STATUS RESTARTS AGE ansiblemetrics-controller-manager-<id> 2/2 Running 0 149m testmetrics-sample-memcached-<id> 1/1 Running 0 147m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 끝점 세부 정보를 가져옵니다.
oc get ep
$ oc get ep
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME ENDPOINTS AGE ansiblemetrics-controller-manager-metrics-service 10.129.2.70:8443 150m
NAME ENDPOINTS AGE ansiblemetrics-controller-manager-metrics-service 10.129.2.70:8443 150m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자 정의 지표 토큰을 가져옵니다.
token=`oc sa get-token prometheus-k8s -n openshift-monitoring`
$ token=`oc sa get-token prometheus-k8s -n openshift-monitoring`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 메트릭 값을 확인합니다.
my_counter_metric
값을 확인합니다.oc exec ansiblemetrics-controller-manager-<id> -- curl -k -H "Authoriza
$ oc exec ansiblemetrics-controller-manager-<id> -- curl -k -H "Authoriza tion: Bearer $token" 'https://10.129.2.70:8443/metrics' | grep my_counter
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
HELP my_counter_metric Add 3.14 to the counter TYPE my_counter_metric counter my_counter_metric 2
HELP my_counter_metric Add 3.14 to the counter TYPE my_counter_metric counter my_counter_metric 2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow my_gauge_metric
값을 확인합니다.oc exec ansiblemetrics-controller-manager-<id> -- curl -k -H "Authoriza
$ oc exec ansiblemetrics-controller-manager-<id> -- curl -k -H "Authoriza tion: Bearer $token" 'https://10.129.2.70:8443/metrics' | grep gauge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
HELP my_gauge_metric Create my gauge and set it to 2.
HELP my_gauge_metric Create my gauge and set it to 2.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow my_histogram_metric
및my_summary_metric
값을 확인합니다.oc exec ansiblemetrics-controller-manager-<id> -- curl -k -H "Authoriza
$ oc exec ansiblemetrics-controller-manager-<id> -- curl -k -H "Authoriza tion: Bearer $token" 'https://10.129.2.70:8443/metrics' | grep Observe
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
HELP my_histogram_metric Observe my histogram HELP my_summary_metric Observe my summary
HELP my_histogram_metric Observe my histogram HELP my_summary_metric Observe my summary
Copy to Clipboard Copied! Toggle word wrap Toggle overflow