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

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

    apiVersion: infra.watch/v1beta1
    kind: ServiceTelemetry
    metadata:
      name: default
      namespace: service-telemetry
    spec:
      alerting:
        alertmanager:
          receivers:
            snmpTraps:
              alertOidLabel: oid
              community: public
              enabled: false
              port: 162
              retries: 5
              target: 192.168.24.254
              timeout: 1
              trapDefaultOid: 1.3.6.1.4.1.50495.15.1.2.1
              trapDefaultSeverity: ''
              trapOidPrefix: 1.3.6.1.4.1.50495.15
          storage:
            persistent:
              pvcStorageRequest: 20G
            strategy: persistent
        enabled: true
      backends:
        events:
          elasticsearch:
            certificates:
              caCertDuration: 70080h
              endpointCertDuration: 70080h
            storage:
              persistent:
                pvcStorageRequest: 20Gi
              strategy: persistent
            enabled: false
            version: 7.16.1
        logs:
          loki:
            storage:
              objectStorageSecret: test
              storageClass: standard
            enabled: false
            flavor: 1x.extra-small
            replicationFactor: 1
        metrics:
          prometheus:
            storage:
              persistent:
                pvcStorageRequest: 20G
              retention: 24h
              strategy: persistent
            enabled: true
            scrapeInterval: 10s
      clouds:
        - events:
            collectors:
              - bridge:
                  ringBufferCount: 15000
                  ringBufferSize: 16384
                  verbose: false
                collectorType: collectd
                debugEnabled: false
                subscriptionAddress: collectd/cloud1-notify
              - bridge:
                  ringBufferCount: 15000
                  ringBufferSize: 16384
                  verbose: false
                collectorType: ceilometer
                debugEnabled: false
                subscriptionAddress: anycast/ceilometer/cloud1-event.sample
          metrics:
            collectors:
              - bridge:
                  ringBufferCount: 15000
                  ringBufferSize: 16384
                  verbose: false
                collectorType: collectd
                debugEnabled: false
                subscriptionAddress: collectd/cloud1-telemetry
              - bridge:
                  ringBufferCount: 15000
                  ringBufferSize: 16384
                  verbose: false
                collectorType: ceilometer
                debugEnabled: false
                subscriptionAddress: anycast/ceilometer/cloud1-metering.sample
              - bridge:
                  ringBufferCount: 15000
                  ringBufferSize: 16384
                  verbose: false
                collectorType: sensubility
                debugEnabled: false
                subscriptionAddress: sensubility/cloud1-telemetry
          name: cloud1
      graphing:
        grafana:
          adminPassword: secret
          adminUser: root
          disableSignoutMenu: false
          ingressEnabled: false
        enabled: false
      highAvailability:
        enabled: false
      transports:
        qdr:
          certificates:
            caCertDuration: 70080h
            endpointCertDuration: 70080h
          web:
            enabled: false
          enabled: true
      observabilityStrategy: use_community
    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=90   changed=0    unreachable=0    failed=0    skipped=26   rescued=0    ignored=0
    Copy to Clipboard Toggle word wrap

验证

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

    注意

    如果将 backends.events.elasticsearch.enabled 参数设置为 true,通知智能网关会在 Elasticsearch 启动前的一段时间内报告 ErrorCrashLoopBackOff 错误消息。

    $ oc get pods
    
    NAME                                                      READY   STATUS    RESTARTS   AGE
    alertmanager-default-0                                    3/3     Running   0          4m7s
    default-cloud1-ceil-meter-smartgateway-669c6cdcf9-xvdvx   3/3     Running   0          3m46s
    default-cloud1-coll-meter-smartgateway-585855c59d-858rf   3/3     Running   0          3m46s
    default-cloud1-sens-meter-smartgateway-6f8dffb645-hhgkw   3/3     Running   0          3m46s
    default-interconnect-6994ff546-fx7jn                      1/1     Running   0          4m18s
    elastic-operator-9f44cdf6c-csvjq                          1/1     Running   0          19m
    interconnect-operator-646bfc886c-gx55n                    1/1     Running   0          25m
    prometheus-default-0                                      3/3     Running   0          3m33s
    prometheus-operator-54d644d8d7-wzdlh                      1/1     Running   0          20m
    service-telemetry-operator-54f6f7b6d-nfhwx                1/1     Running   0          18m
    smart-gateway-operator-9bbd7c56c-76w67                    1/1     Running   0          18m
    Copy to Clipboard Toggle word wrap

3.2.1. ServiceTelemetry 对象的主要参数

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

  • 警报
  • 后端
  • Cloud
  • 图形
  • HighAvailability
  • 传输

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

backends 参数

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

您可以使用 Prometheus 作为指标存储后端,Elasticsearch 作为事件存储后端。您可以使用 Service Telemetry Operator 创建 Prometheus Operator 和 Kubernetes Operator 上的 Elastic Cloud 的其他自定义资源对象,以创建 Prometheus 和 Elasticsearch 工作负载。

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

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

流程

  1. 编辑 ServiceTelemetry 对象:

    $ oc edit stf default
    Copy to Clipboard Toggle word wrap
  2. 将 backends.metrics.prometheus.enabled 参数的值设置为 true

    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 配置持久性存储

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

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

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

流程

  1. 列出可用的存储类:

    $ 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
  2. 编辑 ServiceTelemetry 对象:

    $ oc edit stf default
    Copy to Clipboard Toggle word wrap
  3. 将 backends.metrics.prometheus.enabled 参数的值设置为 true,将 backends.metrics.prometheus.storage.strategy 的值设置为 persistent

    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 对象。

流程

  1. 编辑 ServiceTelemetry 对象:

    $ oc edit stf default
    Copy to Clipboard Toggle word wrap
  2. 将 backends.events.elasticsearch.enabled 参数的值设置为 true

    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 配置持久性存储

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

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

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

流程

  1. 列出可用的存储类:

    $ 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
  2. 编辑 ServiceTelemetry 对象:

    $ oc edit stf default
    Copy to Clipboard Toggle word wrap
  3. 将 backends.events.elasticsearch.enabled 参数的值设置为 true,将 backends.events.elasticsearch.storage.strategy 的值设置为 persistent

    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 对象表示,它为特定云实例提供指标和事件的订阅和数据存储:

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

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

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

其他资源

alerts 参数

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

图形参数

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

highAvailability 参数

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

transports 参数

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat