服务 Telemetry Framework 1.3
安装和部署 Service Telemetry Framework 1.3
摘要
第 1 章 Service Telemetry Framework 1.3 简介 复制链接链接已复制到粘贴板!
Service Telemetry Framework (STF)从 Red Hat OpenStack Platform (RHOSP)或第三方节点收集监控数据。您可以使用 STF 执行以下任务:
- 存储或归档监控数据,以获取历史信息。
- 在控制面板中以图形方式查看监控数据。
- 使用监控数据来触发警报或警告。
监控数据可以是指标数据,也可以是事件:
- 指标
- 应用程序或系统的数字测量。
- 事件
- 在系统中发生的非法和离散性。
STF 的组件使用消息总线进行数据传输。接收和存储数据的其他模块化组件作为容器部署到 Red Hat OpenShift Container Platform 上。
Service Telemetry Framework (STF)通过 4.8 与 Red Hat OpenShift Container Platform 版本 4.6 兼容。
其他资源
- 有关如何部署 Red Hat OpenShift Container Platform 的更多信息,请参阅 Red Hat OpenShift Container Platform 产品文档。
- 您可以在云平台或裸机上安装 Red Hat OpenShift Container Platform。有关 STF 性能和扩展的更多信息,请参阅 https://access.redhat.com/articles/4907241。
- 您可以在裸机或其他支持的云平台上安装 Red Hat OpenShift Container Platform。有关安装 Red Hat OpenShift Container Platform 的更多信息,请参阅 OpenShift Container Platform 4.8 文档。
1.1. 支持服务 Telemetry Framework 复制链接链接已复制到粘贴板!
红帽支持两个最新版本的服务 Telemetry Framework (STF)。不支持更早的版本。如需更多信息,请参阅 Service Telemetry Framework 支持的版本列表。
1.2. 服务 Telemetry 框架架构 复制链接链接已复制到粘贴板!
服务遥测框架(STF)使用客户端-服务器架构,其中 Red Hat OpenStack Platform (RHOSP)是客户端,而 Red Hat OpenShift Container Platform 是服务器。
STF 由以下组件组成:
数据收集
- collectd:收集基础架构指标和事件。
- Ceilometer:收集 RHOSP 指标和事件。
传输
- AMQ Interconnect: AMQP 1.x 兼容消息传递总线,提供快速、可靠的数据传输以将指标传输到 STF 以进行存储。
- 智能网关:一个 Golang 应用程序,从 AMQP 1.x 总线获取指标和事件,以发送到 ElasticSearch 或 Prometheus。
数据存储
- Prometheus:存储从智能网关收到的 STF 指标的时间序列数据存储。
- Elasticsearch:存储从智能网关接收的 STF 事件的事件数据存储。
观察
- Alertmanager:一个警报工具,它使用 Prometheus 警报规则来管理警报。
- Grafana:可用于查询、视觉化和探索数据的视觉化和分析应用程序。
下表描述了客户端和服务器组件的应用程序:
| 组件 | 客户端 | Server |
|---|---|---|
| AMQP 1.x 兼容消息传递总线 | 是 | 是 |
| 智能网关 | 否 | 是 |
| Prometheus | 否 | 是 |
| ElasticSearch | 否 | 是 |
| collectd | 是 | 否 |
| Ceilometer | 是 | 否 |
为确保监控平台可以报告云的操作问题,不要在您监控的同一基础架构上安装 STF。
图 1.1. 服务 Telemetry 框架架构概述
在客户端,collectd 提供没有项目数据的基础架构指标,Ceilometer 会根据项目或用户工作负载提供 Red Hat OpenStack Platform (RHOSP)平台数据。Ceilometer 和 collectd 使用 AMQ Interconnect 传输将数据提供给 Prometheus,通过消息总线提供数据。在服务器端,名为 Smart Gateway 的 Golang 应用程序从总线中获取数据流,并将其作为 Prometheus 的本地提取端点公开。
如果您计划通过 AMQ Interconnect 传输来收集和存储事件,A collectd 和 Ceilometer 将事件数据提供给服务器端。另一个智能网关将数据写入 ElasticSearch 数据存储。
服务器端 STF 监控基础架构由以下层组成:
- 服务 Telemetry Framework 1.3
- Red Hat OpenShift Container Platform 4.6 到 4.8
- 基础架构平台
图 1.2. Server-side STF 监控基础架构
1.3. Red Hat OpenShift Container Platform 的安装大小 复制链接链接已复制到粘贴板!
Red Hat OpenShift Container Platform 安装的大小取决于以下因素:
- 您选择的基础架构。
- 要监控的节点数量。
- 要收集的指标数量。
- 指标的解析。
- 存储数据的时间长度。
Service Telemetry Framework (STF)安装取决于现有的 Red Hat OpenShift Container Platform 环境。
有关 在裸机上安装 Red Hat OpenShift Container Platform 时 最低资源要求 的更多信息,请参阅在裸机上安装集群 中的最低资源要求。有关您可以安装的各种公共和私有云平台的安装要求,请参阅您选择的云平台对应的安装文档。
要为服务 Telemetry Framework (STF)准备 Red Hat OpenShift Container Platform 环境,您必须规划持久性存储、适当的资源和事件存储:
- 确保 Red Hat OpenShift Container Platform 集群中可以使用持久性存储进行生产环境评分部署。更多信息请参阅 第 2.1 节 “持久性卷(PV)”。
- 确保有足够的资源可用于运行 Operator 和应用程序容器。更多信息请参阅 第 2.2 节 “资源分配”。
2.1. 持久性卷(PV) 复制链接链接已复制到粘贴板!
服务 Telemetry Framework (STF)在 Red Hat OpenShift Container Platform 中使用持久性存储来请求持久性卷,以便 Prometheus 和 ElasticSearch 可以存储指标和事件。
当您通过 Service Telemetry Operator 启用持久性存储时,在 STF 部署中请求的持久性卷声明(PVC)会导致 RWO (ReadWriteOnce)访问模式。如果您的环境包含预置备的持久性卷,请确保 Red Hat OpenShift Container Platform 默认配置的 storageClass 中提供了 RWO 卷。
其他资源
- 如需有关为 Red Hat OpenShift Container Platform 配置持久性存储的更多信息,请参阅了解持久性存储。
- 有关 Red Hat OpenShift Container Platform 中推荐的可配置存储技术的更多信息,请参阅 推荐的可配置存储技术。
- 有关在 STF 中配置持久性存储的详情,请参考 “为 Prometheus 配置持久性存储”一节。
- 有关在 STF 中为 ElasticSearch 配置持久性存储的更多信息,请参阅 “为 ElasticSearch 配置持久性存储”一节。
2.1.1. 临时存储 复制链接链接已复制到粘贴板!
您可以使用临时存储来运行服务 Telemetry Framework (STF),而无需将数据存储在 Red Hat OpenShift Container Platform 集群中。
如果使用临时存储,当 pod 重启、更新或重新调度到另一个节点上时,可能会遇到数据丢失。仅对开发或测试使用临时存储,而不适用于生产环境。
2.2. 资源分配 复制链接链接已复制到粘贴板!
要在 Red Hat OpenShift Container Platform 基础架构中调度 pod,需要运行的组件的资源。如果您没有分配足够资源,pod 会保持 Pending 状态,因为它们无法调度。
运行 Service Telemetry Framework (STF)的资源数量取决于您的环境和要监控的节点和云。
其他资源
- 有关指标集合大小建议,请参阅 服务遥测框架性能和扩展。
- 有关 ElasticSearch 的大小要求的详情,请参考 https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-managing-compute-resources.html。
第 3 章 安装服务 Telemetry Framework 的核心组件 复制链接链接已复制到粘贴板!
您可以使用 Operator 来加载服务遥测框架(STF)组件和对象。Operator 管理以下 STF 核心和社区组件中的每个组件:
- AMQ Interconnect
- 智能网关
- Prometheus 和 AlertManager
- ElasticSearch
- Grafana
前提条件
- 一个 Red Hat OpenShift Container Platform 版本(包括 4.6 到 4.8)正在运行。
- 您已准备了 Red Hat OpenShift Container Platform 环境,并确保在 Red Hat OpenShift Container Platform 环境之上有持久性存储和足够资源来运行 STF 组件。如需更多信息,请参阅 Service Telemetry Framework 性能和扩展。
STF 与 Red Hat OpenShift Container Platform 版本 4.6 到 4.8 兼容。
其他资源
- 如需有关 Operator 的更多信息,请参阅了解 Operators 指南。
部署 Service Telemetry Framework (STF)以收集、存储和监控事件:
流程
创建一个命名空间来包含 STF 组件,如
service-telemetry:$ oc new-project service-telemetry在命名空间中创建 OperatorGroup 以便调度 Operator pod:
$ oc create -f - <<EOF apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: service-telemetry-operator-group namespace: service-telemetry spec: targetNamespaces: - service-telemetry EOF如需更多信息,请参阅 OperatorGroups。
启用 OperatorHub.io Community Catalog Source 来安装数据存储和视觉化 Operator:
注意红帽支持核心 Operator 和工作负载,包括 AMQ Interconnect、AMQ Certificate Manager、Service Telemetry Operator 和 Smart Gateway Operator。
$ oc create -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: CatalogSource metadata: name: operatorhubio-operators namespace: openshift-marketplace spec: sourceType: grpc image: quay.io/operatorhubio/catalog:latest displayName: OperatorHub.io Operators publisher: OperatorHub.io EOF使用 redhat-operators CatalogSource 订阅 AMQ Certificate Manager Operator:
注意AMQ 证书管理器部署到
openshift-operators命名空间,然后可供集群中的所有命名空间使用。因此,在有大量命名空间的集群上,Operator 可能需要几分钟才能在service-telemetry命名空间中可用。在将 AMQ Certificate Manager Operator 与其他命名空间范围的 Operator 搭配使用时,AMQ Certificate Manager Operator 与 Operator Lifecycle Manager 的依赖项管理不兼容。$ oc create -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: amq7-cert-manager-operator namespace: openshift-operators spec: channel: 1.x installPlanApproval: Automatic name: amq7-cert-manager-operator source: redhat-operators sourceNamespace: openshift-marketplace EOF验证您的 ClusterServiceVersion。确保 amq7-cert-manager.v1.0.1 的阶段显示为
Succeeded:$ oc get --namespace openshift-operators csv NAME DISPLAY VERSION REPLACES PHASE amq7-cert-manager.v1.0.1 Red Hat Integration - AMQ Certificate Manager 1.0.1 Succeeded如果您计划在 ElasticSearch 中存储事件,您必须在 Kubernetes (ECK) Operator 上启用 Elastic Cloud。要启用 ECK Operator,请在 Red Hat OpenShift Container Platform 环境中创建以下清单:
$ oc create -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: elasticsearch-eck-operator-certified namespace: service-telemetry spec: channel: stable installPlanApproval: Automatic name: elasticsearch-eck-operator-certified source: certified-operators sourceNamespace: openshift-marketplace EOF验证 Kubernetes
Succeeded上的 Elastic Cloud 的 ClusterServiceVersion:$ oc get csv NAME DISPLAY VERSION REPLACES PHASE ... elasticsearch-eck-operator-certified.v1.7.1 Elasticsearch (ECK) Operator 1.7.1 elasticsearch-eck-operator-certified.v1.6.0 Succeeded ...创建 Service Telemetry Operator 订阅来管理 STF 实例:
$ oc create -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: service-telemetry-operator namespace: service-telemetry spec: channel: stable-1.3 installPlanApproval: Automatic name: service-telemetry-operator source: redhat-operators sourceNamespace: openshift-marketplace EOF验证 Service Telemetry Operator 和依赖 Operator:
$ oc get csv --namespace service-telemetry amq7-cert-manager.v1.0.1 Red Hat Integration - AMQ Certificate Manager 1.0.1 Succeeded amq7-interconnect-operator.v1.10.1 Red Hat Integration - AMQ Interconnect 1.10.1 amq7-interconnect-operator.v1.2.4 Succeeded elasticsearch-eck-operator-certified.v1.8.0 Elasticsearch (ECK) Operator 1.8.0 elasticsearch-eck-operator-certified.v1.7.1 Succeeded prometheusoperator.0.47.0 Prometheus Operator 0.47.0 prometheusoperator.0.37.0 Succeeded service-telemetry-operator.v1.3.1632925572 Service Telemetry Operator 1.3.1632925572 Succeeded smart-gateway-operator.v3.0.1632925565 Smart Gateway Operator 3.0.1632925565 Succeeded
在 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 传输。
如果不再需要 STF 功能,请从 Red Hat OpenShift Container Platform 环境中删除 Service Telemetry Framework (STF)。
3.3.1. 删除命名空间 复制链接链接已复制到粘贴板!
要从 Red Hat OpenShift Container Platform 中删除 STF 的操作资源,请删除该命名空间。
流程
运行
oc delete命令:$ oc delete project service-telemetry验证资源是否已从命名空间中删除:
$ oc get all No resources found.
3.3.2. 删除 CatalogSource 复制链接链接已复制到粘贴板!
如果您不希望再次安装 Service Telemetry Framework (STF),请删除 CatalogSource。当您删除 CatalogSource 时,与 STF 相关的 PackageManifests 将自动从 Operator Lifecycle Manager 目录中移除。
流程
如果您在安装过程中启用了 OperatorHub.io Community Catalog Source,且不再需要这个目录源,请删除它:
$ oc delete --namespace=openshift-marketplace catalogsource operatorhubio-operators catalogsource.operators.coreos.com "operatorhubio-operators" deleted
其他资源
有关 OperatorHub.io 社区目录源的更多信息,请参阅 第 3.1 节 “在 Red Hat OpenShift Container Platform 环境中部署 Service Telemetry Framework”。
要收集指标、事件或两个对象,并将其发送到服务遥测框架(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
4.2. 部署到非标准网络拓扑 复制链接链接已复制到粘贴板!
如果您的节点位于与默认 InternalApi 网络的独立网络中,您必须进行配置调整,以便 AMQ Interconnect 可以与 Service Telemetry Framework (STF)服务器实例传输数据。这个场景通常在 spine-leaf 或 DCN 拓扑中。有关 DCN 配置的更多信息,请参阅 Spine Leaf Networking 指南。
如果您将 STF 与 Red Hat OpenStack Platform (RHOSP) 13 搭配使用,并计划监控您的 Ceph、块或 Object Storage 节点,您必须进行配置更改,这与您即时和 DCN 网络配置类似的配置更改。要监控 Ceph 节点,请使用 CephStorageExtraConfig 参数定义要加载到 AMQ Interconnect 和 collectd 配置文件中的网络接口。
CephStorageExtraConfig:
tripleo::profile::base::metrics::collectd::amqp_host: "%{hiera('storage')}"
tripleo::profile::base::metrics::qdr::listener_addr: "%{hiera('storage')}"
tripleo::profile::base::ceilometer::agent::notification::notifier_host_addr: "%{hiera('storage')}"
同样,如果您的环境使用 Block 和 Object Storage 角色,则必须指定 BlockStorageExtraConfig 和 ObjectStorageExtraConfig 参数。
要部署自叶拓扑,您必须创建角色和网络,然后将这些网络分配到可用的角色。当您为 RHOSP 部署配置 STF 的数据收集和传输时,角色的默认网络为 InternalApi。对于 Ceph,块和对象存储角色是 Storage。由于 spine-leaf 配置可能会导致不同的网络被分配到不同的 Leaf 分组,且这些名称通常是唯一的,因此 RHOSP 环境文件的 parameter_defaults 部分中需要额外的配置。
流程
- 记录每个 Leaf 角色都可用的网络。有关网络名称定义示例,请参阅 Spine Leaf Networking 指南中的 创建网络数据文件。有关创建 Leaf 分组(角色)并将网络分配给这些分组的更多信息,请参阅 Spine Leaf Networking 指南中的 角色数据文件。
将以下配置示例添加到每个 leaf 角色的
ExtraConfig部分。在本例中,internal_api0是网络定义的name_lower参数中定义的值,是连接了Compute0leaf 角色的网络。在本例中,0 的网络标识与 leaf 0 的 Compute 角色对应,它代表与默认内部 API 网络名称不同的值。对于
Compute0leaf 角色,指定额外的配置来执行 hiera lookup,以确定特定网络要分配给 collectd AMQP 主机参数的网络接口。对 AMQ Interconnect 监听器地址参数执行相同的配置。Compute0ExtraConfig: tripleo::profile::base::metrics::collectd::amqp_host: "%{hiera('internal_api0')}" tripleo::profile::base::metrics::qdr::listener_addr: "%{hiera('internal_api0')}"此示例配置位于 CephStorage leaf 角色上:
CephStorage0ExtraConfig: tripleo::profile::base::metrics::collectd::amqp_host: "%{hiera('storage0')}" tripleo::profile::base::metrics::qdr::listener_addr: "%{hiera('storage0')}"
4.3. 将 Red Hat OpenStack Platform 容器镜像添加到 undercloud 复制链接链接已复制到粘贴板!
如果将容器镜像同步到本地 registry,您必须创建一个环境文件,并包含容器镜像的路径。
流程
创建新环境文件,如
container-images.yaml,并插入以下容器镜像和路径:parameter_defaults: DockerCollectdConfigImage: <image-registry-path>/rhosp{vernum}/openstack-collectd:latest DockerCollectdImage: <image-registry-path>/rhosp{vernum}/openstack-collectd:latest DockerMetricsQdrConfigImage: <image-registry-path>/rhosp{vernum}/openstack-qdrouterd:latest DockerMetricsQdrImage: <image-registry-path>/rhosp{vernum}/openstack-qdrouterd:latest将
<image-registry-path> 替换为镜像 registry 的路径。要将 collectd 和 AMQ Interconnect 部署到 overcloud,请包括
/usr/share/local-container-images/container-images.yaml环境文件,以便 Red Hat OpenStack Platform director 可以准备镜像。以下片段是一个如何包括此环境文件的示例:$ openstack overcloud container image prepare \ ... -e /usr/share/local-container-images/container-images.yaml \ ...
4.4. 配置多个云 复制链接链接已复制到粘贴板!
您可以将多个 Red Hat OpenStack Platform (RHOSP)云配置为以单个服务遥测框架(STF)实例为目标。当您配置多个云时,每个云都必须自行发送指标和事件。在 STF 部署中,智能网关实例侦听这些主题,以将信息保存到常见数据存储中。使用每个智能网关创建的元数据过滤在数据存储域中通过智能网关存储的数据过滤。
图 4.1. 两个 RHOSP 云连接到 STF
要为多个云场景配置 RHOSP overcloud,请完成以下任务:
- 规划要用于每个云的 AMQP 地址前缀。更多信息请参阅 第 4.4.1 节 “规划 AMQP 地址前缀”。
- 为每一个云部署指标和事件消费者智能网关,以侦听对应的地址前缀。更多信息请参阅 第 4.4.2 节 “部署智能网关”。
- 使用唯一域名配置每个云。更多信息请参阅 第 4.4.4 节 “设置唯一云域”。
- 为 STF 创建基本配置。更多信息请参阅 第 4.1.3 节 “为 STF 创建基本配置”。
- 配置每个云,使其指标和事件在正确的地址上发送到 STF。更多信息请参阅 第 4.4.5 节 “为多个云创建 Red Hat OpenStack Platform 环境文件”。
4.4.1. 规划 AMQP 地址前缀 复制链接链接已复制到粘贴板!
默认情况下,Red Hat OpenStack Platform 节点通过两个数据收集器接收数据: collectd 和 Ceilometer。这些组件将遥测数据或通知发送到对应的 AMQP 地址,如 collectd/telemetry。STF 智能网关侦听用于监控数据的 AMQP 地址。要支持多个云并确定生成监控数据的云,请将每个云配置为将数据发送到唯一地址。为地址的第二部分添加云标识符前缀。以下列表显示了一些地址和标识符示例:
-
collectd/cloud1-telemetry -
collectd/cloud1-notify -
anycast/ceilometer/cloud1-metering.sample -
anycast/ceilometer/cloud1-event.sample -
collectd/cloud2-telemetry -
collectd/cloud2-notify -
anycast/ceilometer/cloud2-metering.sample -
anycast/ceilometer/cloud2-event.sample -
collectd/us-east-1-telemetry -
collectd/us-west-3-telemetry
4.4.2. 部署智能网关 复制链接链接已复制到粘贴板!
您必须为每个云部署一个智能网关类型;一个用于 collectd 指标,一个用于 collectd 事件,一个用于 Ceilometer 指标,另一个用于 Ceilometer 事件。配置每个智能网关,以侦听您为相应云定义的 AMQP 地址。要定义智能网关,请在 ServiceTelemetry 清单中配置 cloud 参数。
当您第一次部署 STF 时,会创建智能网关清单来为单个云定义初始智能网关。当您为多个云支持部署智能网关时,您可以为处理每个云指标和事件数据的数据收集类型部署多个智能网关。初始智能网关在 cloud1 中使用以下订阅地址定义:
| collector | type | 默认订阅地址 |
| collectd | metrics | collectd/telemetry |
| collectd | 事件 | collectd/notify |
| Ceilometer | metrics | anycast/ceilometer/metering.sample |
| Ceilometer | 事件 | anycast/ceilometer/event.sample |
前提条件
- 您已确定了云命名方案。有关确定您的命名方案的更多信息,请参阅 第 4.4.1 节 “规划 AMQP 地址前缀”。
-
您已创建了云对象列表。有关为云参数创建内容的更多信息,请参阅 “clouds 参数”一节。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry编辑默认ServiceTelemetry 对象,并使用您的配置添加一个 cloud参数:警告长云名称可能会超过最大 pod 名称 63 个字符。确保
ServiceTelemetry名称的组合,并且clouds.name不会超过 19 个字符。云名称不能包含任何特殊字符,如-。将云名称限制为字母数字(a-z、0-9)。主题地址没有字符限制,可以和
clouds.name值不同。$ oc edit stf defaultapiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: ... spec: ... clouds: - name: cloud1 events: collectors: - collectorType: collectd subscriptionAddress: collectd/cloud1-notify - collectorType: ceilometer subscriptionAddress: anycast/ceilometer/cloud1-event.sample metrics: collectors: - collectorType: collectd subscriptionAddress: collectd/cloud1-telemetry - collectorType: ceilometer subscriptionAddress: anycast/ceilometer/cloud1-metering.sample - name: cloud2 events: ...- 保存 ServiceTelemetry 对象。
验证每个智能网关正在运行。这可能需要几分钟时间,具体取决于智能卡数量:
$ oc get po -l app=smart-gatewayNAME READY STATUS RESTARTS AGE default-cloud1-ceil-event-smartgateway-6cfb65478c-g5q82 2/2 Running 0 13h default-cloud1-ceil-meter-smartgateway-58f885c76d-xmxwn 2/2 Running 0 13h default-cloud1-coll-event-smartgateway-58fbbd4485-rl9bd 2/2 Running 0 13h default-cloud1-coll-meter-smartgateway-7c6fc495c4-jn728 2/2 Running 0 13h
4.4.3. 删除默认智能网关 复制链接链接已复制到粘贴板!
为多个云配置 Service Telemetry Framework (STF)后,如果不再使用默认智能网关,可以删除默认智能网关。Service Telemetry Operator 可以移除创建的 SmartGateway 对象,但不再列在对象的 ServiceTelemetry 云 列表中。要启用删除不是由 clouds 参数定义的 SmartGateway 对象,您必须在 ServiceTelemetry 清单中将 cloudsRemoveOn Mising 参数设置为 true。
如果您不想部署任何智能网关,请使用 cloud : [] 参数定义一个空云 列表。
cloudsRemoveOnMissing 参数会被默认禁用。如果启用 cloudsRemoveOnMis ing 参数,您可以删除当前命名空间中的手动创建的 SmartGateway 对象,而无需恢复。
流程
-
使用您要管理 Service Telemetry Operator 的云对象列表定义您的云参数。
更多信息请参阅 “clouds 参数”一节。 编辑 ServiceTelemetry 对象并添加
cloudsRemoveOnMissing参数:apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: ... spec: ... cloudsRemoveOnMissing: true clouds: ...- 保存修改。
验证 Operator 是否已删除智能卡。Operator 协调更改时可能需要几分钟时间:
$ oc get smartgateways
4.4.4. 设置唯一云域 复制链接链接已复制到粘贴板!
要确保 AMQ 互连从 Red Hat OpenStack Platform (RHOSP)到 Service Telemetry Framework (STF)的连接是唯一的且没有冲突,请配置 CloudDomain 参数。
流程
-
创建新的环境文件,如 hostname
.yaml。 在环境文件中设置
CloudDomain参数,如下例所示:parameter_defaults: CloudDomain: newyork-west-04 CephStorageHostnameFormat: 'ceph-%index%' ObjectStorageHostnameFormat: 'swift-%index%' ComputeHostnameFormat: 'compute-%index%'- 将新环境文件添加到您的部署中。有关更多信息,请参阅 Overcloud 参数指南中的 第 4.4.5 节 “为多个云创建 Red Hat OpenStack Platform 环境文件” 和核心 overcloud 参数。
4.4.5. 为多个云创建 Red Hat OpenStack Platform 环境文件 复制链接链接已复制到粘贴板!
要根据原始云标记流量,您必须使用特定于云的实例名称创建配置。创建 stf-connectors.yaml 文件并调整 CeilometerQdrEventsConfig、CeilomesConfig 和 CollectdAmqpInstances 的值以匹配 AMQP 地址前缀方案。
前提条件
- 您已从 STF 部署的 AMQ Interconnect 获取 CA 证书。更多信息请参阅 第 4.1.1 节 “从用于 overcloud 配置的 Service Telemetry Framework 获取 CA 证书”。
- 您已创建了云对象列表。有关为云参数创建内容的更多信息,请参阅 云配置参数。
- 您已获取 AMQ Interconnect 路由地址。更多信息请参阅 第 4.1.2 节 “检索 AMQ Interconnect 路由地址”。
- 您已为 STF 创建基本配置。更多信息请参阅 第 4.1.3 节 “为 STF 创建基本配置”。
- 您已创建了唯一的域名环境文件。更多信息请参阅 第 4.4.4 节 “设置唯一云域”。
流程
-
以
stack用户身份登录 Red Hat OpenStack Platform undercloud。 -
在
/home/stack目录中创建一个名为stf-connectors.yaml的配置文件。 在
stf-connectors.yaml文件中,配置MetricsQdrConnectors地址以连接到 overcloud 部署上的 AMQ Interconnect。配置CeilometerQdrEventsConfig、CeilomesConfig和CollectdAmqpInstances主题值以匹配您要用于此云部署的 AMQP 地址。将
caCertFileContent参数替换为 第 4.1.1 节 “从用于 overcloud 配置的 Service Telemetry Framework 获取 CA 证书” 中检索的内容。stf-connectors.yaml
resource_registry: OS::TripleO::Services::Collectd: /usr/share/openstack-tripleo-heat-templates/deployment/metrics/collectd-container-puppet.yaml1 parameter_defaults: MetricsQdrConnectors: - host: stf-default-interconnect-5671-service-telemetry.apps.infra.watch2 port: 443 role: edge verifyHostname: false sslProfile: sslProfile MetricsQdrSSLProfiles: - name: sslProfile caCertFileContent: | ----BEGIN CERTIFICATE---- <snip> ----END CERTIFICATE---- CeilometerQdrEventsConfig: driver: amqp topic: cloud1-event3 CeilometerQdrMetricsConfig: driver: amqp topic: cloud1-metering4 CollectdAmqpInstances: cloud1-notify:5 notify: true format: JSON presettle: false cloud1-telemetry:6 format: JSON presettle: false- 1
- 直接加载 collectd 服务,因为您不包含用于多个云部署的
collectd-write-qdr.yaml环境文件。 - 2
- 3
- 定义 Ceilometer 事件的主题。这个值是任何cast
/ceilometer/cloud1-event.sample的地址格式。 - 4
- 定义 Ceilometer 指标的主题。这个值是任何cast
/ceilometer/cloud1-metering.sample的地址格式。 - 5
- 定义 collectd 事件的主题。这个值是
collectd/cloud1-notify的格式。 - 6
- 定义 collectd 指标的主题。此值是
collectd/cloud1-telemetry的格式。
-
确保
stf-connectors.yaml文件中的命名约定与智能网关配置中的spec.bridge.amqpUrl字段一致。例如,将CeilometerQdrEventsConfig.topic字段配置为cloud1-event的值。 提供身份验证文件:
[stack@undercloud-0 ~]$ source stackrc (undercloud) [stack@undercloud-0 ~]$在
openstack overcloud 部署命令中包括stf-connectors文件和唯一的域名环境文件 hostname.yaml,以及与您的环境相关的任何其他环境文件:.yaml警告如果您使用带有自定义
CollectdAmqpInstances参数的collectd-write-qdr.yaml文件,数据会发布到自定义和默认主题。在多个云环境中,stf-connectors.yaml文件中的resource_registry参数配置加载 collectd 服务。(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/qdr-edge-only.yaml \ --environment-file /home/stack/hostnames.yaml \ --environment-file /home/stack/enable-stf.yaml \ --environment-file /home/stack/stf-connectors.yaml- 部署 Red Hat OpenStack Platform overcloud。
其他资源
- 有关如何验证部署的详情,请参考 第 4.1.6 节 “验证客户端安装”。
4.4.6. 从多个云查询指标数据 复制链接链接已复制到粘贴板!
Prometheus 中存储的数据具有 服务 标签,它从其中提取的智能卡。您可以使用该标签从特定云查询数据。
要从特定云查询数据,请使用与相关服务标签匹配的 Prometheus promql 查询;例如: collectd_uptime{ 。
service ="default-cloud1-coll-meter"}
第 5 章 使用服务 Telemetry Framework 的操作功能 复制链接链接已复制到粘贴板!
您可以使用以下操作功能为服务遥测框架(STF)提供额外功能:
5.1. Service Telemetry Framework 中的仪表板 复制链接链接已复制到粘贴板!
使用第三方应用程序 Grafana,视觉化 collectd 和 Ceilometer 为每个单独主机节点收集的系统级别指标。
有关配置 collectd 的更多信息,请参阅 第 4.1 节 “为服务 Telemetry Framework 部署 Red Hat OpenStack Platform overcloud”。
5.1.1. 配置 Grafana 来托管仪表板 复制链接链接已复制到粘贴板!
Grafana 不包含在默认的 Service Telemetry Framework (STF)部署中,因此您必须从 OperatorHub.io 部署 Grafana Operator。当您使用 Service Telemetry Operator 部署 Grafana 时,它会生成 Grafana 实例,以及本地 STF 部署的默认数据源配置。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry部署 Grafana Operator:
$ oc apply -f - <<EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: grafana-operator namespace: service-telemetry spec: channel: alpha installPlanApproval: Automatic name: grafana-operator source: operatorhubio-operators sourceNamespace: openshift-marketplace EOF验证 Operator 是否已成功启动。在命令输出中,如果
PHASE列的值为Succeeded,Operator 可以成功启动:$ oc get csv --selector operators.coreos.com/grafana-operator.service-telemetry NAME DISPLAY VERSION REPLACES PHASE grafana-operator.v3.10.3 Grafana Operator 3.10.3 grafana-operator.v3.10.2 Succeeded要启动 Grafana 实例,请创建或修改
ServiceTelemetry对象。将graphing.enabled和graphing.grafana.ingressEnabled设置为true:$ oc edit stf default apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry ... spec: ... graphing: enabled: true grafana: ingressEnabled: true验证 Grafana 实例是否已部署:
$ oc get pod -l app=grafana NAME READY STATUS RESTARTS AGE grafana-deployment-7fc7848b56-sbkhv 1/1 Running 0 1m验证 Grafana 数据源是否已正确安装:
$ oc get grafanadatasources NAME AGE default-datasources 20h验证 Grafana 路由是否存在:
$ oc get route grafana-route NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD grafana-route grafana-route-service-telemetry.apps.infra.watch grafana-service 3000 edge None
5.1.2. 获取和设置 Grafana 登录凭证 复制链接链接已复制到粘贴板!
在启用 Grafana 时,服务 Telemetry Framework (STF)会设置默认登录凭证。您可以在 ServiceTelemetry 对象中覆盖凭证。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry要获取默认用户名和密码,请描述 Grafana 对象:
$ oc describe grafana default-
要通过 ServiceTelemetry 对象修改 Grafana 管理员用户名和密码的默认值,请使用
graphing.grafana.adminUser和graphing.grafana.adminPassword参数。
5.2. Service Telemetry Framework 中的指标保留时间 复制链接链接已复制到粘贴板!
Service Telemetry Framework (STF)中存储的指标的默认保留时间为 24 小时,为警报开发提供充足的趋势。
对于长期存储,请使用为长期数据保留而设计的系统,例如 Thanos。
其他资源
- 要调整 STF 的额外指标保留时间,请参阅 第 5.2.1 节 “编辑服务 Telemetry Framework 中的指标保留时间”。
- 有关 Prometheus 数据存储和估算存储空间的建议,请参考 https://prometheus.io/docs/prometheus/latest/storage/#operational-aspects
- 有关 Thanos 的更多信息,请参阅 https://thanos.io/
5.2.1. 编辑服务 Telemetry Framework 中的指标保留时间 复制链接链接已复制到粘贴板!
您可以调整服务遥测框架(STF)以获得额外的指标保留时间。
流程
- 登录 Red Hat OpenShift Container Platform。
进入 service-telemetry 命名空间:
$ oc project service-telemetry编辑 ServiceTelemetry 对象:
$ oc edit stf default将
retention: 7d添加到 backends.metrics.prometheus.storage 的 storage 部分,将保留周期增加到 7 天:注意如果您设置了较长的保留周期,从大量填充的 Prometheus 系统检索数据可能会导致查询返回速度慢。
apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: stf-default namespace: service-telemetry spec: ... backends: metrics: prometheus: enabled: true storage: strategy: persistent retention: 7d ...- 保存您的更改,并关闭对象。
其他资源
- 有关指标保留时间的更多信息,请参阅 第 5.2 节 “Service Telemetry Framework 中的指标保留时间”。
5.3. Service Telemetry Framework 中的警报 复制链接链接已复制到粘贴板!
您可以在 Alertmanager 中在 Prometheus 和警报路由中创建警报规则。Prometheus 服务器中的警报规则将警报发送到管理警报的 Alertmanager。Alertmanager 可以静默、禁止或聚合警报,并使用电子邮件、on-call 通知系统或聊天平台发送通知。
要创建警报,请完成以下步骤:
- 在 Prometheus 中创建警报规则。更多信息请参阅 第 5.3.1 节 “在 Prometheus 中创建警报规则”。
- 在 Alertmanager 中创建警报路由。更多信息请参阅 第 5.3.3 节 “在 Alertmanager 中创建警报路由”。
其他资源
有关使用 Prometheus 和 Alertmanager 警报或通知的更多信息,请参阅 https://prometheus.io/docs/alerting/overview/
要查看可用于 Service Telemetry Framework (STF)的警报集合的示例,请参阅 https://github.com/infrawatch/service-telemetry-operator/tree/master/deploy/alerts
5.3.1. 在 Prometheus 中创建警报规则 复制链接链接已复制到粘贴板!
Prometheus 评估警报规则来触发通知。如果规则条件返回空结果集,则条件为 false。否则,规则为 true,它会触发警报。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry创建包含警报规则的
PrometheusRule对象。Prometheus Operator 将规则加载到 Prometheus 中:$ oc apply -f - <<EOF apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: creationTimestamp: null labels: prometheus: default role: alert-rules name: prometheus-alarm-rules namespace: service-telemetry spec: groups: - name: ./openstack.rules rules: - alert: Metric Listener down expr: collectd_qpid_router_status < 11 EOF- 1
- 要更改规则,请编辑
expr参数的值。
要验证 Operator 是否将规则加载到 Prometheus 中,请创建一个可访问
curl的 pod:$ oc run curl --generator=run-pod/v1 --image=radial/busyboxplus:curl -i --tty运行
curl命令访问prometheus-operated服务,以返回载入到内存的规则:[ root@curl:/ ]$ curl prometheus-operated:9090/api/v1/rules {"status":"success","data":{"groups":[{"name":"./openstack.rules","file":"/etc/prometheus/rules/prometheus-default-rulefiles-0/service-telemetry-prometheus-alarm-rules.yaml","rules":[{"name":"Metric Listener down","query":"collectd_qpid_router_status \u003c 1","duration":0,"labels":{},"annotations":{},"alerts":[],"health":"ok","type":"alerting"}],"interval":30}]}}要验证输出是否显示加载到
PrometheusRule对象的规则,例如,输出包含定义的./openstack.rules,退出 pod:[ root@curl:/ ]$ exit删除
curlpod 来清理环境:$ oc delete pod curl pod "curl" deleted
5.3.2. 配置自定义警报 复制链接链接已复制到粘贴板!
您可以在您在 第 5.3.1 节 “在 Prometheus 中创建警报规则” 中创建的 PrometheusRule 对象中添加自定义警报。
流程
使用
oc edit命令:$ oc edit prometheusrules prometheus-alarm-rules-
编辑
PrometheusRules清单。 - 保存并关闭清单。
其他资源
- 有关如何配置警报规则的更多信息,请参阅 https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/。
- 有关 PrometheusRules 对象的更多信息,请参阅 https://github.com/coreos/prometheus-operator/blob/master/Documentation/user-guides/alerting.md
5.3.3. 在 Alertmanager 中创建警报路由 复制链接链接已复制到粘贴板!
使用 Alertmanager 向外部系统发送警报,如电子邮件、IRC 或其他通知频道。Prometheus Operator 将 Alertmanager 配置作为 Red Hat OpenShift Container Platform secret 管理。默认情况下,Service Telemetry Framework (STF)部署会导致任何接收器的基本配置:
alertmanager.yaml: |-
global:
resolve_timeout: 5m
route:
group_by: ['job']
group_wait: 30s
group_interval: 5m
repeat_interval: 12h
receiver: 'null'
receivers:
- name: 'null'
要使用 STF 部署自定义 Alertmanager 路由,您必须将 alertmanagerConfigManifest 参数传递给 Service Telemetry Operator,以生成由 Prometheus Operator 管理的更新 secret。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry为您的 STF 部署编辑
ServiceTelemetry对象:$ oc edit stf default添加新参数
alertmanagerConfigManifest和Secret对象内容,以定义 Alertmanager 的alertmanager.yaml配置:注意此步骤加载 Service Telemetry Operator 管理的默认模板。要验证是否正确填充了更改,请更改值,返回
alertmanager-defaultsecret,然后验证新值是否已加载到内存中。例如,将global.resolve_timeout参数的值从5m改为10m。apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: default namespace: service-telemetry spec: backends: metrics: prometheus: enabled: true alertmanagerConfigManifest: | apiVersion: v1 kind: Secret metadata: name: 'alertmanager-default' namespace: 'service-telemetry' type: Opaque stringData: alertmanager.yaml: |- global: resolve_timeout: 10m route: group_by: ['job'] group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: 'null' receivers: - name: 'null'验证配置是否已应用到 secret:
$ oc get secret alertmanager-default -o go-template='{{index .data "alertmanager.yaml" | base64decode }}' global: resolve_timeout: 10m route: group_by: ['job'] group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: 'null' receivers: - name: 'null'要验证配置是否已加载到 Alertmanager 中,请创建一个可访问
curl的 pod:$ oc run curl --generator=run-pod/v1 --image=radial/busyboxplus:curl -i --tty针对
alertmanager-operated服务运行curl,以检索 status 和configYAML内容,并验证所提供的配置是否与 Alertmanager 中的配置匹配:[ root@curl:/ ]$ curl alertmanager-operated:9093/api/v1/status {"status":"success","data":{"configYAML":"global:\n resolve_timeout: 10m\n http_config: {}\n smtp_hello: localhost\n smtp_require_tls: true\n pagerduty_url: https://events.pagerduty.com/v2/enqueue\n hipchat_api_url: https://api.hipchat.com/\n opsgenie_api_url: https://api.opsgenie.com/\n wechat_api_url: https://qyapi.weixin.qq.com/cgi-bin/\n victorops_api_url: https://alert.victorops.com/integrations/generic/20131114/alert/\nroute:\n receiver: \"null\"\n group_by:\n - job\n group_wait: 30s\n group_interval: 5m\n repeat_interval: 12h\nreceivers:\n- name: \"null\"\ntemplates: []\n",...}}-
验证
configYAML字段是否包含您预期的更改。 退出 pod:
[ root@curl:/ ]$ exit要清理环境,请删除
curlpod:$ oc delete pod curl pod "curl" deleted
其他资源
- 有关 Red Hat OpenShift Container Platform secret 和 Prometheus operator 的更多信息,请参阅 Alerting。
5.4. 配置 SNMP 陷阱 复制链接链接已复制到粘贴板!
您可以将服务遥测框架(STF)与通过 SNMP 陷阱接收通知的现有基础架构监控平台集成。要启用 SNMP 陷阱,修改 ServiceTelemetry 对象并配置 snmpTraps 参数。
有关配置警报的详情请参考 第 5.3 节 “Service Telemetry Framework 中的警报”。
前提条件
- 了解您要发送警报的 SNMP 陷阱接收器的 IP 地址或主机名
流程
要启用 SNMP 陷阱,修改
ServiceTelemetry对象:$ oc edit stf default设置 alert
.alertmanager.receivers.snmpTraps参数:apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry ... spec: ... alerting: alertmanager: receivers: snmpTraps: enabled: true target: 10.10.10.10-
确保将
target值设置为 SNMP 陷阱接收器的 IP 地址或主机名。
5.5. 高可用性 复制链接链接已复制到粘贴板!
借助高可用性,服务遥测框架(STF)可以从组件服务中的故障快速恢复。虽然 Red Hat OpenShift Container Platform 会在节点可用时重启一个失败的 pod,但这个恢复过程可能需要一分钟以上的时间,其中事件和指标会丢失。高可用性配置包含 STF 组件的多个副本,可将恢复时间缩短为大约 2 秒。为了防止出现 Red Hat OpenShift Container Platform 节点故障,请将 STF 部署到具有三个或更多节点的 Red Hat OpenShift Container Platform 集群。
STF 尚未是一个完全容错的系统。在恢复期间,无法保证提供指标和事件。
启用高可用性有以下影响:
- 三个 ElasticSearch pod 运行而不是默认的 pod。
以下组件运行两个 pod,而不是默认 pod:
- AMQ Interconnect
- Alertmanager
- Prometheus
- 事件智能网关
- 指标智能网关
- 在这些服务中丢失的 pod 恢复时间会减少到大约 2 秒。
5.5.1. 配置高可用性 复制链接链接已复制到粘贴板!
要配置服务 Telemetry Framework (STF)以实现高可用性,请在 Red Hat OpenShift Container Platform 中的 ServiceTelemetry 对象中添加 highAvailability.enabled: true。您可在安装时设置此参数;或者,如果您已经部署了 STF,请完成以下步骤:
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry使用 oc 命令编辑 ServiceTelemetry 对象:
$ oc edit stf default在
spec部分添加highAvailability.enabled: true:apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry ... spec: ... highAvailability: enabled: true- 保存您的更改,并关闭对象。
5.6. 临时存储 复制链接链接已复制到粘贴板!
您可以使用临时存储来运行服务 Telemetry Framework (STF),而无需将数据存储在 Red Hat OpenShift Container Platform 集群中。
如果使用临时存储,当 pod 重启、更新或重新调度到另一个节点上时,可能会遇到数据丢失。仅对开发或测试使用临时存储,而不适用于生产环境。
5.6.1. 配置临时存储 复制链接链接已复制到粘贴板!
要为临时存储配置 STF 组件,请将 ...storage.strategy: ephemeral 添加到对应的参数。例如,要为 Prometheus 后端启用临时存储,请设置 backends.metrics.prometheus.storage.strategy: ephemeral。支持临时存储配置的组件包括 alert. alertmanager、 和 backends. metrics.prometheusbackends.events.elasticsearch。您可以在安装时添加临时存储配置,或者已部署了 STF,请完成以下步骤:
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry编辑 ServiceTelemetry 对象:
$ oc edit stf default将
...storage.strategy: ephemeral参数添加到相关组件的spec部分:apiVersion: infra.watch/v1beta1 kind: ServiceTelemetry metadata: name: stf-default namespace: service-telemetry spec: alerting: enabled: true alertmanager: storage: strategy: ephemeral backends: metrics: prometheus: enabled: true storage: strategy: ephemeral events: elasticsearch: enabled: true storage: strategy: ephemeral- 保存您的更改,并关闭对象。
5.7. 在 Red Hat OpenShift Container Platform 中创建路由 复制链接链接已复制到粘贴板!
在 Red Hat OpenShift Container Platform 中,您可以通过路由向外部网络公开应用程序。如需更多信息,请参阅配置 ingress 集群流量。
在 Service Telemetry Framework (STF)中,路由默认不公开,以限制 STF 部署攻击面。要访问在 STF 中部署的某些服务,您必须在 Red Hat OpenShift Container Platform 中公开服务以供访问。
STF 中公开的常用服务是 Prometheus,如下例所示:
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry列出
service-telemetry项目中可用的服务:$ oc get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE alertmanager-operated ClusterIP None <none> 9093/TCP,9094/TCP,9094/UDP 93m default-cloud1-ceil-meter-smartgateway ClusterIP 172.30.114.195 <none> 8081/TCP 93m default-cloud1-coll-meter-smartgateway ClusterIP 172.30.133.180 <none> 8081/TCP 93m default-interconnect ClusterIP 172.30.3.241 <none> 5672/TCP,8672/TCP,55671/TCP,5671/TCP,5673/TCP 93m ibm-auditlogging-operator-metrics ClusterIP 172.30.216.249 <none> 8383/TCP,8686/TCP 11h prometheus-operated ClusterIP None <none> 9090/TCP 93m service-telemetry-operator-metrics ClusterIP 172.30.11.66 <none> 8383/TCP,8686/TCP 11h smart-gateway-operator-metrics ClusterIP 172.30.145.199 <none> 8383/TCP,8686/TCP 11h-
记录您要公开为路由的端口和服务名称,如 service
prometheus-operated和端口9090。 将
prometheus-operated服务公开为边缘路由,并将不安全的流量重定向到端口9090的安全端点:$ oc create route edge metrics-store --service=prometheus-operated --insecure-policy="Redirect" --port=9090 route.route.openshift.io/metrics-store created要验证并查找路由公开的外部 DNS,请使用
oc get route命令:$ oc get route metrics-store -ogo-template='{{.spec.host}}' metrics-store-service-telemetry.apps.infra.watchprometheus-operated服务现在包括在公开的 DNS 地址中,例如 https://metrics-store-service-telemetry.apps.infra.watch注意路由的地址必须可以被解析,配置是特定于环境的。
其他资源
- 有关 Red Hat OpenShift Container Platform 网络的更多信息,请参阅了解网络
- 有关路由配置的更多信息,请参阅路由配置
- 有关集群流量的更多信息,请参阅配置集群流量概述
第 6 章 将服务 Telemetry Framework 升级到 1.4 复制链接链接已复制到粘贴板!
要从 Service Telemetry Framework (STF) v1.3 迁移到 STF v1.4,您必须在 Red Hat OpenShift Container Platform 环境上的 service-telemetry 命名空间中替换 ClusterServiceVersion 和 Subscription 对象。
前提条件
- 您已将 Red Hat OpenShift Container Platform 环境升级到 v4.8。在 Red Hat OpenShift Container Platform 低于 v4.8 时,STF v1.4 不在 Red Hat OpenShift Container Platform 上运行。
-
已备份了数据。将 STF v1.3 升级到 v1.4 时,在智能网关和其他组件更新时会导致短暂停机。另外,在替换 Operator 时,对
ServiceTelemetry和SmartGateway对象的更改不会有任何影响。
要从 STF v1.3 升级到 v1.4,请完成以下步骤:
6.1. 删除 STF 1.3 智能网关 Operator 复制链接链接已复制到粘贴板!
从 STF 1.3 中删除 Smart Gateway Operator。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry检索 Smart Gateway Operator
的订阅名称。如果与 default 命名空间不同,选择器中的service-telemetry替换为托管 STF 实例的命名空间。验证只返回一个订阅:$ oc get sub --selector=operators.coreos.com/smart-gateway-operator.service-telemetry NAME PACKAGE SOURCE CHANNEL smart-gateway-operator-stable-1.3-redhat-operators-openshift-marketplace smart-gateway-operator redhat-operators stable-1.3删除 Smart Gateway Operator 订阅:
$ oc delete sub --selector=operators.coreos.com/smart-gateway-operator.service-telemetry subscription.operators.coreos.com "smart-gateway-operator-stable-1.3-redhat-operators-openshift-marketplace" deleted检索 Smart Gateway Operator ClusterServiceVersion,并验证是否只返回一个 ClusterServiceVersion:
$ oc get csv --selector=operators.coreos.com/smart-gateway-operator.service-telemetry NAME DISPLAY VERSION REPLACES PHASE smart-gateway-operator.v3.0.1635451893 Smart Gateway Operator 3.0.1635451893 Succeeded删除 Smart Gateway Operator ClusterServiceVersion:
$ oc delete csv --selector=operators.coreos.com/smart-gateway-operator.service-telemetry clusterserviceversion.operators.coreos.com "smart-gateway-operator.v3.0.1635451893" deleted删除 SmartGateway 自定义资源定义(CRD)。删除 CRD 后,在升级完成前不会将数据流到 STF,并且会重新修改智能网关实例:
$ oc delete crd smartgateways.smartgateway.infra.watch customresourcedefinition.apiextensions.k8s.io "smartgateways.smartgateway.infra.watch" deleted
6.2. 将 Service Telemetry Operator 更新至 1.4 复制链接链接已复制到粘贴板!
您必须将管理 STF 实例的服务 Telemetry Operator 的订阅频道改为 stable-1.4 频道。
流程
- 登录 Red Hat OpenShift Container Platform。
进入
service-telemetry命名空间:$ oc project service-telemetry对 Service Telemetry Operator 订阅进行补丁以使用 stable-1.4 频道。如果与 default 命名空间不同,选择器中的
service-telemetry替换为托管 STF 实例的命名空间:$ oc patch $(oc get sub --selector=operators.coreos.com/service-telemetry-operator.service-telemetry -oname) --patch $'spec:\n channel: stable-1.4' --type=merge subscription.operators.coreos.com/service-telemetry-operator patched监控
oc get csv命令的输出,直到安装了 Smart Gateway Operator,并且 Service Telemetry Operator 在更新阶段移动。当阶段变为Succeeded时,Service Telemetry Operator 已完成更新:$ watch -n5 oc get csv NAME DISPLAY VERSION REPLACES PHASE amq7-cert-manager.v1.0.3 Red Hat Integration - AMQ Certificate Manager 1.0.3 amq7-cert-manager.v1.0.2 Succeeded amq7-interconnect-operator.v1.10.5 Red Hat Integration - AMQ Interconnect 1.10.5 amq7-interconnect-operator.v1.10.4 Succeeded elasticsearch-eck-operator-certified.1.9.1 Elasticsearch (ECK) Operator 1.9.1 Succeeded prometheusoperator.0.47.0 Prometheus Operator 0.47.0 prometheusoperator.0.37.0 Succeeded service-telemetry-operator.v1.4.1641504218 Service Telemetry Operator 1.4.1641504218 service-telemetry-operator.v1.3.1635451892 Succeeded smart-gateway-operator.v4.0.1641504216 Smart Gateway Operator 4.0.1641504216 Succeeded验证所有 Pod 是否都就绪并在运行。您的环境可能与以下示例输出不同:
$ oc get pods NAME READY STATUS RESTARTS AGE alertmanager-default-0 3/3 Running 0 162m default-cloud1-ceil-event-smartgateway-5599bcfc9d-wp48n 2/2 Running 1 160m default-cloud1-ceil-meter-smartgateway-c8fdf579c-955kt 3/3 Running 0 160m default-cloud1-coll-event-smartgateway-97b54b7dc-5zz2v 2/2 Running 0 159m default-cloud1-coll-meter-smartgateway-774b9988b8-wb5vd 3/3 Running 0 160m default-cloud1-sens-meter-smartgateway-b98966fbf-rnqwf 3/3 Running 0 159m default-interconnect-675dd97bc4-dcrzk 1/1 Running 0 171m default-snmp-webhook-7854d4889d-wgmgg 1/1 Running 0 171m elastic-operator-c54ff8cc-jcg8d 1/1 Running 6 3h55m elasticsearch-es-default-0 1/1 Running 0 160m interconnect-operator-6bf74c4ffb-hkmbq 1/1 Running 0 3h54m prometheus-default-0 3/3 Running 1 160m prometheus-operator-fc64987d-f7gx4 1/1 Running 0 3h54m service-telemetry-operator-68d888f767-s5kzh 1/1 Running 0 163m smart-gateway-operator-584df7959-llxgl 1/1 Running 0 163m
第 7 章 collectd 插件 复制链接链接已复制到粘贴板!
红帽目前正在本指南中更新本发行版本的插件信息。
您可以根据 Red Hat OpenStack Platform (RHOSP) 13 环境配置多个 collectd 插件。
以下插件列表显示了可设置为覆盖默认值的可用 heat 模板 ExtraConfig 参数。每个部分都提供 ExtraConfig 选项的一般配置名称。例如,如果存在一个名为 example_plugin 的 collectd 插件,则插件标题的格式是 collectd::plugin::example_plugin。
请参考特定插件的可用参数表,如下例所示:
ExtraConfig:
collectd::plugin::example_plugin::<parameter>: <value>
引用 Prometheus 或 Grafana 查询的特定插件的指标表。
collectd::plugin::aggregation
您可以使用 聚合 插件将多个值聚合到一起。使用聚合函数,如 sum、average、min 和 max 来计算指标,如平均和 CPU 统计。
- collectd::plugin::aggregation::aggregators
- collectd::plugin::aggregation::interval
collectd::plugin::ampq
collectd::plugin::amqp1
使用 amqp1 插件将值写入 amqp1 消息总线,例如 AMQ Interconnect。
| 参数 | 类型 |
|---|---|
| manage_package | 布尔值 |
| 传输 | 字符串 |
| 主机 | 字符串 |
| port | 整数 |
| user | 字符串 |
| password | 字符串 |
| address | 字符串 |
| 实例 | hash |
| retry_delay | 整数 |
| send_queue_limit | 整数 |
| interval | 整数 |
配置示例:
Parameter_defaults:
CollectdExtraPlugins:
- amqp1
ExtraConfig:
collectd::plugin::amqp1::send_queue_limit: 50
collectd::plugin::apache
使用 apache 插件收集 Apache 数据。
| 参数 | 类型 |
|---|---|
| 实例 | hash |
| interval | 整数 |
| manage-package | 布尔值 |
| package_install_options | list |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::apache:
localhost:
url: "http://10.0.0.111/status?auto"
其他资源
有关配置 apache 插件的更多信息,请参阅 apache。
collectd::plugin::battery
使用 battery 插件报告笔记本电脑的剩余容量、能力或自愿。
| 参数 | 类型 |
|---|---|
| values_percentage | 布尔值 |
| report_degraded | 布尔值 |
| query_state_fs | 布尔值 |
| interval | 整数 |
其他资源
有关配置 btery 插件 的更多信息,请参阅 battery。
collectd::plugin::bind
使用 bind 插件检索与 DNS 服务器查询和响应相关的编码统计。插件将值提交到 collectd。
collectd::plugin::ceph
使用 ceph 插件从 ceph 守护进程收集数据。
| 参数 | 类型 |
|---|---|
| Daemon | 数组 |
| longrunavglatency | 布尔值 |
| convertspecialmetrictypes | 布尔值 |
| manage_package | 布尔值 |
| package_name | 字符串 |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::ceph::daemons:
- ceph-osd.0
- ceph-osd.1
- ceph-osd.2
- ceph-osd.3
- ceph-osd.4
如果 Object Storage Daemon (OSD)不在每个节点中,您必须列出 OSD。
当您部署 collectd 时,ceph 插件添加到 Ceph 节点。不要将 Ceph 节点上的 ceph 插件添加到 CollectdExtraPlugins,因为这会导致部署失败。
其他资源
有关配置 ceph 插件的更多信息,请参阅 ceph。
collectd::plugins::cgroups
使用 cgroup 插件收集 cgroup 中进程的信息。
| 参数 | 类型 |
|---|---|
| ignore_selected | 布尔值 |
| interval | 整数 |
| Cgroups | list |
其他资源
有关配置 cgroups 插件的更多信息,请参阅 cgroups。
collectd::plugin::connectivity
使用 connectivity 插件监控网络接口的状态。
如果没有列出接口,则默认监控所有接口。
| 参数 | 类型 |
|---|---|
| interfaces | 数组 |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::connectivity::interfaces:
- eth0
- eth1
其他资源
有关配置连接插件的更多信息,请参阅 连接 。
collectd::plugin::conntrack
使用 conntrack 插件跟踪 Linux 连接跟踪表中的条目数。此插件没有参数。
collectd::plugin::contextswitch
使用 ContextSwitch 插件收集系统处理的上下文切换数。
其他资源
有关配置 contextswitch 插件的更多信息,请参阅 contextswitch。
collectd::plugin::cpu
使用 cpu 插件监控 CPU 在各种状态花费的时间,如空闲、执行用户代码、执行系统代码、等待 IO-operations 和其他状态。
cpu 插件收集 _jiffies_,而不是百分比值。jiffy 的值取决于您的硬件平台的时钟频率,因此不是一个绝对的时间间隔单位。
要报告百分比值,请将布尔值参数 reportbycpu 和 reportbystate 设置为 true,然后将布尔值 值percentage 设置为 true。
| 名称 | Description | 查询 |
|---|---|---|
| idle | 空闲时间量 | collectd_cpu_total{…,type_instance=idle} |
| interrupt | 由中断阻止的 CPU | collectd_cpu_total{…,type_instance=interrupt} |
| nice | 运行低优先级进程的时间 | collectd_cpu_total{…,type_instance=nice} |
| softirq | 保留中断请求所花费的周期数量 | collectd_cpu_total{…,type_instance=waitirq} |
| steal | 虚拟 CPU 等待实际 CPU 的时间百分比,而虚拟机监控程序为另一个虚拟处理器提供服务 | collectd_cpu_total{…,type_instance=steal} |
| system | 系统级别花费的时间(内核) | collectd_cpu_total{…,type_instance=system} |
| user | 用户进程使用的差异 | collectd_cpu_total{…,type_instance=user} |
| wait | CPU 在未完成的 I/O 请求时等待 | collectd_cpu_total{…,type_instance=wait} |
| 参数 | 类型 |
|---|---|
| reportbystate | 布尔值 |
| valuespercentage | 布尔值 |
| reportbycpu | 布尔值 |
| reportnumcpu | 布尔值 |
| reportgueststate | 布尔值 |
| subtractgueststate | 布尔值 |
| interval | 整数 |
配置示例:
parameter_defaults:
CollectdExtraPlugins:
- cpu
ExtraConfig:
collectd::plugin::cpu::reportbystate: true
其他资源
有关配置 cpu 插件的更多信息,请参阅 cpu。
collectd::plugin::cpufreq
- None
collectd::plugin::cpusleep
collectd::plugin::csv
- collectd::plugin::csv::datadir
- collectd::plugin::csv::storerates
- collectd::plugin::csv::interval
collectd::plugin::curl_json
collectd::plugin::curl
collectd::plugin::curl_xml
collectd::plugin::dbi
collectd::plugin::df
使用 df 插件收集文件系统的磁盘空间使用信息。
| 名称 | Description | 查询 |
|---|---|---|
| free | 可用磁盘空间量 | collectd_df_df_complex{…, type_instance="free"} |
| 保留 | 保留磁盘空间量 | collectd_df_df_complex{…, type_instance="reserved"} |
| 使用的 | 已用磁盘空间量 | collectd_df_df_complex{…, type_instance="used"} |
| 参数 | 类型 |
|---|---|
| devices | 数组 |
| fstypes | 数组 |
| ignoreselected | 布尔值 |
| 挂载点 | 数组 |
| reportbydevice | 布尔值 |
| reportinodes | 布尔值 |
| reportreserved | 布尔值 |
| valuesabsolute | 布尔值 |
| valuespercentage | 布尔值 |
配置示例:
parameter_defaults:
CollectdExtraPlugins:
- df
ExtraConfig:
collectd::plugin::df::FStype: "ext4"
其他资源
有关配置 df 插件的更多信息,请参阅 df。
collectd::plugin::disk
使用 disk 插件收集硬盘的性能统计信息,如果支持,则需使用分区。此插件默认为启用。
| 参数 | 类型 |
|---|---|
| disks | 数组 |
| ignoreselected | 布尔值 |
| udevnameattr | 字符串 |
| 名称 | Description |
|---|---|
| 合并 | 可以合并在一起的操作数量已经排队,例如,一个物理磁盘访问服务两个或多个逻辑操作。 |
| time | I/O 合作完成的平均时间。该值可能不是完全准确的。 |
| io_time | 进行 I/O (ms)的时间。您可以使用此指标作为设备负载百分比。值 1 秒匹配 100% 的负载。 |
| weighted_io_time | 测量 I/O 完成时间和可能积累的积压。 |
| pending_operations | 显示待处理 I/O 操作的队列大小。 |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::disk::disk: "sda"
collectd::plugin::disk::ignoreselected: false
其他资源
有关配置磁盘插件的更多信息,请参阅 磁盘 。
collectd::plugin::dns
collectd::plugin::dpdk_telemetry
collectd::plugin::entropy
- collectd::plugin::entropy::interval
collectd::plugin::ethstat
- collectd::plugin::ethstat::interfaces
- collectd::plugin::ethstat::maps
- collectd::plugin::ethstat::mappedonly
- collectd::plugin::ethstat::interval
collectd::plugin::exec
- collectd::plugin::exec::commands
- collectd::plugin::exec::commands_defaults
- collectd::plugin::exec::globals
- collectd::plugin::exec::interval
collectd::plugin::fhcount
- collectd::plugin::fhcount::valuesabsolute
- collectd::plugin::fhcount::valuespercentage
- collectd::plugin::fhcount::interval
collectd::plugin::filecount
- collectd::plugin::filecount::directories
- collectd::plugin::filecount::interval
collectd::plugin::fscache
- None
collectd-hddtemp
- collectd::plugin::hddtemp::host
- collectd::plugin::hddtemp::port
- collectd::plugin::hddtemp::interval
collectd::plugin::hugepages
使用 hugepages 插件收集巨页信息。此插件默认为启用。
| 参数 | 类型 | 默认值 |
|---|---|---|
| report_per_node_hp | 布尔值 | true |
| report_root_hp | 布尔值 | true |
| values_pages | 布尔值 | true |
| values_bytes | 布尔值 | false |
| values_percentage | 布尔值 | false |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::hugepages::values_percentage: true
其他资源
-
有关配置
巨页插件的更多信息,请参阅 大页。
collectd::plugin::intel_rdt
collectd::plugin::interface
使用 interface 插件来测量 octets 中的接口流量,每秒数据包每秒和错误率。此插件默认为启用。
| 参数 | 类型 |
|---|---|
| 默认 | interfaces |
| 数组 | [] |
| ignoreselected | 布尔值 |
| false | reportinactive |
| 布尔值 | true |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::interface::interfaces:
- lo
collectd::plugin::interface::ignoreselected: true
其他资源
-
有关配置
接口插件的更多信息,请参阅 接口。
collectd::plugin::ipc
- None
collectd::plugin::ipmi
- collectd::plugin::ipmi::ignore_selected
- collectd::plugin::ipmi::notify_sensor_add
- collectd::plugin::ipmi::notify_sensor_remove
- collectd::plugin::ipmi::notify_sensor_not_present
- collectd::plugin::ipmi::sensors
- collectd::plugin::ipmi::interval
collectd::plugin::iptables
collectd::plugin::irq
- collectd::plugin::irq::irqs
- collectd::plugin::irq::ignoreselected
- collectd::plugin::irq::interval
collectd::plugin::load
使用 load 插件收集系统负载以及系统使用的概览。此插件默认为启用。
| 参数 | 类型 |
|---|---|
| report_relative | 布尔值 |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::load::report_relative: false
其他资源
-
有关配置
load插件的更多信息,请参阅 加载。
collectd::plugin::logfile
- collectd::plugin::logfile::log_level
- collectd::plugin::logfile::log_file
- collectd::plugin::logfile::log_timestamp
- collectd::plugin::logfile::print_severity
- collectd::plugin::logfile::interval
collectd::plugin::log_logstash
collectd::plugin::madwifi
collectd::plugin::match_empty_counter
collectd::plugin::match_hashed
collectd::plugin::match_regex
collectd::plugin::match_timediff
collectd::plugin::match_value
collectd::plugin::mbmon
collectd::plugin::mcelog
使用 mcelog 插件,在出现时发送通知和与机器检查例外相关的统计信息。将 mcelog 配置为以守护进程模式运行并启用日志记录功能。
| 参数 | 类型 |
|---|---|
| Mcelogfile | 字符串 |
| 内存 | hash { mcelogclientsocket[string], persistentnotification[boolean] } |
配置示例:
parameter_defaults:
CollectdExtraPlugins: mcelog
CollectdEnableMcelog: true
其他资源
-
有关配置
mcelog插件的更多信息,请参阅 mcelog。
collectd::plugin::md
collectd::plugin::memcachec
collectd::plugin::memcached
- collectd::plugin::memcached::instances
- collectd::plugin::memcached::interval
collectd::plugin::memory
内存 插件提供有关系统内存的信息。此插件默认为启用。
| 参数 | 类型 |
|---|---|
| valuesabsolute | 布尔值 |
| valuespercentage | 布尔值 |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::memory::valuesabsolute: true
collectd::plugin::memory::valuespercentage: false
其他资源
-
有关配置
内存插件的更多信息,请参阅 内存。
collectd::plugin::multimeter
collectd::plugin::mysql
- collectd::plugin::mysql::interval
collectd::plugin::netlink
- collectd::plugin::netlink::interfaces
- collectd::plugin::netlink::verboseinterfaces
- collectd::plugin::netlink::qdiscs
- collectd::plugin::netlink::classes
- collectd::plugin::netlink::filters
- collectd::plugin::netlink::ignoreselected
- collectd::plugin::netlink::interval
collectd::plugin::network
- collectd::plugin::network::timetolive
- collectd::plugin::network::maxpacketsize
- collectd::plugin::network::forward
- collectd::plugin::network::reportstats
- collectd::plugin::network::listeners
- collectd::plugin::network::servers
- collectd::plugin::network::interval
collectd::plugin::nfs
- collectd::plugin::nfs::interval
collectd::plugin::notify_nagios
collectd::plugin::ntpd
- collectd::plugin::ntpd::host
- collectd::plugin::ntpd::port
- collectd::plugin::ntpd::reverselookups
- collectd::plugin::ntpd::includeunitid
- collectd::plugin::ntpd::interval
collectd::plugin::numa
- None
collectd::plugin::olsrd
collectd::plugin::openldap
collectd::plugin::openvpn
- collectd::plugin::openvpn::statusfile
- collectd::plugin::openvpn::improvednamingschema
- collectd::plugin::openvpn::collectcompression
- collectd::plugin::openvpn::collectindividualusers
- collectd::plugin::openvpn::collectusercount
- collectd::plugin::openvpn::interval
collectd::plugin::ovs_stats
使用 ovs_stats 插件收集 OVS 连接接口的统计信息。ovs_stats 插件使用 OVSDB 管理协议(RFC7047)监控机制从 OVSDB 获取统计信息。
| 参数 | 类型 |
|---|---|
| address | 字符串 |
| Bridge | list |
| port | 整数 |
| socket | 字符串 |
配置示例:
以下示例演示了如何启用 ovs_stats 插件。如果使用 OVS 部署 overcloud,则不需要启用 ovs_stats 插件。
parameter_defaults:
CollectdExtraPlugins:
- ovs_stats
ExtraConfig:
collectd::plugin::ovs_stats::socket: '/run/openvswitch/db.sock'
其他资源
-
有关配置
ovs_stats插件的更多信息,请参阅 ovs_stats。
collectd::plugin::pcie_errors
使用 pcie_errors 插件将 PCI 配置空间轮询为 baseline 和 Advanced Error Reporting (AER)错误,并解析 AER 事件的 syslog。通过通知报告错误。
| 参数 | 类型 |
|---|---|
| source | enum (sysfs、proc) |
| access | 字符串 |
| 报告掩码 | 布尔值 |
| persistent_notifications | 布尔值 |
配置示例:
parameter_defaults:
CollectdExtraPlugins:
- pcie_errors
其他资源
-
有关配置
pcie_errors插件的更多信息,请参阅 pcie_errors。
collectd::plugin::ping
- collectd::plugin::ping::hosts
- collectd::plugin::ping::timeout
- collectd::plugin::ping::ttl
- collectd::plugin::ping::source_address
- collectd::plugin::ping::device
- collectd::plugin::ping::max_missed
- collectd::plugin::ping::size
- collectd::plugin::ping::interval
collectd::plugin::powerdns
- collectd::plugin::powerdns::interval
- collectd::plugin::powerdns::servers
- collectd::plugin::powerdns::recursors
- collectd::plugin::powerdns::local_socket
- collectd::plugin::powerdns::interval
collectd::plugin::processes
进程插件 提供有关系统进程的信息。此插件默认为启用。
| 参数 | 类型 |
|---|---|
| 进程 | 数组 |
| process_matches | 数组 |
| collect_context_switch | 布尔值 |
| collect_file_descriptor | 布尔值 |
| collect_memory_maps | 布尔值 |
其他资源
-
有关配置进程插件的更多信息,请参阅
进程。https://collectd.org/documentation/manpages/collectd.conf.5.shtml#plugin_processes
collectd::plugin::protocols
- collectd::plugin::protocols::ignoreselected
- collectd::plugin::protocols::values
collectd::plugin::python
collectd::plugin::sensors
collectd::plugin::serial
collectd::plugin::smart
- collectd::plugin::smart::disks
- collectd::plugin::smart::ignoreselected
- collectd::plugin::smart::interval
collectd::plugin::snmp
collectd::plugin::snmp_agent
使用 snmp_agent 插件作为 SNMP 子代理,将 collectd 指标映射到相关的 OID。snmp 代理还需要一个正在运行的 snmpd 服务。
配置示例:
parameter_defaults:
CollectdExtraPlugins:
snmp_agent
resource_registry:
OS::TripleO::Services::Snmp: /usr/share/openstack-tripleo-heat-
templates/deployment/snmp/snmp-baremetal-puppet.yaml
其他资源:
有关如何配置 snmp_agent 的更多信息,请参阅 snmp_agent。
collectd::plugin::statsd
- collectd::plugin::statsd::host
- collectd::plugin::statsd::port
- collectd::plugin::statsd::deletecounters
- collectd::plugin::statsd::deletetimers
- collectd::plugin::statsd::deletegauges
- collectd::plugin::statsd::deletesets
- collectd::plugin::statsd::countersum
- collectd::plugin::statsd::timerpercentile
- collectd::plugin::statsd::timerlower
- collectd::plugin::statsd::timerupper
- collectd::plugin::statsd::timersum
- collectd::plugin::statsd::timercount
- collectd::plugin::statsd::interval
collectd::plugin::swap
- collectd::plugin::swap::reportbydevice
- collectd::plugin::swap::reportbytes
- collectd::plugin::swap::valuesabsolute
- collectd::plugin::swap::valuespercentage
- collectd::plugin::swap::reportio
- collectd::plugin::swap::interval
collectd::plugin::sysevent
collectd::plugin::syslog
- collectd::plugin::syslog::log_level
- collectd::plugin::syslog::notify_level
- collectd::plugin::syslog::interval
collectd::plugin::table
- collectd::plugin::table::tables
- collectd::plugin::table::interval
collectd::plugin::tail
- collectd::plugin::tail::files
- collectd::plugin::tail::interval
collectd::plugin::tail_csv
- collectd::plugin::tail_csv::metrics
- collectd::plugin::tail_csv::files
collectd::plugin::target_notification
collectd::plugin::target_replace
collectd::plugin::target_scale
collectd::plugin::target_set
collectd::plugin::target_v5upgrade
collectd::plugin::tcpconns
- collectd::plugin::tcpconns::localports
- collectd::plugin::tcpconns::remoteports
- collectd::plugin::tcpconns::listening
- collectd::plugin::tcpconns::allportssummary
- collectd::plugin::tcpconns::interval
collectd::plugin::ted
collectd::plugin::thermal
- collectd::plugin::thermal::devices
- collectd::plugin::thermal::ignoreselected
- collectd::plugin::thermal::interval
collectd::plugin::threshold
- collectd::plugin::threshold::types
- collectd::plugin::threshold::plugins
- collectd::plugin::threshold::hosts
- collectd::plugin::threshold::interval
collectd::plugin::turbostat
- collectd::plugin::turbostat::core_c_states
- collectd::plugin::turbostat::package_c_states
- collectd::plugin::turbostat::system_management_interrupt
- collectd::plugin::turbostat::digital_temperature_sensor
- collectd::plugin::turbostat::tcc_activation_temp
- collectd::plugin::turbostat::running_average_power_limit
- collectd::plugin::turbostat::logical_core_names
collectd::plugin::unixsock
collectd::plugin::uptime
- collectd::plugin::uptime::interval
collectd::plugin::users
- collectd::plugin::users::interval
collectd::plugin::uuid
- collectd::plugin::uuid::uuid_file
- collectd::plugin::uuid::interval
collectd::plugin::virt
使用 virt 插件通过 libvirt API 在主机上为虚拟机收集 CPU、磁盘、网络负载和其他指标。
| 参数 | 类型 |
|---|---|
| 连接 | 字符串 |
| refresh_interval | hash |
| domain | 字符串 |
| block_device | 字符串 |
| interface_device | 字符串 |
| ignore_selected | 布尔值 |
| plugin_instance_format | 字符串 |
| hostname_format | 字符串 |
| interface_format | 字符串 |
| extra_stats | 字符串 |
配置示例:
ExtraConfig:
collectd::plugin::virt::plugin_instance_format: name
其他资源
有关配置 virt 插件的更多信息,请参阅 virt。
collectd::plugin::vmem
- collectd::plugin::vmem::verbose
- collectd::plugin::vmem::interval
collectd::plugin::vserver
collectd::plugin::wireless
collectd::plugin::write_graphite
- collectd::plugin::write_graphite::carbons
- collectd::plugin::write_graphite::carbon_defaults
- collectd::plugin::write_graphite::globals
collectd::plugin::write_http
使用 write_http 输出插件,使用带有 JSON 的 POST 请求和编码指标,或使用 PUTVAL 命令向 HTTP 服务器提交值。
| 参数 | 类型 |
|---|---|
| 确保 | enum[present,absent] |
| 节点 | hash[String, Hash[String, Scalar]] |
| urls | hash[String, Hash[String, Scalar]] |
| manage_package | 布尔值 |
配置示例:
parameter_defaults:
CollectdExtraPlugins:
- write_http
ExtraConfig:
collectd::plugin::write_http::nodes:
collectd:
url: “http://collectd.tld.org/collectd”
metrics: true
header: “X-Custom-Header: custom_value"
其他资源
-
有关配置
write_http插件的更多信息,请参阅 write_http。
collectd::plugin::write_kafka
使用 write_kafka 插件将值发送到 Kafka 主题。使用一个或多个主题块配置 write_kafka 插件。对于每个主题块,您必须指定一个唯一名称和一个 Kafka producer。您可以使用主题块中的以下每主题参数:
| 参数 | 类型 |
|---|---|
| kafka_hosts | 数组[String] |
| kafka_port | 整数 |
| 主题 | hash |
| 属性 | hash |
| meta | hash |
配置示例:
parameter_defaults:
CollectdExtraPlugins:
- write_kafka
ExtraConfig:
collectd::plugin::write_kafka::kafka_hosts:
- nodeA
- nodeB
collectd::plugin::write_kafka::topics:
some_events:
format: JSON
其他资源:
有关如何配置 write_kafka 插件的更多信息,请参阅 write_kafka。
collectd::plugin::write_log
- collectd::plugin::write_log::format
collectd::plugin::zfs_arc
- None