第 5 章 为 Service Telemetry Framework 配置 Red Hat OpenStack Platform director Operator
要收集指标、事件或两者,并将它们发送到 Service Telemetry Framework (STF)存储域,您必须配置 Red Hat OpenStack Platform (RHOSP) overcloud 以启用数据收集和传输。
STF 可以同时支持单云和多个云。为单个云安装设置 RHOSP 和 STF 中的默认配置。
- 有关使用带有默认配置的 director Operator 的单一 RHOSP overcloud 部署,请参阅 第 5.1 节 “使用 director Operator 为 Service Telemetry Framework 部署 Red Hat OpenStack Platform overcloud”。
5.1. 使用 director Operator 为 Service Telemetry Framework 部署 Red Hat OpenStack Platform overcloud
使用 director Operator 部署 Red Hat OpenStack Platform (RHOSP) overcloud 部署时,您必须配置数据收集器以及 Service Telemetry Framework (STF)的数据传输。
先决条件
- 熟悉使用 RHOSP director Operator 部署和管理 RHOSP。
流程
其他资源
- 有关使用 director Operator 部署 OpenStack 云的更多信息,请参阅 https://access.redhat.com/documentation/zh-cn/red_hat_openstack_platform/17.1/html/deploying_an_overcloud_in_a_red_hat_openshift_container_platform_cluster_with_director_operator/index
- 要通过 AMQ Interconnect 收集数据,请查看 amqp1 插件。
5.1.1. 从 Service Telemetry Framework 获取用于 overcloud 配置的 CA 证书
要将 Red Hat OpenStack Platform (RHOSP) overcloud 连接到 Service Telemetry Framework (STF),检索在 STF 中运行的 AMQ Interconnect 的 CA 证书,并在 RHOSP 配置中使用证书。
流程
查看 STF 中的可用证书列表:
$ oc get secrets
检索并记录
default-interconnect-selfsigned
Secret 的内容:$ oc get secret/default-interconnect-selfsigned -o jsonpath='{.data.ca\.crt}' | base64 -d
5.1.2. 检索 AMQ Interconnect 路由地址
当您为 Service Telemetry Framework (STF)配置 Red Hat OpenStack Platform (RHOSP) overcloud 时,您必须在 STF 连接文件中提供 AMQ Interconnect 路由地址。
流程
- 登录到托管 STF 的 Red Hat OpenShift Container Platform 环境。
进入
service-telemetry
项目:$ oc project service-telemetry
检索 AMQ Interconnect 路由地址:
$ oc get routes -ogo-template='{{ range .items }}{{printf "%s\n" .spec.host }}{{ end }}' | grep "\-5671" default-interconnect-5671-service-telemetry.apps.infra.watch
5.1.3. 为 STF 创建 director Operator 的基本配置
编辑 heat-env-config-deploy
ConfigMap,将基本 Service Telemetry Framework (STF)配置添加到 overcloud 节点。
流程
登录到部署了 RHOSP director Operator 的 Red Hat OpenShift Container Platform 环境,并更改到托管 RHOSP 部署的项目:
$ oc project openstack
打开
heat-env-config-deploy
ConfigMap
CR 进行编辑:$ oc edit heat-env-config-deploy
将
enable-stf.yaml
配置添加到heat-env-config-deploy
ConfigMap 中,保存您的编辑并关闭该文件:enable-stf.yaml
apiVersion: v1 data: [...] enable-stf.yaml: | parameter_defaults: # only send to STF, not other publishers PipelinePublishers: [] # manage the polling and pipeline configuration files for Ceilometer agents ManagePolling: true ManagePipeline: true ManageEventPipeline: false # enable Ceilometer metrics and events CeilometerQdrPublishMetrics: true # enable collection of API status CollectdEnableSensubility: true CollectdSensubilityTransport: amqp1 # enable collection of containerized service metrics CollectdEnableLibpodstats: true # set collectd overrides for higher telemetry resolution and extra plugins # to load CollectdConnectionType: amqp1 CollectdAmqpInterval: 30 CollectdDefaultPollingInterval: 30 # to collect information about the virtual memory subsystem of the kernel # CollectdExtraPlugins: # - vmem # set standard prefixes for where metrics are published to QDR MetricsQdrAddresses: - prefix: 'collectd' distribution: multicast - prefix: 'anycast/ceilometer' distribution: multicast ExtraConfig: ceilometer::agent::polling::polling_interval: 30 ceilometer::agent::polling::polling_meters: - cpu - memory.usage # to avoid filling the memory buffers if disconnected from the message bus # note: this may need an adjustment if there are many metrics to be sent. collectd::plugin::amqp1::send_queue_limit: 5000 # to receive extra information about virtual memory, you must enable vmem plugin in CollectdExtraPlugins # collectd::plugin::vmem::verbose: true # provide name and uuid in addition to hostname for better correlation # to ceilometer data collectd::plugin::virt::hostname_format: "name uuid hostname" # to capture all extra_stats metrics, comment out below config collectd::plugin::virt::extra_stats: cpu_util vcpu disk # provide the human-friendly name of the virtual instance collectd::plugin:ConfigMap :virt::plugin_instance_format: metadata # set memcached collectd plugin to report its metrics by hostname # rather than host IP, ensuring metrics in the dashboard remain uniform collectd::plugin::memcached::instances: local: host: "%{hiera('fqdn_canonical')}" port: 11211 # report root filesystem storage metrics collectd::plugin::df::ignoreselected: false
其他资源
-
有关配置
enable-stf.yaml
环境文件的更多信息,请参阅 第 4.1.4 节 “为 STF 创建基本配置” - 有关在 Red Hat OpenStack Platform director Operator 部署中添加 heat 模板的更多信息,请参阅使用 director Operator 添加 heat 模板和环境文件
5.1.4. 为 overcloud 为 director Operator 配置 STF 连接
编辑 heat-env-config-deploy
ConfigMap,以创建从 Red Hat OpenStack Platform (RHOSP)到 Service Telemetry Framework 的连接。
流程
登录到部署了 RHOSP director Operator 的 Red Hat OpenShift Container Platform 环境,并更改到托管 RHOSP 部署的项目:
$ oc project openstack
打开
heat-env-config-deploy
ConfigMap 进行编辑:$ oc edit configmap heat-env-config-deploy
将
stf-connectors.yaml
配置添加到heat-env-config-deploy
ConfigMap 中,适用于您的环境,保存您的编辑并关闭该文件:stf-connectors.yaml
apiVersion: v1 data: [...] stf-connectors.yaml: | resource_registry: OS::TripleO::Services::Collectd: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/collectd-container-puppet.yaml parameter_defaults: MetricsQdrConnectors: - host: default-interconnect-5671-service-telemetry.apps.ostest.test.metalkube.org port: 443 role: edge verifyHostname: false sslProfile: sslProfile saslUsername: guest@default-interconnect saslPassword: <password_from_stf> MetricsQdrSSLProfiles: - name: sslProfile CeilometerQdrMetricsConfig: driver: amqp topic: cloud1-metering CollectdAmqpInstances: cloud1-telemetry: format: JSON presettle: false CollectdSensubilityResultsChannel: sensubility/cloud1-telemetry
-
resource_registry
配置直接加载 collectd 服务,因为您没有为多个云部署包含collectd-write-qdr.yaml
环境文件。 -
将
MetricsQdrConnectors
的主机
子参数替换为您在 第 4.1.3 节 “检索 AMQ Interconnect 路由地址” 中检索的值。 -
将
MetricsQdrConnector
> 部分替换为您在 第 4.1.2 节 “检索 AMQ Interconnect 密码” 中检索的值。s
的saslPassword
子参数中的 <password_from_stf -
将
caCertFileContent
参数替换为 第 4.1.1 节 “从 Service Telemetry Framework 获取用于 overcloud 配置的 CA 证书” 中检索的内容。 -
设置
CeilometerQdrMetricsConfig.topic
的topic
值,以定义 Ceilometer 指标的主题。该值是云的唯一标识符,如cloud1-metering
。 -
设置
CollectdAmqpInstances
子参数,以定义 collectd 指标的主题。部分名称是云的唯一标识符,如cloud1-telemetry
。 -
设置
CollectdSensubilityResultsChannel
,以定义 collectd-sensubility 事件的主题。该值是云的唯一主题标识符,如sensubility/cloud1-telemetry
。
-
其他资源
-
有关
stf-connectors.yaml
环境文件的更多信息,请参阅 第 4.1.5 节 “为 overcloud 配置 STF 连接”。 - 有关在 RHOSP director Operator 部署中添加 heat 模板的更多信息,请参阅使用 director Operator 添加 heat 模板和环境文件
5.1.5. 为 director Operator 部署 overcloud
使用所需的环境文件部署或更新 overcloud,以便收集数据并传输到 Service Telemetry Framework (STF)。
流程
登录到部署了 RHOSP director Operator 的 Red Hat OpenShift Container Platform 环境,并更改到托管 RHOSP 部署的项目:
$ oc project openstack
打开
OpenStackConfigGenerator
自定义资源进行编辑:$ oc edit OpenStackConfigGenerator
添加
metrics/ceilometer-write-qdr.yaml
和metrics/qdr-edge-only.yaml
环境文件,作为heatEnvs
参数的值。保存编辑并关闭OpenStackConfigGenerator
自定义资源:注意如果您已经使用 director Operator 部署 Red Hat OpenStack Platform 环境,您必须删除现有
OpenStackConfigGenerator
并创建带有完整配置的新对象,才能重新生成OpenStackConfigVersion
。OpenStackConfigGenerator
apiVersion: osp-director.openstack.org/v1beta1 kind: OpenStackConfigGenerator metadata: name: default namespace: openstack spec: heatEnvConfigMap: heat-env-config-deploy heatEnvs: - <existing_environment_file_references> - metrics/ceilometer-write-qdr.yaml - metrics/qdr-edge-only.yaml
-
如果您已经使用 director Operator 部署 Red Hat OpenStack Platform 环境,并生成新的
OpenStackConfigVersion
,请编辑部署的OpenStackDeploy
对象,并将spec.configVersion
的值设置为新的OpenStackConfigVersion
以更新 overcloud 部署。
其他资源
-
有关获取最新的
OpenStackConfigVersion
的更多信息,请参阅 获取最新的 OpenStackConfigVersion - 有关使用 director Operator 应用 overcloud 配置的更多信息,请参阅使用 director Operator 应用 overcloud 配置