第 6 章 使用 Service Telemetry Framework 的操作功能
您可以使用以下操作功能为 Service Telemetry Framework (STF)提供额外的功能:
6.1. Service Telemetry Framework 中的仪表板 复制链接链接已复制到粘贴板!
使用第三方应用程序 Grafana 来视觉化数据收集器为各个主机节点收集的系统级指标。
有关配置数据收集器的更多信息,请参阅 第 4.1 节 “使用 director 为 Service Telemetry Framework 部署 Red Hat OpenStack Platform overcloud”。
您可以使用仪表板来监控云:
- 基础架构仪表板
- 使用基础架构仪表板查看单个节点的指标。从控制面板的左上角选择一个节点。
- Cloud view 仪表板
使用云视图仪表板查看面板,以监控服务资源使用情况、API 统计和云事件。您必须启用 API 健康监控和服务监控,以便为此仪表板提供数据。在 STF 基础配置中默认启用 API 健康监控。更多信息请参阅 第 4.1.4 节 “为 STF 创建基本配置”。
- 有关 API 健康监控的更多信息,请参阅 第 6.9 节 “Red Hat OpenStack Platform API 状态和容器化服务健康状况”。
- 有关 RHOSP 服务监控的更多信息,请参阅 第 6.8 节 “Red Hat OpenStack Platform 服务的资源使用”。
- 虚拟机视图仪表板
- 使用虚拟机视图仪表板查看面板,以监控虚拟机基础架构使用情况。从控制面板的左上角选择云和项目。如果要在此仪表板上启用事件注解,则必须启用事件存储。如需更多信息,请参阅 第 3.2 节 “在 Red Hat OpenShift Container Platform 中创建 ServiceTelemetry 对象”。
- Memcached view 仪表板
- 使用 memcached 视图仪表板查看面板,以监控连接、可用性、系统指标和缓存性能。从控制面板的左上角选择云。
6.1.1. 配置 Grafana 以托管仪表板 复制链接链接已复制到粘贴板!
Grafana 不包含在默认的 Service Telemetry Framework (STF)部署中,因此您必须从 community-operators CatalogSource 部署 Grafana Operator。如果使用 Service Telemetry Operator 部署 Grafana,它会生成 Grafana 实例,并配置本地 STF 部署的默认数据源。
流程
- 登录到托管 STF 的 Red Hat OpenShift Container Platform 环境。
使用 community-operators CatalogSource 订阅 Grafana Operator:
警告社区 Operator 是尚未被红帽审查或验证的 Operator。社区 Operator 应谨慎使用,因为其稳定性未知。红帽不支持社区 Operator。
$ oc apply -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: labels: operators.coreos.com/grafana-operator.openshift-operators: "" name: grafana-operator namespace: openshift-operators spec: channel: v5 installPlanApproval: Automatic name: grafana-operator source: community-operators sourceNamespace: openshift-marketplace EOF验证 Operator 是否已成功启动。在命令输出中,如果
PHASE列的值是Succeeded,Operator 会成功启动:$ oc wait --for jsonpath="{.status.phase}"=Succeeded csv --namespace openshift-operators -l operators.coreos.com/grafana-operator.openshift-operators clusterserviceversion.operators.coreos.com/grafana-operator.v5.6.0 condition met要启动 Grafana 实例,请创建或修改
ServiceTelemetry对象。将graphing.enabled和graphing.grafana.ingressEnabled设置为true。另外,还可将graphing.grafana.baseImage的值设置为要部署的 Grafana 工作负载容器镜像:$ oc edit stf default apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry ... spec: ... graphing: enabled: true grafana: ingressEnabled: true baseImage: 'registry.redhat.io/rhel8/grafana:9'验证 Grafana 实例是否已部署:
$ oc wait --for jsonpath="{.status.phase}"=Running pod -l app=default-grafana --timeout=600s pod/default-grafana-deployment-669968df64-wz5s2 condition met验证 Grafana 数据源是否已正确安装:
$ oc get grafanadatasources.grafana.integreatly.org NAME NO MATCHING INSTANCES LAST RESYNC AGE default-ds-stf-prometheus 2m35s 2m56s验证 Grafana 路由是否存在:
$ oc get route default-grafana-route NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD default-grafana-route default-grafana-route-service-telemetry.apps.infra.watch default-grafana-service web reencrypt None
6.1.2. 启用仪表板 复制链接链接已复制到粘贴板!
Grafana Operator 可以通过创建 GrafanaDashboard 对象来导入和管理仪表板。Service Telemetry Operator 可以启用一组默认仪表板,创建将仪表板加载到 Grafana 实例中的 GrafanaDashboard 对象。
将 graphing.grafana.dashboards.enabled 的值设置为 true,将以下仪表板加载到 Grafana 中:
- 基础架构仪表板
- Cloud view 仪表板
- 虚拟机视图仪表板
- Memcached view 仪表板
您可以使用 GrafanaDashboard 对象来创建 并载入额外的仪表板到 Grafana 中。有关使用 Grafana Operator 管理仪表板的更多信息,请参阅 Grafana Operator 项目文档中的 Dashboards。
先决条件
-
您在
ServiceTelemetry对象中启用了图形。有关图形的详情请参考 第 6.1.1 节 “配置 Grafana 以托管仪表板”。
流程
要启用受管仪表板,请创建或修改
ServiceTelemetry对象。将graphing.grafana.dashboards.enabled设置为true:$ oc edit stf default apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry ... spec: ... graphing: enabled: true grafana: dashboards: enabled: true验证 Grafana 仪表板是否已创建。创建仪表板的 Service Telemetry Operator 的过程可能需要一些时间。
$ oc get grafanadashboards.grafana.integreatly.org NAME NO MATCHING INSTANCES LAST RESYNC AGE memcached-dashboard-1 38s 38s rhos-cloud-dashboard-1 39s 39s rhos-dashboard-1 39s 39s virtual-machine-dashboard-1 37s 37s检索 Grafana 路由地址:
$ oc get route default-grafana-route -ojsonpath='{.spec.host}' default-grafana-route-service-telemetry.apps.infra.watch- 在 Web 浏览器中,进入到 https://<grafana_route_address>。使用您在上一步中获得的值替换 <grafana_route_address>。
- 使用 OpenShift 凭据登录。有关登录的详情请参考 第 3.3 节 “访问 STF 组件的用户界面”。
- 要查看仪表板,请点 Dashboards 和 Browse。受管仪表板位于 service-telemetry 文件夹中。
6.1.3. 连接外部仪表板系统 复制链接链接已复制到粘贴板!
可以配置第三方视觉化工具,以连接到 STF Prometheus 以进行指标检索。访问通过 OAuth 令牌控制,并且已创建了具有所需权限的 ServiceAccount。可以为此帐户生成一个新的 OAuth 令牌,供外部系统使用。
若要使用身份验证令牌,必须将第三方工具配置为提供 HTTP Bearer Token Authorization 标头,如 RFC6750 所述。有关如何配置此标头的信息,请参阅第三方工具的文档。例如,在 Grafana 文档中的配置 Prometheus - 自定义 HTTP 标头。
流程
- 登录到 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry为 stf-prometheus-reader 服务帐户创建新令牌 secret
$ oc create -f - <<EOF apiVersion: v1 kind: Secret metadata: name: my-prometheus-reader-token namespace: service-telemetry annotations: kubernetes.io/service-account.name: stf-prometheus-reader type: kubernetes.io/service-account-token EOF从 secret 检索令牌
$ TOKEN=$(oc get secret my-prometheus-reader-token -o template='{{.data.token}}' | base64 -d)检索 Prometheus 主机名
$ PROM_HOST=$(oc get route default-prometheus-proxy -ogo-template='{{ .spec.host }}')测试访问令牌
$ curl -k -H "Authorization: Bearer ${TOKEN}" https://${PROM_HOST}/api/v1/query?query=up {"status":"success",[...]使用以上 PROM_HOST 和 TOKEN 值配置第三方工具
$ echo $PROM_HOST $ echo $TOKEN只要 secret 存在,令牌就会保持有效。您可以通过删除 secret 来撤销令牌。
$ oc delete secret my-prometheus-reader-token secret "my-prometheus-reader-token" deleted
附加信息
如需有关服务帐户令牌 secret 的更多信息,请参阅 OpenShift Container Platform 文档中的创建 服务帐户令牌 secret。