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 对象的主要参数”。
流程
要创建可生成使用默认值的 STF 部署的
ServiceTelemetry对象,请创建一个带有空spec参数的ServiceTelemetry对象:$ oc apply -f - <<EOF apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: {} EOF要覆盖默认值,请定义您要覆盖的参数。在本例中,通过将
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使用空
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要覆盖这些默认值,请将配置添加到
spec参数。在 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
验证
要确定所有工作负载是否都正常运行,请查看 pod 和每个 pod 的状态。
注意如果将
backends.events.elasticsearch.enabled参数设置为true,在 ElasticSearch 开始前,通知 Smart Gateways 报告Error和CrashLoopBackOff错误消息。$ 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
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
为 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配置
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
为事件启用 ElasticSearch 作为存储后端
要启用 ElasticSearch 作为事件的存储后端,您必须配置 ServiceTelemetry 对象。
流程
配置
ServiceTelemetry对象:apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: backends: events: elasticsearch: enabled: true
为 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配置
ServiceTelemetry对象:apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: backends: events: elasticsearch: enabled: true storage: strategy: persistent persistent: storageClass: standard-csi pvcStorageRequest: 50G
clouds 参数
使用 clouds 参数定义部署了哪些智能网关对象,从而为多个监控的云环境提供接口以连接到 STF 实例。如果支持的后端可用,则创建默认云配置的指标和事件智能卡。默认情况下,Service Telemetry Operator 为 cloud1 创建智能网关。
您可以创建云对象列表,以控制为定义的云创建智能网关。每个云由数据类型和收集器组成。数据类型是 指标 或 事件。每一数据类型包含收集器列表、消息总线订阅地址列表,以及启用调试的参数。可用的指标收集器是 collectd、ceilometer 和 sensubility。事件的可用收集器是 collectd 和 ceilometer。确保这些收集器的订阅地址对于每一个云、数据类型和收集器组合都是唯一的。
默认 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
clouds 参数的每个项目代表一个云实例。云实例包含三个顶级参数: 名称、指标 和事件。指标 和事件 参数代表该数据类型的存储的相应后端。collectors 参数指定由两个所需参数(即 collectorType 和 subscriptionAddress )组成的对象列表,这些对象代表一个智能网关的实例。collectorType 参数指定由 collectd、Ceilometer 或 Sensubility 收集的数据。subscriptionAddress 参数提供 Smart Gateway 订阅的 AMQ Interconnect 地址。
您可以使用 Collectors 参数中的可选布尔值参数 debugEnabled 在运行的 Smart Gateway pod 中启用额外的控制台调试。
其他资源
- 有关删除默认智能网关的详情,请参考 第 4.4.3 节 “删除默认智能网关”。
- 有关如何配置多个云的详情请参考 第 4.4 节 “配置多个云”。
警报参数
使用 警报 参数控制 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 传输。