14.5. 查看 OpenShift 中的 Kafka 指标和仪表板
当 AMQ Streams 部署到 OpenShift Container Platform 时,通过 监控用户定义的项目提供指标。此 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 配置监控。
流程概述
要在 OpenShift Container Platform 中设置 AMQ Streams 监控,请按照以下步骤执行:
14.5.1. 先决条件 复制链接链接已复制到粘贴板!
- 已使用示例 YAML 文件 部署了 Prometheus 指标配置。
-
启用对用户定义的项目的监控。集群管理员已在 OpenShift 集群中创建了一个
cluster-monitoring-config配置映射。 -
集群管理员已分配了
monitoring-rules-edit或monitoring-edit角色。
有关创建 cluster-monitoring-config 配置映射并授予用户监控用户定义的项目的权限的更多信息,请参阅 OpenShift Container Platform 监控。
14.5.3. 部署 Prometheus 资源 复制链接链接已复制到粘贴板!
使用 Prometheus 获取 Kafka 集群中的监控数据。
您可以使用您自己的 Prometheus 部署,或使用 AMQ Streams 提供的示例指标配置文件 部署 Prometheus。要使用示例文件,请配置和部署 PodMonitor 资源。PodMonitors 直接从 Apache Kafka、Zook、Operator、Kafka Bridge 和 Cruise Control 的 pod 中提取数据。
然后,您要为 Alertmanager 部署示例警报规则。
先决条件
- 正在运行的 Kafka 集群。
- 检查 AMQ Streams 提供的示例警报规则。
流程
检查是否启用了对用户定义的项目的监控:
oc get pods -n openshift-user-workload-monitoring
oc get pods -n openshift-user-workload-monitoringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果启用,则返回监控组件的 pod。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有返回 pod,则禁用对用户定义的项目的监控。请参阅 第 14.5 节 “查看 OpenShift 中的 Kafka 指标和仪表板” 中的先决条件。
示例/指标/prometheus-install/strimzi-pod-monitor.yaml中定义了多个PodMonitor资源。对于每个
PodMonitor资源,编辑spec.namespaceSelector.matchNames属性:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 从其中提取指标的 Pod 项目,如
Kafka。
将
strimzi-pod-monitor.yaml文件部署到运行 Kafka 集群的项目中:oc apply -f strimzi-pod-monitor.yaml -n MY-PROJECT
oc apply -f strimzi-pod-monitor.yaml -n MY-PROJECTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将示例 Prometheus 规则部署到同一项目中:
oc apply -f prometheus-rules.yaml -n MY-PROJECT
oc apply -f prometheus-rules.yaml -n MY-PROJECTCopy to Clipboard Copied! Toggle word wrap Toggle overflow
14.5.4. 为 Grafana 创建服务帐户 复制链接链接已复制到粘贴板!
AMQ Streams 的 Grafana 实例需要使用分配了 cluster-monitoring-view 角色的服务帐户运行。
如果使用 Grafana 呈现用于监控的指标,请创建一个服务帐户。
先决条件
流程
在包含 Kafka 集群的项目中为 Grafana 创建
ServiceAccount:oc create sa grafana-service-account -n my-project
oc create sa grafana-service-account -n my-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,在
my-project命名空间中创建一个名为grafana-service-account的服务帐户。创建一个
ClusterRoleBinding资源,将cluster-monitoring-view角色分配给 GrafanaServiceAccount。此处的资源名为grafana-cluster-monitoring-binding。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
ClusterRoleBinding部署到同一项目中:oc apply -f grafana-cluster-monitoring-binding.yaml -n my-project
oc apply -f grafana-cluster-monitoring-binding.yaml -n my-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为服务帐户创建令牌 secret:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
Secret对象和访问令牌:oc create -f <secret_configuration>.yaml
oc create -f <secret_configuration>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 部署 Grafana 时需要访问令牌。
14.5.5. 使用 Prometheus 数据源部署 Grafana 复制链接链接已复制到粘贴板!
部署 Grafana 以提供 Prometheus 指标。Grafana 应用程序需要配置 OpenShift Container Platform 监控堆栈。
OpenShift Container Platform 在 openshift-monitoring 项目中包括 Thanos Querier 实例。Thanos Querier 用于聚合平台指标。
要使用所需的平台指标,Grafana 实例需要一个可以连接到 Thanos Querier 的 Prometheus 数据源。要配置此连接,您需要创建一个配置映射来验证(使用令牌)到与 Thanos Querier 一起运行的 oauth-proxy sidecar。数据源.yaml 文件用作配置映射的来源。
最后,您可以使用作为卷挂载到包含 Kafka 集群的项目中的配置映射来部署 Grafana 应用程序。
流程
获取 Grafana
ServiceAccount的访问令牌:oc describe sa/grafana-service-account | grep Tokens: oc describe secret grafana-service-account-token-mmlp9 | grep token:
oc describe sa/grafana-service-account | grep Tokens: oc describe secret grafana-service-account-token-mmlp9 | grep token:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,服务帐户名为
grafana-service-account。复制要在下一步中使用的访问令牌。创建包含 Grafana 的 Thanos Querier 配置的
datasource.yaml文件。将访问令牌粘贴到
httpHeaderValue1属性中,如下所示。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
GRAFANA-ACCESS-TOKEN:GrafrasServiceAccount的访问令牌值。
从
datasource.yaml文件中创建一个名为grafana-config的配置映射:oc create configmap grafana-config --from-file=datasource.yaml -n MY-PROJECT
oc create configmap grafana-config --from-file=datasource.yaml -n MY-PROJECTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建由
Deployment和Service组成的 Grafana 应用程序。grafana-config配置映射作为数据源配置的卷挂载。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Grafana 应用程序部署到包含 Kafka 集群的项目中:
oc apply -f <grafana-application> -n <my-project>
oc apply -f <grafana-application> -n <my-project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
14.5.6. 创建到 Grafana 服务的路由 复制链接链接已复制到粘贴板!
您可以通过公开 Grafana 服务的路由来访问 Grafana 用户界面。
流程
创建到
grafana服务的边缘路由:oc create route edge <my-grafana-route> --service=grafana --namespace=KAFKA-NAMESPACE
oc create route edge <my-grafana-route> --service=grafana --namespace=KAFKA-NAMESPACECopy to Clipboard Copied! Toggle word wrap Toggle overflow
14.5.7. 导入 Grafana 仪表板示例 复制链接链接已复制到粘贴板!
使用 Grafana 在可自定义仪表板上提供 Prometheus 指标的视觉化。
AMQ Streams 以 JSON 格式为 Grafana 提供示例仪表板配置文件。
-
examples/metrics/grafana-dashboards
此流程使用 Grafana 仪表板示例。
示例仪表板是监控关键指标的一个良好起点,但它们不显示 Kafka 支持的所有指标。您可以根据基础架构修改示例仪表板或添加其他指标。
流程
获取到 Grafana 服务的路由详情。例如:
oc get routes NAME HOST/PORT PATH SERVICES MY-GRAFANA-ROUTE MY-GRAFANA-ROUTE-amq-streams.net grafana
oc get routes NAME HOST/PORT PATH SERVICES MY-GRAFANA-ROUTE MY-GRAFANA-ROUTE-amq-streams.net grafanaCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 Web 浏览器中,使用 Route 主机和端口的 URL 访问 Grafana 登录屏幕。
输入您的用户名和密码,然后单击 Log In。
默认的 Grafana 用户名和密码都是
admin。第一次登录后,您可以更改密码。- 在 Configuration > Data Sources 中,检查 Prometheus 数据源是否已创建。数据源在 第 14.5.5 节 “使用 Prometheus 数据源部署 Grafana” 中创建。
- 点 + 图标,然后点 Import。
-
在
examples/metrics/grafana-dashboards中,复制要导入的仪表板的 JSON。 - 将 JSON 粘贴到文本框中,然后点 Load。
- 为其他 Grafana 仪表板重复步骤 5-7。
从 Dashboards 主页中查看导入的 Grafana 仪表板。