第 4 章 为服务 Telemetry Framework 配置 Red Hat OpenStack Platform
要收集指标、事件或两个对象,并将其发送到服务遥测框架(STF)存储域,您必须配置 Red Hat OpenStack Platform (RHOSP) overcloud 以启用数据收集和传输。
STF 可支持单一和多个云。RHOSP 和 STF 中的默认配置为单个云安装设置。
- 有关使用默认配置的单个 RHOSP overcloud 部署,请参阅 第 4.1 节 “为服务 Telemetry Framework 部署 Red Hat OpenStack Platform overcloud”。
- 要针对多个云规划 RHOSP 安装和配置 STF,请参阅 第 4.4 节 “配置多个云”。
作为 RHOSP overcloud 部署的一部分,您可能需要在您的环境中配置附加功能:
- 要在 RHOSP 云节点上将数据收集和传输部署到使用路由 L3 域的 RHOSP 云节点上,如分布式计算节点(DCN)或 spine-leaf,请参阅 第 4.2 节 “部署到非标准网络拓扑”。
- 如果将容器镜像同步到本地 registry,您必须创建一个环境文件,并包含容器镜像的路径。更多信息请参阅 第 4.3 节 “将 Red Hat OpenStack Platform 容器镜像添加到 undercloud”。
要配置 Red Hat OpenStack Platform (RHOSP) overcloud,您必须配置数据收集器,并将数据传输配置为服务 Telemetry Framework (STF),并且部署 overcloud。
流程
要将 Red Hat OpenStack Platform overcloud 连接到服务 Telemetry Framework (STF),可检索在 Service Telemetry Framework 中运行的 AMQ Interconnect 的 CA 证书,并使用 Red Hat OpenStack Platform 配置中的证书。
流程
在 Service Telemetry Framework 中查看可用证书列表:
$ oc get secrets检索并记录
default-interconnect-selfsignedSecret 的内容:$ oc get secret/default-interconnect-selfsigned -o jsonpath='{.data.ca\.crt}' | base64 -d
4.1.2. 检索 AMQ Interconnect 路由地址 复制链接链接已复制到粘贴板!
为服务 Telemetry Framework (STF)配置 Red Hat OpenStack Platform (RHOSP) overcloud 时,必须在 STF 连接文件中提供 AMQ Interconnect 路由地址。
流程
- 登录您的 Red Hat OpenShift Container Platform 环境。
在
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
4.1.3. 为 STF 创建基本配置 复制链接链接已复制到粘贴板!
要配置基础参数,以便为服务 Telemetry Framework (STF)提供兼容数据收集和传输,您必须创建一个定义默认数据收集值的文件。
流程
-
以
stack用户身份登录 Red Hat OpenStack Platform (RHOSP) undercloud。 在
/home/stack目录中创建一个名为enable-stf.yaml的配置文件。重要将
EventPipelinePublishers和PipelinePublishers设置为空列表会导致事件或指标数据传递到 RHOSP 传统遥测组件,如 Gnocchi 或 Panko。如果您需要将数据发送到其他管道,CeiloConfig 中的 Ceilometer 轮询间隔为 30 秒,则可能会在ExtraConfig中指定,可能会给旧组件而造成的,且您必须将间隔增加到更大值,如300。将该值增大到较长的轮询间隔会导致 STF 中的遥测分辨率减少。parameter_defaults: # only send to STF, not other publishers EventPipelinePublishers: [] PipelinePublishers: [] # manage the polling and pipeline configuration files for Ceilometer agents ManagePolling: true ManagePipeline: true # enable Ceilometer metrics and events CeilometerQdrPublishMetrics: true CeilometerQdrPublishEvents: true # set collectd overrides for higher telemetry resolution and extra plugins to load CollectdConnectionType: amqp1 CollectdAmqpInterval: 5 CollectdDefaultPollingInterval: 5 CollectdExtraPlugins: - vmem # set standard prefixes for where metrics and events 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 - disk.* - ip.* - image.* - memory - memory.* - network.* - perf.* - port - port.* - switch - switch.* - storage.* - volume.* # to avoid filling the memory buffers if disconnected from the message bus collectd::plugin::amqp1::send_queue_limit: 50 # receive extra information about virtual memory collectd::plugin::vmem::verbose: true # 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 # align defaults across OSP versions collectd::plugin::cpu::reportbycpu: true collectd::plugin::cpu::reportbystate: true collectd::plugin::cpu::reportnumcpu: false collectd::plugin::cpu::valuespercentage: true collectd::plugin::df::ignoreselected: true collectd::plugin::df::reportbydevice: true collectd::plugin::df::fstypes: ['xfs'] collectd::plugin::load::reportrelative: true collectd::plugin::virt::extra_stats: "pcpu cpu_util vcpupin vcpu memory disk disk_err disk_allocation disk_capacity disk_physical domain_state job_stats_background perf"
4.1.4. 为 overcloud 配置 STF 连接 复制链接链接已复制到粘贴板!
要配置 Service Telemetry Framework (STF)连接,您必须创建一个文件,其中包含用于 overcloud 的 AMQ Interconnect 的连接配置到 STF 部署。启用 STF 中事件的事件和存储的集合,并且部署 overcloud。默认配置适用于具有默认消息总线主题的单一云实例。有关配置多个云部署,请参阅 第 4.4 节 “配置多个云”。
前提条件
- 从 STF 部署的 AMQ Interconnect 检索 CA 证书。更多信息请参阅 第 4.1.1 节 “从用于 overcloud 配置的 Service Telemetry Framework 获取 CA 证书”。
- 检索 AMQ Interconnect 路由地址。更多信息请参阅 第 4.1.2 节 “检索 AMQ Interconnect 路由地址”。
流程
-
以
stack用户身份登录 RHOSP undercloud。 -
在
/home/stack目录中创建一个名为stf-connectors.yaml的配置文件。 在
stf-connectors.yaml文件中,配置MetricsQdrConnectors地址,将 overcloud 上的 AMQ Interconnect 连接到 STF 部署。-
将
host参数替换为您在 第 4.1.2 节 “检索 AMQ Interconnect 路由地址” 中检索的HOST/PORT值。 将
caCertFileContent参数替换为 第 4.1.1 节 “从用于 overcloud 配置的 Service Telemetry Framework 获取 CA 证书” 中检索的内容。parameter_defaults: MetricsQdrConnectors: - host: default-interconnect-5671-service-telemetry.apps.infra.watch port: 443 role: edge sslProfile: sslProfile verifyHostname: false MetricsQdrSSLProfiles: - name: sslProfile caCertFileContent: | ----BEGIN CERTIFICATE---- <snip> ----END CERTIFICATE----
-
将
4.1.5. 部署 overcloud 复制链接链接已复制到粘贴板!
使用所需的环境文件部署或更新 overcloud,以便收集数据并将其传输到服务遥测框架(STF)。
流程
-
以
stack用户身份登录 Red Hat OpenStack Platform (RHOSP) undercloud。 提供身份验证文件:
[stack@undercloud-0 ~]$ source stackrc (undercloud) [stack@undercloud-0 ~]$在 RHOSP director 部署中添加以下文件来配置数据收集和 AMQ Interconnect:
-
collectd-write-qdr.yaml文件,以确保 collectd 遥测和事件发送到 STF -
ceilometer-write-qdr.yaml文件,以确保 Ceilometer 遥测和事件发送到 STF -
qdr-edge-only.yaml文件,以确保消息总线被启用并连接到 STF 消息总线路由器 -
enable-stf.yaml环境文件,以确保正确配置了默认值 stf-connectors.yaml环境文件来定义到 STF 的连接(undercloud) [stack@undercloud-0 ~]$ openstack overcloud deploy <other_arguments> --templates /usr/share/openstack-tripleo-heat-templates \ --environment-file <...other_environment_files...> \ --environment-file /usr/share/openstack-tripleo-heat-templates/environments/metrics/ceilometer-write-qdr.yaml \ --environment-file /usr/share/openstack-tripleo-heat-templates/environments/metrics/collectd-write-qdr.yaml \ --environment-file /usr/share/openstack-tripleo-heat-templates/environments/metrics/qdr-edge-only.yaml \ --environment-file /home/stack/enable-stf.yaml \ --environment-file /home/stack/stf-connectors.yaml
-
- 部署 overcloud。
4.1.6. 验证客户端安装 复制链接链接已复制到粘贴板!
要验证 Service Telemetry Framework (STF)存储域的数据收集,请查询数据源以传送数据。要在 Red Hat OpenStack Platform (RHOSP)部署中验证单个节点,请使用 SSH 连接到控制台。
某些遥测数据仅在 RHOSP 具有活跃工作负载时才可用。
流程
- 登录 overcloud 节点,如 controller-0。
确保
metrics_qdr容器在节点上运行:$ sudo docker container inspect --format '{{.State.Status}}' metrics_qdr running返回运行 AMQ Interconnect 的内部网络地址,如
172.17.1.44侦听端口5666:$ sudo docker exec -it metrics_qdr cat /etc/qpid-dispatch/qdrouterd.conf listener { host: 172.17.1.44 port: 5666 authenticatePeer: no saslMechanisms: ANONYMOUS }返回到本地 AMQ Interconnect 的连接列表:
$ sudo docker exec -it metrics_qdr qdstat --bus=172.17.1.44:5666 --connections Connections id host container role dir security authentication tenant ============================================================================================================================================================================================================================================================================================ 1 default-interconnect-5671-service-telemetry.apps.infra.watch:443 default-interconnect-7458fd4d69-bgzfb edge out TLSv1.2(DHE-RSA-AES256-GCM-SHA384) anonymous-user 12 172.17.1.44:60290 openstack.org/om/container/controller-0/ceilometer-agent-notification/25/5c02cee550f143ec9ea030db5cccba14 normal in no-security no-auth 16 172.17.1.44:36408 metrics normal in no-security anonymous-user 899 172.17.1.44:39500 10a2e99d-1b8a-4329-b48c-4335e5f75c84 normal in no-security no-auth有四个连接:
- 出站到 STF 的连接
- 来自 ceilometer 的入站连接
- collectd 的入站连接
来自
qdstat客户端的入站连接出站 STF 连接提供给
MetricsQdrConnectors主机参数,是 STF 存储域的路由。其他主机是与这个 AMQ Interconnect 的客户端连接的内部网络地址。
为确保传递信息,列出链接,并在
deliv列中查看用于传递消息的_edge地址:$ sudo docker exec -it metrics_qdr qdstat --bus=172.17.1.44:5666 --links Router Links type dir conn id id peer class addr phs cap pri undel unsett deliv presett psdrop acc rej rel mod delay rate =========================================================================================================================================================== endpoint out 1 5 local _edge 250 0 0 0 2979926 0 0 0 0 2979926 0 0 0 endpoint in 1 6 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint in 1 7 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint out 1 8 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint in 1 9 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint out 1 10 250 0 0 0 911 911 0 0 0 0 0 911 0 endpoint in 1 11 250 0 0 0 0 911 0 0 0 0 0 0 0 endpoint out 12 32 local temp.lSY6Mcicol4J2Kp 250 0 0 0 0 0 0 0 0 0 0 0 0 endpoint in 16 41 250 0 0 0 2979924 0 0 0 0 2979924 0 0 0 endpoint in 912 1834 mobile $management 0 250 0 0 0 1 0 0 1 0 0 0 0 0 endpoint out 912 1835 local temp.9Ok2resI9tmt+CT 250 0 0 0 0 0 0 0 0 0 0 0 0要列出来自 RHOSP 节点到 STF 的地址,请连接到 Red Hat OpenShift Container Platform 以检索 AMQ Interconnect pod 名称,并列出连接。列出可用的 AMQ Interconnect pod:
$ oc get pods -l application=default-interconnect NAME READY STATUS RESTARTS AGE default-interconnect-7458fd4d69-bgzfb 1/1 Running 0 6d21h连接到 pod 并列出已知的连接。在本例中,RHOSP 节点有三个
边缘连接,连接 ID 为 22、23 和 24:$ oc exec -it default-interconnect-7458fd4d69-bgzfb -- qdstat --connections 2020-04-21 18:25:47.243852 UTC default-interconnect-7458fd4d69-bgzfb Connections id host container role dir security authentication tenant last dlv uptime =============================================================================================================================================================================================== 5 10.129.0.110:48498 bridge-3f5 edge in no-security anonymous-user 000:00:00:02 000:17:36:29 6 10.129.0.111:43254 rcv[default-cloud1-ceil-meter-smartgateway-58f885c76d-xmxwn] edge in no-security anonymous-user 000:00:00:02 000:17:36:20 7 10.130.0.109:50518 rcv[default-cloud1-coll-event-smartgateway-58fbbd4485-rl9bd] normal in no-security anonymous-user - 000:17:36:11 8 10.130.0.110:33802 rcv[default-cloud1-ceil-event-smartgateway-6cfb65478c-g5q82] normal in no-security anonymous-user 000:01:26:18 000:17:36:05 22 10.128.0.1:51948 Router.ceph-0.redhat.local edge in TLSv1/SSLv3(DHE-RSA-AES256-GCM-SHA384) anonymous-user 000:00:00:03 000:22:08:43 23 10.128.0.1:51950 Router.compute-0.redhat.local edge in TLSv1/SSLv3(DHE-RSA-AES256-GCM-SHA384) anonymous-user 000:00:00:03 000:22:08:43 24 10.128.0.1:52082 Router.controller-0.redhat.local edge in TLSv1/SSLv3(DHE-RSA-AES256-GCM-SHA384) anonymous-user 000:00:00:00 000:22:08:34 27 127.0.0.1:42202 c2f541c1-4c97-4b37-a189-a396c08fb079 normal in no-security no-auth 000:00:00:00 000:00:00:00要查看网络发送的消息数量,请使用
oc exec命令的每个地址:$ oc exec -it default-interconnect-7458fd4d69-bgzfb -- qdstat --address 2020-04-21 18:20:10.293258 UTC default-interconnect-7458fd4d69-bgzfb Router Addresses class addr phs distrib pri local remote in out thru fallback ========================================================================================================================== mobile anycast/ceilometer/event.sample 0 balanced - 1 0 970 970 0 0 mobile anycast/ceilometer/metering.sample 0 balanced - 1 0 2,344,833 2,344,833 0 0 mobile collectd/notify 0 multicast - 1 0 70 70 0 0 mobile collectd/telemetry 0 multicast - 1 0 216,128,890 216,128,890 0 0