7.3.3. 使用 Prometheus 数据源部署 Grafana
在 OpenShift Container Platform 4.x 上运行 AMQ Streams 时使用此流程。
此流程描述了如何部署为 OpenShift Container Platform 4.x 监控堆栈配置的 Grafana 应用程序。
OpenShift Container Platform 4.x 在 openshift-monitoring
项目中包含一个 Thanos Querier 实例。Thanos Querier 用于聚合平台指标。
要使用所需的平台指标,您的 Grafana 实例需要一个可以连接到 Thanos Querier 的 Prometheus 数据源。要配置此连接,您需要创建一个 Config Map,它将使用令牌验证与 Thanos Querier 一起运行的 oauth-proxy
sidecar。datasource.yaml
文件用作 Config Map 的来源。
最后,您要使用作为卷挂载的 Config Map 将 Grafana 应用程序部署到包含 Kafka 集群的项目中。
流程
获取 Grafana
ServiceAccount
的访问令牌:oc serviceaccounts get-token grafana-serviceaccount -n MY-PROJECT
复制要在下一步中使用的访问令牌。
创建一个包含 Grafana Thanos Querier 配置的
数据源.yaml
文件。将访问令牌粘贴到
httpHeaderValue1
属性中,如下所示:apiVersion: 1 datasources: - name: Prometheus type: prometheus url: https://thanos-querier.openshift-monitoring.svc.cluster.local:9091 access: proxy basicAuth: false withCredentials: false isDefault: true jsonData: timeInterval: 5s tlsSkipVerify: true httpHeaderName1: "Authorization" secureJsonData: httpHeaderValue1: "Bearer ${GRAFANA-ACCESS-TOKEN}" 1 editable: true
- 1
GRAFANA-ACCESS-TOKEN
:GrafanaServiceAccount
的访问令牌值。
从
datasource.yaml
文件创建一个名为grafana-config
的 Config Map:oc create configmap grafana-config --from-file=datasource.yaml -n MY-PROJECT
创建包含
Deployment 和
Service
的 Grafana 应用程序。The
grafana-config
Config Map 被挂载为数据源配置的卷。apiVersion: apps/v1 kind: Deployment metadata: name: grafana labels: app: strimzi spec: replicas: 1 selector: matchLabels: name: grafana template: metadata: labels: name: grafana spec: serviceAccountName: grafana-serviceaccount containers: - name: grafana image: grafana/grafana:6.3.0 ports: - name: grafana containerPort: 3000 protocol: TCP volumeMounts: - name: grafana-data mountPath: /var/lib/grafana - name: grafana-logs mountPath: /var/log/grafana - name: grafana-config mountPath: /etc/grafana/provisioning/datasources/datasource.yaml readOnly: true subPath: datasource.yaml readinessProbe: httpGet: path: /api/health port: 3000 initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: httpGet: path: /api/health port: 3000 initialDelaySeconds: 15 periodSeconds: 20 volumes: - name: grafana-data emptyDir: {} - name: grafana-logs emptyDir: {} - name: grafana-config configMap: name: grafana-config --- apiVersion: v1 kind: Service metadata: name: grafana labels: app: strimzi spec: ports: - name: grafana port: 3000 targetPort: 3000 protocol: TCP selector: name: grafana type: ClusterIP
将 Grafana 应用程序部署到包含 Kafka 集群的项目中:
oc apply -f GRAFANA-APPLICATION -n MY-PROJECT
其它资源
- 第 7.3 节 “在 OpenShift 4 中查看 Kafka 指标和仪表板”
- OpenShift Container Platform 4.6 的监控 指南