3.2. 在 Red Hat OpenShift Container Platform 中创建 ServiceTelemetry 对象


在 Red Hat OpenShift Container Platform 中创建 ServiceTelemetry 对象,以便 Service Telemetry Operator 为 Service Telemetry Framework (STF)部署创建支持组件。更多信息请参阅 第 3.2.1 节 “ServiceTelemetry 对象的主要参数”

流程

  1. 要创建可生成使用默认值的 STF 部署的 ServiceTelemetry 对象,请创建一个带有空 spec 参数的 ServiceTelemetry 对象:

    $ oc apply -f - <<EOF
    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec: {}
    EOF
    Copy to Clipboard Toggle word wrap

    要覆盖默认值,请定义您要覆盖的参数。在本例中,通过将 enabled 设置为 true 来启用 ElasticSearch:

    $ oc apply -f - <<EOF
    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      backends:
        events:
          elasticsearch:
            enabled: true
    EOF
    Copy to Clipboard Toggle word wrap

    使用空 spec 参数创建 ServiceTelemetry 对象会导致带有以下默认设置的 STF 部署:

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
    spec:
      alerting:
        alertmanager:
          storage:
            persistent:
              pvcStorageRequest: 20G
              storageSelector: {}
            receivers:
              snmpTraps:
                enabled: false
                target: 192.168.24.254
            strategy: persistent
        enabled: true
      backends:
        events:
          elasticsearch:
            enabled: false
            storage:
              persistent:
                pvcStorageRequest: 20Gi
                storageSelector: {}
              strategy: persistent
        metrics:
          prometheus:
            enabled: true
            scrapeInterval: 10s
            storage:
              persistent:
                pvcStorageRequest: 20G
                storageSelector: {}
              retention: 24h
              strategy: persistent
      graphing:
        enabled: false
        grafana:
          adminPassword: secret
          adminUser: root
          disableSignoutMenu: false
          ingressEnabled: false
          baseImage: docker.io/grafana/grafana:8.1.2
      highAvailability:
        enabled: false
      transports:
        qdr:
          enabled: true
          web:
            enabled: false
      clouds:
        - name: cloud1
          metrics:
            collectors:
              - collectorType: collectd
                subscriptionAddress: collectd/telemetry
                debugEnabled: false
              - collectorType: ceilometer
                subscriptionAddress: anycast/ceilometer/metering.sample
                debugEnabled: false
              - collectorType: sensubility
                subscriptionAddress: sensubility/telemetry
                debugEnabled: false
          events:
            collectors:
              - collectorType: collectd
                subscriptionAddress: collectd/notify
                debugEnabled: false
              - collectorType: ceilometer
                subscriptionAddress: anycast/ceilometer/event.sample
                debugEnabled: false
    Copy to Clipboard Toggle word wrap

    要覆盖这些默认值,请将配置添加到 spec 参数。

  2. 在 Service Telemetry Operator 中查看 STF 部署日志:

    $ oc logs --selector name=service-telemetry-operator
    
    ...
    --------------------------- Ansible Task Status Event StdOut  -----------------
    
    PLAY RECAP *********************************************************************
    localhost                  : ok=57   changed=0    unreachable=0    failed=0    skipped=20   rescued=0    ignored=0
    Copy to Clipboard Toggle word wrap

