7.3. 在 OpenShift 4 中查看 Kafka 指标和仪表板
当 AMQ Streams 部署到 OpenShift Container Platform 4.x 时,指标 将通过监控用户定义的项目 来提供。此 OpenShift 功能可让开发人员访问单独的 Prometheus 实例来监控其自己的项目(如 Kafka
项目)。
如果启用了对用户定义的项目的监控,openshift -user-workload-monitoring
项目包含以下组件:
- Prometheus Operator
- Prometheus 实例(由 Prometheus Operator 自动部署)
- Thanos Ruler 实例
AMQ Streams 使用这些组件来消耗指标。
集群管理员必须启用对用户定义的项目的监控,然后授予开发人员和其他用户权限来监控其项目中的应用。
Grafana 部署
您可以将 Grafana 实例部署到包含 Kafka 集群的项目中。然后,可以将 Grafana 仪表板示例用于在 Grafana 用户界面中视觉化 AMQ Streams 的 Prometheus 指标。
openshift-monitoring
项目为核心平台组件提供监控。不要在此 项目中使用 Prometheus 和 Grafana 组件来配置 OpenShift Container Platform 4.x 上的 AMQ Streams 监控。
Grafana 版本 6.3 是最低支持的版本。
先决条件
- 已使用示例 YAML 文件 部署了 Prometheus 指标配置。
启用了 对用户定义的项目的监控。集群管理员必须已在 OpenShift Container Platform 集群中创建了
cluster-monitoring-config
ConfigMap。如需更多信息,请参阅以下资源:- 在 OpenShift Container Platform 4.6 中为用户定义的项目启用监控。
- 在 OpenShift Container Platform 4.5 中启用对您自己的服务 的监控。
要监控用户定义的项目,集群管理员必须已被分配了
monitoring-rules-edit
或monitoring-edit 角色
。请参阅:- 授予用户权限来监控 OpenShift Container Platform 4.6 中的用户定义的项目。
- 在 OpenShift Container Platform 4.5 中使用 Web 控制台授予用户权限。
流程提纲
要在 OpenShift Container Platform 4.x 中设置 AMQ Streams 监控,请按照以下步骤操作:
7.3.1. 部署 Prometheus 资源
在 OpenShift Container Platform 4.x 上运行 AMQ Streams 时使用此流程。
要启用 Prometheus 以使用 Kafka 指标,您可以在示例指标文件中配置和部署 PodMonitor 资源
。PodMonnitors
直接从 Apache Kafka、ZooKeeper、Operator、Kafka Bridge 和 Cruise Control 的 pod 中提取数据。
然后,您为 Alertmanager 部署示例警报规则。
先决条件
- 正在运行的 Kafka 集群。
- 检查 AMQ Streams 提供的示例警报规则。
流程
检查是否启用了对用户定义的项目的监控:
oc get pods -n openshift-user-workload-monitoring
如果启用,则返回监控组件的 Pod。例如:
NAME READY STATUS RESTARTS AGE prometheus-operator-5cc59f9bc6-kgcq8 1/1 Running 0 25s prometheus-user-workload-0 5/5 Running 1 14s prometheus-user-workload-1 5/5 Running 1 14s thanos-ruler-user-workload-0 3/3 Running 0 14s thanos-ruler-user-workload-1 3/3 Running 0 14s
如果没有返回 pod,则禁用对用户定义的项目的监控。请参阅 第 7.3 节 “在 OpenShift 4 中查看 Kafka 指标和仪表板” 中的前提条件。
example
/metrics/prometheus-install/strimzi-pod-monitor.yaml
中定义了多个PodMonitor 资源
。对于每个
PodMonitor
资源,编辑spec.namespaceSelector.matchNames
属性:apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: cluster-operator-metrics labels: app: strimzi spec: selector: matchLabels: strimzi.io/kind: cluster-operator namespaceSelector: matchNames: - PROJECT-NAME 1 podMetricsEndpoints: - path: /metrics port: http # ...
- 1
- Pod 从中提取指标的项目,如
Kafka
。
将
strimzi-pod-monitor.yaml
文件部署到运行 Kafka 集群的项目中:oc apply -f strimzi-pod-monitor.yaml -n MY-PROJECT
将 Prometheus 规则示例部署到同一项目中:
oc apply -f prometheus-rules.yaml -n MY-PROJECT
其它资源
- OpenShift Container Platform 4.6 的监控 指南
- 第 7.4.3.3 节 “警报规则示例”