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 是最低支持的版本。

先决条件

流程提纲

要在 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 部署示例警报规则。

先决条件

流程

  1. 检查是否启用了对用户定义的项目的监控:

    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 指标和仪表板” 中的前提条件。

  2. 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
  3. strimzi-pod-monitor.yaml 文件部署到运行 Kafka 集群的项目中:

    oc apply -f strimzi-pod-monitor.yaml -n MY-PROJECT
  4. 将 Prometheus 规则示例部署到同一项目中:

    oc apply -f prometheus-rules.yaml -n MY-PROJECT

其它资源