验证

  • 要确定所有工作负载是否都正常运行,请查看 pod 和每个 pod 的状态。

    注意

    如果将 backends.events.elasticsearch.enabled 参数设置为 true,在 ElasticSearch 开始前,通知 Smart Gateways 报告 ErrorCrashLoopBackOff 错误消息。

    $ oc get pods
    
    NAME                                                      READY   STATUS    RESTARTS   AGE
    alertmanager-default-0                                    2/2     Running   0          17m
    default-cloud1-ceil-meter-smartgateway-6484b98b68-vd48z   2/2     Running   0          17m
    default-cloud1-coll-meter-smartgateway-799f687658-4gxpn   2/2     Running   0          17m
    default-cloud1-sens-meter-smartgateway-c7f4f7fc8-c57b4    2/2     Running   0          17m
    default-interconnect-54658f5d4-pzrpt                      1/1     Running   0          17m
    elastic-operator-66b7bc49c4-sxkc2                         1/1     Running   0          52m
    interconnect-operator-69df6b9cb6-7hhp9                    1/1     Running   0          50m
    prometheus-default-0                                      2/2     Running   1          17m
    prometheus-operator-6458b74d86-wbdqp                      1/1     Running   0          51m
    service-telemetry-operator-864646787c-hd9pm               1/1     Running   0          51m
    smart-gateway-operator-79778cf548-mz5z7                   1/1     Running   0          51m
    Copy to Clipboard Toggle word wrap

3.2.1. ServiceTelemetry 对象的主要参数

ServiceTelemetry 对象包含以下主要配置参数:

  • 警报
  • 后端
  • clouds
  • graphing
  • highAvailability
  • 传输

您可以配置每个配置参数,以在 STF 部署中提供不同的功能。

重要

servicetelemetry.infra.watch/v1alpha1 的支持已从 STF 1.3 中删除。

backends 参数

使用 backends 参数来控制哪些存储后端可用于存储指标和事件,并控制 cloud 参数所定义的智能网关启用。更多信息请参阅 “clouds 参数”一节

目前,您可以使用 Prometheus 作为指标存储后端,ElasticSearch 作为事件存储后端。

为指标启用 Prometheus 作为存储后端

要启用 Prometheus 作为指标的存储后端,您必须配置 ServiceTelemetry 对象。

流程

  • 配置 ServiceTelemetry 对象:

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      backends:
        metrics:
          prometheus:
            enabled: true
    Copy to Clipboard Toggle word wrap
为 Prometheus 配置持久性存储

使用 backends.metrics.prometheus.storage.persistent 中定义的附加参数来为 Prometheus 配置持久性存储选项,如存储类和卷大小。

使用 storageClass 定义后端存储类。如果没有设置此参数,Service Telemetry Operator 将使用 Red Hat OpenShift Container Platform 集群的默认存储类。

使用 pvcStorageRequest 参数来定义满足存储请求的最低所需卷大小。如果静态定义了卷,则可以使用大于请求的卷大小。默认情况下,Service Telemetry Operator 请求大小为 20G (20 千兆字节)。

流程

  • 列出可用的存储类:

    $ oc get storageclasses
    NAME                 PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    csi-manila-ceph      manila.csi.openstack.org   Delete          Immediate              false                  20h
    standard (default)   kubernetes.io/cinder       Delete          WaitForFirstConsumer   true                   20h
    standard-csi         cinder.csi.openstack.org   Delete          WaitForFirstConsumer   true                   20h
    Copy to Clipboard Toggle word wrap
  • 配置 ServiceTelemetry 对象:

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      backends:
        metrics:
          prometheus:
            enabled: true
            storage:
              strategy: persistent
              persistent:
                storageClass: standard-csi
                pvcStorageRequest: 50G
    Copy to Clipboard Toggle word wrap
为事件启用 ElasticSearch 作为存储后端

要启用 ElasticSearch 作为事件的存储后端,您必须配置 ServiceTelemetry 对象。

流程

  • 配置 ServiceTelemetry 对象:

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      backends:
        events:
          elasticsearch:
            enabled: true
    Copy to Clipboard Toggle word wrap
为 ElasticSearch 配置持久性存储

使用 backends.events.elasticsearch.storage.persistent 中定义的附加参数来为 ElasticSearch 配置持久性存储选项,如存储类和卷大小。

使用 storageClass 定义后端存储类。如果没有设置此参数,Service Telemetry Operator 将使用 Red Hat OpenShift Container Platform 集群的默认存储类。

使用 pvcStorageRequest 参数来定义满足存储请求的最低所需卷大小。如果静态定义了卷,则可以使用大于请求的卷大小。默认情况下,Service Telemetry Operator 请求大小为 20Gi (20 千兆字节)。

