20.4. 구성을 통해 Prometheus 지표 활성화
Prometheus의 AMQ Streams에 지표를 활성화하고 노출하려면 지표 구성 속성을 사용합니다.
다음 구성 요소에는 메트릭을 노출하려면 metricsConfig 구성이 필요합니다.
- Kafka
- KafkaConnect
- MirrorMaker
- 크루즈 컨트롤
- ZooKeeper
이 구성을 사용하면 Prometheus Cryostat Exporter 가 HTTP 끝점을 통해 지표를 노출할 수 있습니다. Cryostat 내보내기 HTTP 끝점의 포트는 9404입니다. Prometheus는 이 끝점을 스크랩하여 Kafka 지표를 수집합니다.
이러한 구성 요소의 메트릭을 노출하려면 enableMetrics 속성을 true 로 설정합니다.
- Kafka 브리지
- OAuth 2.0 인증 및 권한 부여 프레임워크
- 승인을 위한 OPA(Open Policy Agent)
AMQ Streams에 Prometheus 지표 구성을 배포하려면 자체 구성 또는 AMQ Streams와 함께 제공되는 사용자 정의 리소스 구성 파일 예제 를 사용할 수 있습니다.
-
kafka-metrics.yaml -
kafka-connect-metrics.yaml -
kafka-mirror-maker-2-metrics.yaml -
kafka-bridge-metrics.yaml -
kafka-cruise-control-metrics.yaml -
oauth-metrics.yaml
이러한 파일에는 Prometheus 지표를 활성화하는 데 필요한 재레이블 규칙 및 구성이 포함되어 있습니다. AMQ Streams로 Prometheus를 시도하는 데 좋은 출발점입니다.
다음 절차에서는 Kafka 리소스에 예제 Prometheus 지표 구성을 배포하는 방법을 보여줍니다. 다른 리소스에 대한 예제 파일을 배포할 때 프로세스는 동일합니다.
Kafka Exporter 지표를 포함하려면 Kafka 리소스에 kafkaExporter 구성을 추가합니다.
Kafka 내보내기는 소비자 지연 및 소비자 오프셋과 관련된 추가 지표만 제공합니다. 일반 Kafka 메트릭의 경우 Kafka 브로커 에서 Prometheus 지표를 구성해야 합니다.
절차
Prometheus 구성을 사용하여 예제 사용자 정의 리소스를 배포합니다.
예를 들어 각
Kafka리소스에 대해kafka-metrics.yaml파일을 적용할 수 있습니다.예제 구성 배포
oc apply -f kafka-metrics.yaml또는
kafka-metrics.yaml의 예제 구성을 자체Kafka리소스에 복사할 수 있습니다.예제 구성 복사
oc edit kafka <kafka_configuration_file>metricsConfig속성 및Kafka리소스에 참조하는ConfigMap을 복사합니다.Kafka의 메트릭 구성 예
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... metricsConfig:1 type: jmxPrometheusExporter valueFrom: configMapKeyRef: name: kafka-metrics key: kafka-metrics-config.yml --- kind: ConfigMap2 apiVersion: v1 metadata: name: kafka-metrics labels: app: strimzi data: kafka-metrics-config.yml: | # metrics configuration...Kafka Exporter를 배포하려면
kafkaExporter구성을 추가합니다.kafkaExporter구성은Kafka리소스에만 지정됩니다.Kafka Exporter를 배포하기 위한 구성 예
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: # ... kafkaExporter: image: my-registry.io/my-org/my-exporter-cluster:latest1 groupRegex: ".*"2 topicRegex: ".*"3 groupExcludeRegex: "^excluded-.*"4 topicExcludeRegex: "^excluded-.*"5 resources:6 requests: cpu: 200m memory: 64Mi limits: cpu: 500m memory: 128Mi logging: debug7 enableSaramaLogging: true8 template:9 pod: metadata: labels: label1: value1 imagePullSecrets: - name: my-docker-credentials securityContext: runAsUser: 1000001 fsGroup: 0 terminationGracePeriodSeconds: 120 readinessProbe:10 initialDelaySeconds: 15 timeoutSeconds: 5 livenessProbe:11 initialDelaySeconds: 15 timeoutSeconds: 5 # ...- 1
- ADVANCED OPTION: 컨테이너 이미지 구성 - 특별한 경우에만 권장됩니다.
- 2
- 메트릭에 포함할 소비자 그룹을 지정하는 정규식입니다.
- 3
- 메트릭에 포함할 주제를 지정하는 정규식입니다.
- 4
- 메트릭에서 제외할 소비자 그룹을 지정하는 정규식입니다.
- 5
- 메트릭에서 제외할 주제를 지정하는 정규식입니다.
- 6
- 예약할 CPU 및 메모리 리소스입니다.
- 7
- 지정된 심각도(디버그, info, warn, error, fatal) 이상으로 메시지를 기록하기 위한 로깅 구성입니다.
- 8
- Kafka Exporter에서 사용하는 Go 클라이언트 라이브러리인 Sarama 로깅을 활성화하는 부울입니다.
- 9
- 배포 템플릿 및 포드 사용자 지정.
- 10
- 상태 점검 준비 프로브.
- 11
- 상태 점검 활동성 프로브.
Kafka 내보내기가 제대로 작동하려면 소비자 그룹을 사용 중이어야 합니다.
Kafka 브리지의 메트릭 활성화
Kafka Bridge의 지표를 노출하려면 KafkaBridge 리소스에서 enableMetrics 속성을 true 로 설정합니다.
Kafka 브리지의 메트릭 구성 예
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
name: my-bridge
spec:
# ...
bootstrapServers: my-cluster-kafka:9092
http:
# ...
enableMetrics: true
# ...
OAuth 2.0 및 OPA 메트릭 활성화
OAuth 2.0 또는 OPA의 메트릭을 노출하려면 적절한 사용자 정의 리소스에서 enableMetrics 속성을 true 로 설정합니다.
- OAuth 2.0 메트릭
Kafka리소스에서 Kafka 클러스터 권한 부여 및 Kafka 리스너 인증에 대한 지표를 활성화합니다.지원되는 다른 구성 요소의 사용자 정의 리소스에서 OAuth 2.0 인증에 대한 메트릭을 활성화할 수도 있습니다.
- OPA 메트릭
-
Kafka 클러스터 권한 부여 메트릭을 OAuth 2.0과 동일한 방식으로
Kafka리소스를 활성화합니다.
다음 예에서 OAuth 2.0 리스너 인증 및 OAuth 2.0(keycloak) 클러스터 권한에 대해 메트릭이 활성화됩니다.
OAuth 2.0에 대해 메트릭이 활성화된 클러스터 구성의 예
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
namespace: myproject
spec:
kafka:
# ...
listeners:
- name: external
port: 9094
type: loadbalancer
tls: true
authentication:
type: oauth
enableMetrics: true
configuration:
#...
authorization:
type: keycloak
enableMetrics: true
# ...
Prometheus와 함께 OAuth 2.0 지표를 사용하려면 oauth-metrics.yaml 파일을 사용하여 예제 Prometheus 지표 구성을 배포할 수 있습니다. oauth-metrics.yaml 파일에 포함된 ConfigMap 구성을 OAuth 2.0에 대한 메트릭을 활성화한 동일한 Kafka 리소스 구성 파일에 복사합니다.