第 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。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Operator 是否已成功启动。在命令输出中,如果
PHASE
列的值是Succeeded
,Operator 会成功启动:oc wait --for jsonpath="{.status.phase}"=Succeeded csv --namespace openshift-operators -l operators.coreos.com/grafana-operator.openshift-operators
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要启动 Grafana 实例,请创建或修改
ServiceTelemetry
对象。将graphing.enabled
和graphing.grafana.ingressEnabled
设置为true
。另外,还可将graphing.grafana.baseImage
的值设置为要部署的 Grafana 工作负载容器镜像:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Grafana 实例是否已部署:
oc wait --for jsonpath="{.status.phase}"=Running pod -l app=default-grafana --timeout=600s
$ oc wait --for jsonpath="{.status.phase}"=Running pod -l app=default-grafana --timeout=600s pod/default-grafana-deployment-669968df64-wz5s2 condition met
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Grafana 数据源是否已正确安装:
oc get grafanadatasources.grafana.integreatly.org
$ oc get grafanadatasources.grafana.integreatly.org NAME NO MATCHING INSTANCES LAST RESYNC AGE default-ds-stf-prometheus 2m35s 2m56s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Grafana 路由是否存在:
oc get route default-grafana-route
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 Grafana 仪表板是否已创建。创建仪表板的 Service Telemetry Operator 的过程可能需要一些时间。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索 Grafana 路由地址:
oc get route default-grafana-route -ojsonpath='{.spec.host}'
$ oc get route default-grafana-route -ojsonpath='{.spec.host}' default-grafana-route-service-telemetry.apps.infra.watch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 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
$ oc project service-telemetry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 stf-prometheus-reader 服务帐户创建新令牌 secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 secret 检索令牌
TOKEN=$(oc get secret my-prometheus-reader-token -o template='{{.data.token}}' | base64 -d)
$ TOKEN=$(oc get secret my-prometheus-reader-token -o template='{{.data.token}}' | base64 -d)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索 Prometheus 主机名
PROM_HOST=$(oc get route default-prometheus-proxy -ogo-template='{{ .spec.host }}')
$ PROM_HOST=$(oc get route default-prometheus-proxy -ogo-template='{{ .spec.host }}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 测试访问令牌
curl -k -H "Authorization: Bearer ${TOKEN}" https://${PROM_HOST}/api/v1/query?query=up
$ curl -k -H "Authorization: Bearer ${TOKEN}" https://${PROM_HOST}/api/v1/query?query=up {"status":"success",[...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以上 PROM_HOST 和 TOKEN 值配置第三方工具
echo $PROM_HOST echo $TOKEN
$ echo $PROM_HOST $ echo $TOKEN
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 只要 secret 存在,令牌就会保持有效。您可以通过删除 secret 来撤销令牌。
oc delete secret my-prometheus-reader-token
$ oc delete secret my-prometheus-reader-token secret "my-prometheus-reader-token" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
附加信息
如需有关服务帐户令牌 secret 的更多信息,请参阅 OpenShift Container Platform 文档中的创建 服务帐户令牌 secret。