流程

  • 列出可用的存储类:

    $ oc get storageclasses
    NAME                 PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
    csi-manila-ceph      manila.csi.openstack.org   Delete          Immediate              false                  20h
    standard (default)   kubernetes.io/cinder       Delete          WaitForFirstConsumer   true                   20h
    standard-csi         cinder.csi.openstack.org   Delete          WaitForFirstConsumer   true                   20h
    Copy to Clipboard Toggle word wrap
  • 配置 ServiceTelemetry 对象:

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      backends:
        events:
          elasticsearch:
            enabled: true
            version: 7.16.1
            storage:
              strategy: persistent
              persistent:
                storageClass: standard-csi
                pvcStorageRequest: 50G
    Copy to Clipboard Toggle word wrap
clouds 参数

使用 clouds 参数定义部署了哪些智能网关对象,从而为多个监控的云环境提供接口以连接到 STF 实例。如果支持的后端可用,则创建默认云配置的指标和事件智能卡。默认情况下,Service Telemetry Operator 为 cloud1 创建智能网关。

您可以创建云对象列表,以控制为定义的云创建智能网关。每个云由数据类型和收集器组成。数据类型是 指标事件。每一数据类型包含收集器列表、消息总线订阅地址列表,以及启用调试的参数。可用的指标收集器是 collectdceilometersensubility。事件的可用收集器是 collectdceilometer。确保这些收集器的订阅地址对于每一个云、数据类型和收集器组合都是唯一的。

默认 cloud1 配置由以下 ServiceTelemetry 对象表示,该对象为 collectd、Ceilomeility data 收集和事件提供订阅和数据存储,用于特定云实例:

apiVersion: infra.watch/v1beta1
kind: ServiceTelemetry
metadata:
  name: stf-default
  namespace: service-telemetry
spec:
  clouds:
    - name: cloud1
      metrics:
        collectors:
          - collectorType: collectd
            subscriptionAddress: collectd/telemetry
          - collectorType: ceilometer
            subscriptionAddress: anycast/ceilometer/metering.sample
          - collectorType: sensubility
            subscriptionAddress: sensubility/telemetry
            debugEnabled: false
      events:
        collectors:
          - collectorType: collectd
            subscriptionAddress: collectd/notify
          - collectorType: ceilometer
            subscriptionAddress: anycast/ceilometer/event.sample
Copy to Clipboard Toggle word wrap

clouds 参数的每个项目代表一个云实例。云实例包含三个顶级参数: 名称指标 和事件指标 和事件 参数代表该数据类型的存储的相应后端。collectors 参数指定由两个所需参数(即 collectorTypesubscriptionAddress )组成的对象列表,这些对象代表一个智能网关的实例。collectorType 参数指定由 collectd、Ceilometer 或 Sensubility 收集的数据。subscriptionAddress 参数提供 Smart Gateway 订阅的 AMQ Interconnect 地址。

您可以使用 collectors 参数中的一个可选布尔值参数 debugEnabled 在运行的 Smart Gateway pod 中启用额外的控制台调试功能。

其他资源

警报参数

使用 警报 参数控制 Alertmanager 实例的创建以及存储后端的配置。默认情况下启用 警报。更多信息请参阅 第 5.3 节 “Service Telemetry Framework 中的警报”

graphing 参数

使用 graphing 参数来控制 Grafana 实例的创建。默认情况下,图形 会被禁用。更多信息请参阅 第 5.1 节 “Service Telemetry Framework 中的仪表板”

highAvailability 参数

使用 highAvailability 参数来控制 STF 组件的多个副本的实例化,以减少故障或重新调度组件的恢复时间。默认情况下禁用 高可用性。更多信息请参阅 第 5.5 节 “高可用性”

transports 参数

使用 transports 参数来控制用于 STF 部署的消息总线启用。目前唯一支持的传输是 AMQ Interconnect。默认情况下启用 qdr 传输。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat