第 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
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  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'
    Copy to Clipboard Toggle word wrap
  5. 验证 Grafana 实例是否已部署:

    $ 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 Toggle word wrap
  6. 验证 Grafana 数据源是否已正确安装:

    $ oc get grafanadatasources.grafana.integreatly.org
    
    NAME                        NO MATCHING INSTANCES   LAST RESYNC   AGE
    default-ds-stf-prometheus                           2m35s         2m56s
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap

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
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  3. 检索 Grafana 路由地址:

    $ oc get route default-grafana-route -ojsonpath='{.spec.host}'
    
    default-grafana-route-service-telemetry.apps.infra.watch
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  4. 从 secret 检索令牌

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

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

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

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

    $ oc delete secret my-prometheus-reader-token
    secret "my-prometheus-reader-token" deleted
    Copy to Clipboard Toggle word wrap

附加信息

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat