第 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 创建基本配置”

虚拟机视图仪表板
使用虚拟机视图仪表板查看面板,以监控虚拟机基础架构使用情况。从控制面板的左上角选择云和项目。如果要在此仪表板上启用事件注解,则必须启用事件存储。如需更多信息,请参阅 第 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 部署的默认数据源。

流程

  1. 登录到托管 STF 的 Red Hat OpenShift Container Platform 环境。
  2. 使用 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
  3. 验证 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
  4. 要启动 Grafana 实例,请创建或修改 ServiceTelemetry 对象。将 graphing.enabledgraphing.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'
  5. 验证 Grafana 实例是否已部署:

    $ oc wait --for jsonpath="{.status.phase}"=Running pod -l app=default-grafana --timeout=600s
    
    pod/default-grafana-deployment-669968df64-wz5s2 condition met
  6. 验证 Grafana 数据源是否已正确安装:

    $ oc get grafanadatasources.grafana.integreatly.org
    
    NAME                        NO MATCHING INSTANCES   LAST RESYNC   AGE
    default-ds-stf-prometheus                           2m35s         2m56s
  7. 验证 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

先决条件

流程

  1. 要启用受管仪表板,请创建或修改 ServiceTelemetry 对象。将 graphing.grafana.dashboards.enabled 设置为 true

    $ oc edit stf default
    
    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    ...
    spec:
      ...
      graphing:
        enabled: true
        grafana:
          dashboards:
            enabled: true
  2. 验证 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
  3. 检索 Grafana 路由地址:

    $ oc get route default-grafana-route -ojsonpath='{.spec.host}'
    
    default-grafana-route-service-telemetry.apps.infra.watch
  4. 在 Web 浏览器中,进入到 https://<grafana_route_address>。使用您在上一步中获得的值替换 <grafana_route_address>
  5. 使用 OpenShift 凭据登录。有关登录的详情请参考 第 3.3 节 “访问 STF 组件的用户界面”
  6. 要查看仪表板,请点 DashboardsBrowse。受管仪表板位于 service-telemetry 文件夹中。

6.1.3. 连接外部仪表板系统

可以配置第三方视觉化工具,以连接到 STF Prometheus 以进行指标检索。访问通过 OAuth 令牌控制,并且已创建了具有所需权限的 ServiceAccount。可以为此帐户生成一个新的 OAuth 令牌,供外部系统使用。

若要使用身份验证令牌,必须将第三方工具配置为提供 HTTP Bearer Token Authorization 标头,如 RFC6750 所述。有关如何配置此标头的信息,请参阅第三方工具的文档。例如,Grafana 文档中的配置 Prometheus - 自定义 HTTP 标头

流程

  1. 登录到 Red Hat OpenShift Container Platform。
  2. 进入 service-telemetry 命名空间:

    $ oc project service-telemetry
  3. 为 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
  4. 从 secret 检索令牌

    $ TOKEN=$(oc get secret my-prometheus-reader-token -o template='{{.data.token}}' | base64 -d)
  5. 检索 Prometheus 主机名

    $ PROM_HOST=$(oc get route default-prometheus-proxy -ogo-template='{{ .spec.host }}')
  6. 测试访问令牌

    $ curl -k -H "Authorization: Bearer ${TOKEN}" https://${PROM_HOST}/api/v1/query?query=up
    
    {"status":"success",[...]
  7. 使用以上 PROM_HOST 和 TOKEN 值配置第三方工具

    $ echo $PROM_HOST
    $ echo $TOKEN
  8. 只要 secret 存在,令牌就会保持有效。您可以通过删除 secret 来撤销令牌。

    $ oc delete secret my-prometheus-reader-token
    secret "my-prometheus-reader-token" deleted

附加信息

如需有关服务帐户令牌 secret 的更多信息,请参阅 OpenShift Container Platform 文档中的创建 服务帐户令牌 secret

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部