20.4. 通过配置启用 Prometheus 指标
要在 AMQ Streams for Prometheus 中启用和公开指标,请使用指标配置属性。
以下组件需要 metricsConfig 配置来公开指标:
- Kafka
- KafkaConnect
- MirrorMaker
- Sything Control
- ZooKeeper
此配置可让 Prometheus JMX Exporter 通过 HTTP 端点公开指标。JMX 导出器 HTTP 端点的端口是 9404。Prometheus 提取此端点来收集 Kafka 指标。
您可以将 enableMetrics 属性设置为 true,以便为这些组件公开指标:
- Kafka Bridge
- OAuth 2.0 身份验证和授权框架
- 用于授权的开放策略代理(OPA)
要在 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 Exporter 仅提供额外的与消费者滞后相关的指标。对于常规 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 # ...
要使 Kafka Exporter 能够正常工作,消费者组需要使用。
为 Kafka Bridge 启用指标
要为 Kafka Bridge 公开指标,请在 KafkaBridge 资源中将 enableMetrics 属性设置为 true。
Kafka Bridge 的指标配置示例
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 相同。
在以下示例中,为 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
# ...
要将 OAuth 2.0 指标与 Prometheus 搭配使用,您可以使用 oauth-metrics.yaml 文件来部署示例 Prometheus 指标配置。将 ConfigMap 配置复制 oauth-metrics.yaml 文件包含到为 OAuth 2.0 启用指标的同一 Kafka 资源配置文件。