操作测量
第 1 章 操作测量简介 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenStack Platform (RHOSP)环境中的 Telemetry 服务的组件来跟踪物理和虚拟资源,并使用存储在 Gnocchi 后端上聚合的数据收集守护进程收集指标,如存储在 Gnocchi 后端上的聚合。
您可以使用可用性和性能监控工具来测量和维护 RHOSP 环境。这些工具执行以下功能:
- 可用性监控
- 监控 RHOSP 环境中的所有组件,并确定任何组件当前是否遇到中断或无法正常工作。您还可以将系统配置为在发现问题时提醒您。
- 性能监控
- 定期收集系统信息,并提供使用数据收集守护进程存储和监控值的机制。此守护进程存储它收集的数据,如操作系统和日志文件。它还通过网络提供数据。您可以使用从数据收集的统计数据来监控系统,查找性能瓶颈,并预测将来的系统负载。
1.1. 遥测架构 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform (RHOSP) Telemetry 为基于 OpenStack 的云提供用户级使用情况数据。您可以将数据用于客户计费、系统监控或警报。您可以配置 Telemetry 组件,以从现有 RHOSP 组件发送的通知中收集数据,如计算使用事件,或轮询 RHOSP 基础架构资源,如 libvirt。Telemetry 将收集的数据发布到包括数据存储和消息队列等不同目标。
Telemetry 由以下组件组成:
- 数据收集 :Telemetry 使用 Ceilometer 收集指标和事件数据。如需更多信息,请参阅 第 1.2.1 节 “ceilometer”。
- Storage: Telemetry 将指标数据存储在 Gnocchi 中。如需更多信息,请参阅 第 1.3 节 “使用 Gnocchi 的存储”。
- 警报服务:Telemetry 使用 Alarming 服务 (Aodh) 根据定义了的规则针对 sVirt 收集的指标或事件数据触发操作。
在收集数据后,您可以使用第三方工具来显示和分析指标数据,您可以使用 Alarming 服务为事件配置警报。
图 1.1. 遥测架构
1.1.1. 监控组件的支持状态 复制链接链接已复制到粘贴板!
使用此表查看 Red Hat OpenStack Platform (RHOSP)中监控组件的支持状态。
| 组件 | 完全支持自 | 弃用于 | 删除自 | 备注 |
|---|---|---|---|---|
| aodh | RHOSP 9 | RHOSP 15 | 支持自动扩展用例。 | |
| ceilometer | RHOSP 4 | 在自动扩展和服务 Telemetry Framework (STF)用例中支持 RHOSP 的指标和事件集合。 | ||
| collectd | RHOSP 11 | RHOSP 17.1 | 支持 STF 的基础架构指标集合。 | |
| Gnocchi | RHOSP 9 | RHOSP 15 | 支持为自动扩展用例存储指标。 | |
| panko | RHOSP 11 | RHOSP 12,自 RHOSP 14 起不默认安装 | RHOSP 17.0 | |
| QDR | RHOSP 13 | RHOSP 17.1 | 支持将指标和事件数据从 RHOSP 传输到 STF。 |
1.2. Red Hat OpenStack Platform 中的数据收集 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform (RHOSP) 支持两种类型的数据收集:
- 适用于 OpenStack 组件级监控的 Ceilometer。更多信息请参阅 第 1.2.1 节 “ceilometer”。
- collectd 用于基础架构的监控。更多信息请参阅 第 1.2.2 节 “collectd”。
1.2.1. ceilometer 复制链接链接已复制到粘贴板!
Ceilometer 是 OpenStack 遥测服务的默认数据收集组件,能够在所有当前 OpenStack 核心组件中规范化和转换数据。Ceilometer 收集与 OpenStack 服务相关的计量和事件数据。根据部署配置,用户可以访问收集的数据。
Ceilometer 服务使用三个代理从 Red Hat OpenStack Platform (RHOSP)组件收集数据:
-
计算代理(ceilometer-agent-compute) :在每个 Compute 节点上运行,并轮询资源利用率统计信息。此代理与使用 parameter-polling
namespace-compute 运行的轮询代理相同。ceilometer-polling -
中央代理(ceilometer-agent-central): 在中央管理服务器上运行,以轮询未绑定到实例或 Compute 节点的资源利用率统计信息。您可以启动多个代理来水平扩展服务。这与轮询代理
ceilometer-polling相同,它与 parameter-polling namespace-central 一同运行。 - 通知代理(ceilometer-agent-notification) :在中央管理服务器上运行,并使用消息队列中的消息来构建事件和计量数据。将数据发布到定义的目标。Gnocchi 是默认目标。这些服务使用 RHOSP 通知总线进行通信。
Ceilometer 代理使用发布者将数据发送到对应的端点,如 Gnocchi。您可以在 pipeline.yaml 文件中配置此信息。
其他资源
- 有关发布者的更多信息,请参阅 第 1.2.1.1 节 “Publishers”。
1.2.1.1. Publishers 复制链接链接已复制到粘贴板!
遥测服务提供多种传输方法,可以将收集的数据传输至外部系统。此数据的消费者有所不同,例如,监控系统,哪些数据丢失是可以接受的,以及计费系统,这需要可靠的数据传输。Telemetry 提供了满足这两个系统类型的要求的方法。您可以使用服务的发布程序组件通过消息总线将数据保存到持久性存储中,或者将其发送到一个或多个外部消费者。一个链可以包含多个发布程序。
默认发布程序类型是 Gnocchi。当您启用 Gnocchi publisher 时,测量和资源信息将推送到 Gnocchi 以进行时间序列优化的存储。确保您在 Identity 服务中注册 Gnocchi,因为 Ceilometer 发现通过 Identity 服务的确切路径。
配置发布者参数
您可以为 Telemetry 服务中的每个数据点配置多发布程序,允许多次向多个目的地发布相同的技术计量或事件,每个目的地都可能使用不同的传输方法。
流程
创建一个 YAML 文件来描述可能的发布者参数和默认值,如
ceilometer-publisher.yaml。在parameter_defaults中插入以下参数:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 部署 overcloud。在
openstack overcloud deploy命令中包含修改后的 YAML 文件。在以下示例中,将 <environment_files> 替换为您要包含在部署中的其他 YAML 文件:openstack overcloud deploy --templates \ -e /home/custom/ceilometer-publisher.yaml -e <environment_files>
$ openstack overcloud deploy --templates \ -e /home/custom/ceilometer-publisher.yaml -e <environment_files>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 有关参数的更多信息,请参阅 Overcloud 参数指南中的 Telemetry 参数 和高级 Overcloud 自定义指南中的 参数。
1.2.2. collectd 复制链接链接已复制到粘贴板!
性能监控定期收集系统信息,并提供使用数据收集代理以各种方式存储和监控值的机制。红帽支持 collectd 守护进程,作为数据收集代理。此守护进程将数据存储在时间序列数据库中。
1.3. 使用 Gnocchi 的存储 复制链接链接已复制到粘贴板!
Gnocchi 是一个开源时间序列数据库。它以非常大的规模存储指标,并提供对操作员和用户的指标和资源的访问权限。Gnocchi 使用存档策略来定义要计算的聚合以及要保留的聚合数量;以及索引驱动程序来存储所有资源、存档策略和指标的索引。
1.3.1. 归档策略:在时间序列数据库中存储简短和长期数据 复制链接链接已复制到粘贴板!
归档策略定义要计算的聚合以及要保留的聚合数量。Gnocchi 支持不同的聚合方法,如最小、最大值、平均、南百分比和标准偏差。这些聚合会在名为 granularity 的时间段内计算,并为特定的时间span 进行保留。
归档策略定义了如何聚合指标以及如何存储它们的时间。每个归档策略定义为一段时间内的点数。
例如,如果您的归档策略定义了 10 个粒度为 1 秒的策略,则时间序列存档最多保留 10 秒,每个归档代表 1 秒的聚合。这意味着时间序列最多保留 10 秒的数据,在最新的点和旧点之间保留 10 秒。
归档策略也定义使用哪些聚合方法。默认设置为参数 default_aggregation_methods,其值默认设置为 mean, min, max. sum, std, count。因此,根据用例,归档策略和粒度会有所不同。
其他资源
- 有关归档策略的更多信息,请参阅规划和管理归档策略。
1.3.2. indexer 驱动程序 复制链接链接已复制到粘贴板!
索引器负责存储所有资源、归档策略和指标的索引及其定义、类型和属性。它还负责将资源与指标链接。Red Hat OpenStack Platform director 默认安装 indexer 驱动程序。您需要数据库来索引 Gnocchi 处理的所有资源和指标。支持的驱动程序是 MySQL。
1.3.3. Gnocchi Metric-as-a-Service 术语 复制链接链接已复制到粘贴板!
此表格包含指标即服务功能常用的术语的定义。
| 术语 | 定义 |
|---|---|
| 聚合方法 | 用于聚合多个测量结果的功能。例如,min 聚合方法将不同测量结果的值聚合到时间范围中所有测量结果的最小值。 |
| 聚合 | 根据归档策略,从多个测量结果生成的数据点组。聚合由时间戳和值组成。 |
| 归档策略 | 附加到指标的聚合存储策略。归档策略决定聚合在指标中保留的时长,以及聚合聚合的方式(聚合方法)。 |
| granularity | 指标汇总时间序列中的两个聚合之间的时间。 |
| measure | API 发送到时间序列数据库的传入数据点元组。测量由时间戳和值组成。 |
| 指标 | 存储由 UUID 标识的聚合的实体。指标可以使用名称附加到资源。指标存储其聚合的方式由指标关联的归档策略定义。 |
| 资源 | 代表您与之关联的指标的任何实体。资源由唯一 ID 标识,可以包含属性。 |
| 时间序列 | 按时间排序的聚合列表。 |
| timespan | 指标保留其聚合的时间周期。它用于归档策略的上下文。 |
1.4. 显示指标数据 复制链接链接已复制到粘贴板!
您可以使用以下工具来显示和分析指标数据:
- Grafana:一个开源的指标分析和视觉化套件。Grafana 最常用于视觉化基础架构和应用程序分析的时间序列数据。
- 红帽 CloudForms :一种基础架构管理平台,供 IT 部门用来控制用户调配、管理并确保跨虚拟机和私有云的自助服务能力。
其他资源
- 有关 Grafana 的更多信息,请参阅 第 1.4.1 节 “使用和连接 Grafana 显示数据”。
- 有关红帽 Cloudforms 的更多信息,请参阅产品文档。
1.4.1. 使用和连接 Grafana 显示数据 复制链接链接已复制到粘贴板!
您可以使用第三方软件(如 Grafana)来查看收集和存储的指标的图形表示。
Grafana 是一个开源指标分析、监控和视觉化套件。要安装和配置 Grafana,请参阅官方 Grafana 文档。
第 2 章 规划操作测量 复制链接链接已复制到粘贴板!
您监控的资源取决于您的业务需求。您可以使用 Ceilometer 或 collectd 来监控您的资源。
- 有关 Ceilometer 测量的更多信息,请参阅 第 2.1 节 “Ceilometer 测量”。
- 有关 collectd 的更多信息,请参阅 第 2.2 节 “collectd 测量”。
2.1. Ceilometer 测量 复制链接链接已复制到粘贴板!
有关 Ceilometer 测量的完整列表,请参阅 https://docs.openstack.org/ceilometer/train/admin/telemetry-measurements.html
2.2. collectd 测量 复制链接链接已复制到粘贴板!
以下测量很有用于 collectd 指标:
- disk
- interface
- load
- memory
- tcpconns
2.3. 为数据存储规划 复制链接链接已复制到粘贴板!
Gnocchi 存储一个数据点集合,每个数据点都是聚合。存储格式使用不同的技术进行压缩。因此,要计算时间序列数据库的大小,您必须根据最糟糕的情况来估算大小。
将 Red Hat OpenStack Platform (RHOSP) Object Storage (swift)用于时间序列数据库(Gnocchi)存储仅支持小型和非生产环境。
流程
计算数据点的数量:
point = timespan / granularity
例如,如果要使用一分钟分辨率保留一年数据,请使用公式:
数据点数 = (365 天 X 24 小时 X 60 分钟)/ 1 分钟的数据点数 = 525600
计算时间序列数据库的大小:
size (以字节为单位) = 数据点 X 8 字节的数量
如果您将这个公式应用到示例,则结果为 4.1 MB:
size in bytes = 525600 points X 8 bytes = 4204800 bytes = 4.1 MB
这个值是单个聚合时间序列数据库的预期存储要求。如果您的归档策略使用多个聚合方法(min、max、mean、sum、std 和 count),则根据您使用的聚合方法数量来乘以这个值。
2.4. 规划和管理归档策略 复制链接链接已复制到粘贴板!
归档策略定义了如何聚合指标以及如何将指标存储在时间序列数据库中。归档策略定义为一段时间内的点数。
如果您的归档策略定义了粒度为 1 秒的 10 点的策略,则时间序列存档最多保留 10 秒,每个归档代表 1 秒的聚合。这意味着时间序列保留最大 10 秒的数据以及更早的点之间的数据。归档策略也定义要使用的聚合方法。默认设置为参数 default_aggregation_methods,其中默认值被设置为 mean, min, max。总和,std,计数.因此,根据用例,归档策略和粒度可能会有所不同。
要规划归档策略,请确保您熟悉以下概念:
- 指标.更多信息请参阅 第 2.4.1 节 “指标”。
- 测量结果.更多信息请参阅 第 2.4.2 节 “创建自定义测量结果”。
- 聚合.更多信息请参阅 第 2.4.4 节 “计算时间序列聚合的大小”。
- 指标的 worker。更多信息请参阅 第 2.4.5 节 “指标 worker”。
要创建和管理归档策略,请完成以下任务:
- 创建归档策略。更多信息请参阅 第 2.4.6 节 “创建归档策略”。
- 管理归档策略。更多信息请参阅 第 2.4.7 节 “管理归档策略”。
- 创建归档策略规则。更多信息请参阅 第 2.4.8 节 “创建归档策略规则”。
2.4.1. 指标 复制链接链接已复制到粘贴板!
Gnocchi 提供名为 metric 的对象类型。指标是您可以测量的任何对象,例如,服务器的 CPU 使用量、房间温度或网络接口发送的字节数。指标具有以下属性:
- 用于标识它的 UUID
- 名称
- 用于存储和聚合测量结果的归档策略
其他资源
- 有关术语定义,请参阅 Gnocchi Metric-as-a-Service 术语。
2.4.1.1. 创建指标 复制链接链接已复制到粘贴板!
流程
创建资源。将 <resource_name> 替换为资源的名称:
openstack metric resource create <resource_name>
$ openstack metric resource create <resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建指标。将 <resource_name> 替换为资源名称,<metric_name> 替换为指标的名称:
openstack metric metric create -r <resource_name> <metric_name>
$ openstack metric metric create -r <resource_name> <metric_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在创建指标时,归档策略属性是固定的且不可更改的。您可以通过
archive_policy端点更改归档策略的定义。
2.4.2. 创建自定义测量结果 复制链接链接已复制到粘贴板!
测量是 API 发送到 Gnocchi 的传入数据点元组。它由一个时间戳和一个值组成。您可以创建自己的自定义测量结果。
流程
创建自定义测量:
openstack metric measures add -m <MEASURE1> -m <MEASURE2> .. -r <RESOURCE_NAME> <METRIC_NAME>
$ openstack metric measures add -m <MEASURE1> -m <MEASURE2> .. -r <RESOURCE_NAME> <METRIC_NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.3. 默认归档策略 复制链接链接已复制到粘贴板!
默认情况下,Gnocchi 有以下归档策略:
低
- 30 天内 5 分钟粒度
-
使用的聚合方法:
default_aggregation_methods - 每个指标的最大估计大小:406 KiB
中
- 7 天的 1 分钟粒度
- 365 天 1 小时粒度
-
使用的聚合方法:
default_aggregation_methods - 每个指标的最大估算大小: 887 KiB
high
- 1 小时内的 1 秒粒度
- 1 周的 1 分钟粒度
- 1 年内的 1 小时粒度
-
使用的聚合方法:
default_aggregation_methods - 每个指标的最大估计大小:1 057 KiB
bool
- 1 年内的 1 秒粒度
- 使用的聚合方法:last
- 每个指标的最大最佳大小: 1 539 KiB
- 每个指标的最大 pessimistic size: 277 172 KiB
2.4.4. 计算时间序列聚合的大小 复制链接链接已复制到粘贴板!
Gnocchi 存储一个数据点集合,每个点都是聚合。存储格式使用不同的技术进行压缩。因此,根据最糟糕的情况计算时间序列的大小,如下例所示。
流程
使用此公式计算点数:
point = timespan / granularity
例如,如果要使用一分钟分辨率保持一年的数据:
点数 = (365 天 X 24 小时 X 60 分钟)/1 分钟
点数 = 525600
要计算点大小(以字节为单位),请使用以下公式:
size (以字节为单位) = 点 X 8 字节的数量
size in bytes = 525600 points X 8 bytes = 4204800 bytes = 4.1 MB
这个值是单个聚合时间序列估计的存储要求。如果您的归档策略使用多个聚合方法 - min, max, mean, sum, std, count - 根据您使用的聚合方法数量乘以这个值。
2.4.5. 指标 worker 复制链接链接已复制到粘贴板!
您可以使用 metricd 守护进程来处理测量、创建聚合、存储测量结果在聚合存储和删除指标中。指标守护进程负责 Gnocchi 中大多数 CPU 使用量和 I/O 作业。每个指标的归档策略决定了指标守护进程执行的速度。metricd 定期检查传入存储是否有新测量结果。要配置每个检查之间的延迟,您可以使用 [metricd]metric_processing_delay 配置选项。
2.4.6. 创建归档策略 复制链接链接已复制到粘贴板!
流程
创建归档策略。将 <archive-policy-name> 替换为策略的名称,将 <aggregation-method> 替换为聚合方法。
openstack metric archive policy create <archive-policy-name> --definition <definition> \ --aggregation-method <aggregation-method>
# openstack metric archive policy create <archive-policy-name> --definition <definition> \ --aggregation-method <aggregation-method>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意<definition> 是策略定义。使用逗号(,)分隔多个属性。使用冒号(:)分隔归档策略定义的 name 和值。
2.4.7. 管理归档策略 复制链接链接已复制到粘贴板!
删除归档策略:
openstack metric archive policy delete <archive-policy-name>
openstack metric archive policy delete <archive-policy-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看所有归档策略:
openstack metric archive policy list
# openstack metric archive policy listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查看归档策略的详情:
openstack metric archive-policy show <archive-policy-name>
# openstack metric archive-policy show <archive-policy-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.8. 创建归档策略规则 复制链接链接已复制到粘贴板!
归档策略规则定义了指标和归档策略之间的映射。这样,用户可以预定义规则,以便基于匹配模式将归档策略分配给指标。
流程
创建归档策略规则。将 <rule-name> 替换为规则的名称,<archive-policy-name> 替换为归档策略的名称:
openstack metric archive-policy-rule create <rule-name> / --archive-policy-name <archive-policy-name>
# openstack metric archive-policy-rule create <rule-name> / --archive-policy-name <archive-policy-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. 验证 Red Hat OpenStack Platform 部署 复制链接链接已复制到粘贴板!
您可以使用 openstack metric 命令验证部署是否成功。
流程
验证部署:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 3 章 管理警报 复制链接链接已复制到粘贴板!
您可以使用 Telemetry Alarming 服务 (Aodh) 根据定义的规则针对 sVirt 收集的指标或事件数据触发操作。
警报可处于以下状态之一:
- ok
- 指标或事件处于可接受的状态。
- 触发
- 指标或事件在定义的 ok 状态之外。
- 数据不足
- 警报状态为 unknown。这可能是出于某种原因,例如,请求的粒度没有数据,检查还没有执行,以此类推。
3.1. 查看现有警报 复制链接链接已复制到粘贴板!
您可以查看现有的遥测警报信息,并列出分配给资源的计量,以检查指标的当前状态。
流程
列出现有的 Telemetry 警报:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要列出分配给资源的量表,请指定资源的 UUID。例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 创建警报 复制链接链接已复制到粘贴板!
使用 Telemetry Alarming 服务(aodh)创建在满足特定条件时触发的警报,例如达到阈值时。在本例中,警报激活并在单个实例的平均 CPU 利用率超过 80% 时添加日志条目。
流程
归档策略会在部署过程中预先填充,很少需要创建新的归档策略。但是,如果没有配置归档策略,您必须创建一个。要创建一个归档策略,它在 5s * 86400 points (5 天) 内创建指标数据,请使用以下命令:
openstack archive-policy create <name> \ -d granularity:5s,points:86400 \ -b 3 -m mean -m rate:mean# openstack archive-policy create <name> \ -d granularity:5s,points:86400 \ -b 3 -m mean -m rate:meanCopy to Clipboard Copied! Toggle word wrap Toggle overflow + 将 <name > 替换为归档策略的名称。
注意确保将 Telemetry Alarming 服务的评估周期的值设置为大于 60 的整数。Ceilometer 轮询间隔链接到评估周期。确保将 Ceilometer 轮询间隔值设置为 60 到 600 之间的数字,并确保该值大于 Telemetry Alarming 服务的评估周期的值。如果 Ceilometer 轮询间隔太低,它可能会对系统负载产生严重影响。
创建警报并使用查询来隔离实例的特定 ID,以进行监控。以下示例中实例的 ID 是 94619081-abf5-4f1f-81c7-9cedaa872403。
注意要计算阈值,请使用以下公式: 1,000,000,000 x {granularity} x {percentage_in_decimal}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. 编辑警报 复制链接链接已复制到粘贴板!
在编辑警报时,您可以增加或减少警报的值阈值。
流程
若要更新阈值,可使用
openstack alarm update命令。例如,要将警报阈值增加到 75%,请使用以下命令:openstack alarm update --name cpu_usage_high --threshold 75
# openstack alarm update --name cpu_usage_high --threshold 75Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. 禁用警报 复制链接链接已复制到粘贴板!
您可以禁用和启用警报。
流程
禁用警报:
openstack alarm update --name cpu_usage_high --enabled=false
# openstack alarm update --name cpu_usage_high --enabled=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. 删除警报 复制链接链接已复制到粘贴板!
使用 openstack alarm delete 命令删除警报。
流程
要删除警报,请输入以下命令:
openstack alarm delete --name cpu_usage_high
# openstack alarm delete --name cpu_usage_highCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.6. 示例:监控实例的磁盘活动 复制链接链接已复制到粘贴板!
本例演示了如何使用作为遥测警报服务一部分的警报来监控特定项目中包含的所有实例的累积磁盘活动。
流程
检查现有项目,再选择您要监控的项目的适当 UUID。本例使用
admin租户:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用项目 UUID 创建警报,以分析
admin租户中实例生成的所有读取请求的sum ()。您可以使用--query 参数进一步清理查询:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. 示例:监控 CPU 使用 复制链接链接已复制到粘贴板!
要监控实例的性能,请检查 Gnocchi 数据库,以识别您可以监控哪些指标,如内存或 CPU 使用量。
流程
要识别您可以监控的指标,请使用实例 UUID 输入
openstack metric resource show命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因此,metrics 值列出了您可以使用 Alarming 服务监控的组件,如
cpu。要监控 CPU 用量,请使用
cpu指标:Copy to Clipboard Copied! Toggle word wrap Toggle overflow archive_policy 定义计算 std、count、min、max、sum 和 mean 值的聚合间隔。
检查
cpu指标当前选择的归档策略:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Alarming 服务创建一个查询
cpu的监控任务。此任务会根据您指定的设置触发事件。例如,要在延长持续时间内实例 CPU 激增超过 80% 时引发日志条目,请使用以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - comparison-operator:ge 运算符定义在 CPU 使用量大于或等于 80% 时警报触发。
- granularity:指标关联有一个归档策略;策略可以具有各种粒度。例如,一个月内 1 小时的 5 分钟聚合 + 1 小时聚合。granularity 值必须与归档策略中描述的持续时间匹配。
- evaluation-periods:在警报触发前需要传递的粒度周期数。例如,如果将此值设置为 2,则警报触发前两个轮询期间内必须超过 80% 的 CPU 使用量。
[U'log://'] :当您将
alarm_actions或ok_actions设置为[u'log://']时,事件会被触发或返回到正常状态,则会记录到 aodh 日志文件。注意您可以定义在触发警报时运行的不同操作(alarm_actions),并在返回正常状态(ok_actions) (如 webhook URL)时运行。
3.8. 查看警报历史记录 复制链接链接已复制到粘贴板!
要检查特定警报是否已触发,您可以查询警报历史记录并查看事件信息。
流程
使用
openstack alarm-history show命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 安装和配置日志服务 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform (RHOSP)将信息性消息写入特定的日志文件中;您可以使用这些消息来故障排除和监控系统事件。日志收集代理 Rsyslog 在客户端上收集日志,并将这些日志发送到在服务器端运行的 Rsyslog 实例。服务器端 Rsyslog 实例将日志记录重定向到 Elasticsearch 以进行存储。
您不需要手动将单独的日志文件附加到支持问题单中。sosreport 工具自动收集所需的日志。
4.1. 集中式日志系统架构和组件 复制链接链接已复制到粘贴板!
监控工具将客户端-服务器模型与部署到 Red Hat OpenStack Platform (RHOSP) overcloud 节点上的客户端。Rsyslog 服务提供客户端集中式日志记录(CL)。
所有 RHOSP 服务都会生成和更新日志文件。这些日志文件记录操作、错误、警告和其他事件。在 OpenStack 等分布式环境中,在中央位置收集这些日志简化了调试和管理。
通过集中式日志记录,有一个中央位置来查看整个 RHOSP 环境之间的日志。这些日志来自操作系统,如 syslog 和 audit 日志文件、基础架构组件、RabbitMQ 和 MariaDB 等 OpenStack 服务,如 Identity、Compute 等。集中式日志记录链由以下组件组成:
- 日志集合代理(Rsyslog)
- 数据存储(ElasticSearch)
- API/Presentation Layer (Grafana)
Red Hat OpenStack Platform director 不会为集中式日志记录部署服务器端组件。红帽不支持服务器端组件,包括 Elasticsearch 数据库和 Grafana。
4.2. 使用 Elasticsearch 启用集中式日志记录 复制链接链接已复制到粘贴板!
要启用集中式日志记录,您必须指定 OS::TripleO::Services::Rsyslog 可组合服务的实施。
Rsyslog 服务只使用 Elasticsearch 作为集中日志记录的数据存储。
先决条件
- Elasticsearch 已在服务器端安装。
流程
将日志记录环境文件的文件路径添加到
overcloud 部署命令中,以及其他与您的环境相关的环境文件,如下例所示:openstack overcloud deploy \ <existing_overcloud_environment_files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/logging-environment-rsyslog.yaml
openstack overcloud deploy \ <existing_overcloud_environment_files> \ -e /usr/share/openstack-tripleo-heat-templates/environments/logging-environment-rsyslog.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用作为现有部署一部分的环境文件列表替换。
<existing_overcloud_environment_files>
4.3. 配置日志记录功能 复制链接链接已复制到粘贴板!
要配置日志记录功能,请修改 logging-environment-rsyslog.yaml 文件中的 RsyslogElasticsearchSetting 参数。
流程
-
将
tripleo-heat-templates/environments/logging-environment-rsyslog.yaml文件复制到您的主目录中。 在
RsyslogElasticsearchSetting参数中创建条目以适合您的环境。以下片段是RsyslogElasticsearchSetting参数的示例配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 有关可配置参数的更多信息,请参阅 第 4.3.1 节 “可配置的日志记录参数”。
4.3.1. 可配置的日志记录参数 复制链接链接已复制到粘贴板!
此表包含用于在 Red Hat OpenStack Platform (RHOSP)中配置日志记录功能的日志参数的描述。您可以在 tripleo-heat-templates/deployment/logging/rsyslog-container-puppet.yaml 文件中找到这些参数。
| 参数 | Description |
|---|---|
|
|
配置 |
|
| 包含发布 Elasticsearch 服务器证书的 CA 的 CA 证书的内容。 |
|
| 包含用于针对 Elasticsearch 进行客户端证书授权的客户端证书内容。 |
|
|
包含与 cert |
4.4. 管理日志 复制链接链接已复制到粘贴板!
容器化服务日志文件存储在 /var/log/containers/<service> 中,如 /var/log/containers/cinder。容器内运行的服务的日志文件存储在本地。可用的日志可能会因启用和禁用的服务而异。
以下示例强制 logrotate 任务在达到 10 MB 时创建新日志文件,并保留 14 天的日志文件。
parameter_defaults LogrotateRotate: '14' LogrotatePurgeAfterDays: '14' LogrotateMaxsize: '10M'
parameter_defaults
LogrotateRotate: '14'
LogrotatePurgeAfterDays: '14'
LogrotateMaxsize: '10M'
要自定义日志轮转参数,请在环境模板中包括这些参数 _defaults,然后部署 overcloud。
验证:在任何 overcloud 节点上,确保 logrotate_crond 已更新:
在以下示例中,nova-compute.log 文件已被轮转一次。
日志文件轮转过程在 logrotate_crond 容器中进行。/var/spool/cron/root 配置文件被读取,其配置被发送到进程。
验证:确保配置存在于任何控制器节点上:
/var/lib/config-data/puppet-generated/crond/etc/logrotate-crond.conf 文件绑定到 logrotate_crond 容器中的 /etc/logrotate-crond.conf。
因为历史原因,旧的配置文件会被保留,但不会使用它们。
4.5. 覆盖日志文件的默认路径 复制链接链接已复制到粘贴板!
如果您修改默认容器且修改包含到服务日志文件的路径,还必须修改默认日志文件路径。每个可组合服务都有一个 < service_name>LoggingSource 参数。例如,对于 nova-compute 服务,参数是 NovaComputeLoggingSource。
流程
要覆盖 nova-compute 服务的默认路径,请在配置文件中添加
NovaComputeLoggingSource参数的路径:NovaComputeLoggingSource: tag: openstack.nova.compute file: /some/other/path/nova-compute.logNovaComputeLoggingSource: tag: openstack.nova.compute file: /some/other/path/nova-compute.logCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意对于每个服务,定义
tag和file。其他值默认派生。您可以修改特定服务的格式。这会直接传递给 Rsyslog 配置。
LoggingDefaultFormat参数的默认格式是 /(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d+) (?<pid>\d+) (?<priority>\S+) (?<message>.*)$/ 使用以下语法:<service_name>LoggingSource: tag: <service_name>.tag path: <service_name>.path format: <service_name>.format<service_name>LoggingSource: tag: <service_name>.tag path: <service_name>.path format: <service_name>.formatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下片段是更复杂的转换示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.6. 修改日志记录的格式 复制链接链接已复制到粘贴板!
您可以修改特定服务的日志记录开始的格式。这会直接传递给 Rsyslog 配置。
Red Hat OpenStack Platform (RHOSP) 日志记录的默认格式是 ('^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]+ [0-9]+)?(DEBUG|INFO|WARNING|ERROR)')。
流程
要添加用于解析日志记录开始的不同正则表达式,请在配置中添加
startmsg.regex:NovaComputeLoggingSource: tag: openstack.nova.compute file: /some/other/path/nova-compute.log startmsg.regex: "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]+ \\+[0-9]+)? [A-Z]+ \\([a-z]+\\)NovaComputeLoggingSource: tag: openstack.nova.compute file: /some/other/path/nova-compute.log startmsg.regex: "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]+ \\+[0-9]+)? [A-Z]+ \\([a-z]+\\)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.7. 测试 Rsyslog 和 Elasticsearch 之间的连接 复制链接链接已复制到粘贴板!
在客户端,您可以验证 Rsyslog 和 Elasticsearch 之间的通信。
流程
-
进入 Rsyslog 容器或主机上的
/var/log/rsyslog/omelasticsearch.log中的 Elasticsearch 连接日志文件 /var/log/rsyslog/omelasticsearch.log。如果此日志文件不存在,或者日志文件存在但没有包含日志,则没有连接问题。如果日志文件存在并包含日志,Rsyslog 就没有成功连接。
要从服务器端测试连接,请查看 Elasticsearch 日志以了解连接问题。
4.8. 服务器端日志记录 复制链接链接已复制到粘贴板!
如果您有一个 Elasticsearch 集群正在运行,您必须在 logging-environment-rsyslog.yaml 文件中配置 RsyslogElasticsearchSetting 参数,以连接 overcloud 节点上运行的 Rsyslog。要配置 RsyslogElasticsearchSetting 参数,请参阅 https://www.rsyslog.com/doc/v8-stable/configuration/modules/omelasticsearch.html
4.9. 追溯 复制链接链接已复制到粘贴板!
当您遇到问题并启动故障排除时,您可以使用回溯日志来诊断问题。在日志文件中,回溯通常包含多行信息,它们都与相同的问题相关。
rsyslog 提供了一个正则表达式,用于定义日志记录的启动方式。每个日志记录通常以时间戳开头,追溯的第一行是包含此信息的唯一行。rsyslog 使用第一行捆绑缩进记录,并将它们作为一个日志记录发送。
对于该配置选项,请使用 <Service>LoggingSource 中的 startmsg.regex。以下正则表达式是 director 中所有 <service>LoggingSource 参数的默认值:
startmsg.regex='^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]+ [0-9]+)? (DEBUG|INFO|WARNING|ERROR) '
startmsg.regex='^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}(.[0-9]+ [0-9]+)? (DEBUG|INFO|WARNING|ERROR) '
当此默认与添加或修改的 LoggingSource 的日志记录不匹配时,您必须相应地更改 startmsg.regex。
4.10. OpenStack 服务的日志文件位置 复制链接链接已复制到粘贴板!
每个 OpenStack 组件都有单独的日志记录目录,其中包含特定于运行中服务的文件。
4.10.1. 裸机置备(ironic)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Ironic API | openstack-ironic-api.service | /var/log/containers/ironic/ironic-api.log |
| OpenStack Ironic Conductor | openstack-ironic-conductor.service | /var/log/containers/ironic/ironic-conductor.log |
4.10.2. Block Storage (cinder)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| 块存储 API | openstack-cinder-api.service | /var/log/containers/cinder-api.log |
| 块存储备份 | openstack-cinder-backup.service | /var/log/containers/cinder/backup.log |
| 信息性消息 | cinder-manage 命令 | /var/log/containers/cinder/cinder-manage.log |
| 块存储调度程序 | openstack-cinder-scheduler.service | /var/log/containers/cinder/scheduler.log |
| 块存储卷 | openstack-cinder-volume.service | /var/log/containers/cinder/volume.log |
4.10.3. 计算(nova)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Compute API 服务 | openstack-nova-api.service | /var/log/containers/nova/nova-api.log |
| OpenStack Compute 证书服务器 | openstack-nova-cert.service | /var/log/containers/nova/nova-cert.log |
| OpenStack Compute 服务 | openstack-nova-compute.service | /var/log/containers/nova/nova-compute.log |
| OpenStack Compute Conductor 服务 | openstack-nova-conductor.service | /var/log/containers/nova/nova-conductor.log |
| OpenStack Compute VNC 控制台身份验证服务器 | openstack-nova-consoleauth.service | /var/log/containers/nova/nova-consoleauth.log |
| 信息性消息 | nova-manage 命令 | /var/log/containers/nova/nova-manage.log |
| OpenStack Compute NoVNC 代理服务 | openstack-nova-novncproxy.service | /var/log/containers/nova/nova-novncproxy.log |
| OpenStack Compute Scheduler 服务 | openstack-nova-scheduler.service | /var/log/containers/nova/nova-scheduler.log |
4.10.4. dashboard (horizon)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| 特定用户交互的日志 | 仪表板接口 | /var/log/containers/horizon/horizon.log |
Apache HTTP 服务器为 Dashboard Web 界面使用几个额外的日志文件,您可以使用 Web 浏览器或命令行客户端(如 keystone 和 nova)进行访问。下表中的日志文件有助于跟踪控制面板的使用和诊断错误:
| 用途 | 日志路径 |
|---|---|
| 所有已处理的 HTTP 请求 | /var/log/containers/httpd/horizon_access.log |
| HTTP 错误 | /var/log/containers/httpd/horizon_error.log |
| admin-role API 请求 | /var/log/containers/httpd/keystone_wsgi_admin_access.log |
| admin-role API 错误 | /var/log/containers/httpd/keystone_wsgi_admin_error.log |
| member-role API 请求 | /var/log/containers/httpd/keystone_wsgi_main_access.log |
| member-role API 错误 | /var/log/containers/httpd/keystone_wsgi_main_error.log |
还有 /var/log/containers/httpd/default_error.log,它存储了同一主机上运行的其他 Web 服务所报告的错误。
4.10.5. Identity Service (keystone)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Identity Service | openstack-keystone.service | /var/log/containers/keystone/keystone.log |
4.10.6. 镜像服务(glance)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Image Service API 服务器 | openstack-glance-api.service | /var/log/containers/glance/api.log |
| OpenStack Image Service Registry 服务器 | openstack-glance-registry.service | /var/log/containers/glance/registry.log |
4.10.7. networking (neutron)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Neutron DHCP 代理 | neutron-dhcp-agent.service | /var/log/containers/neutron/dhcp-agent.log |
| OpenStack 网络层 3 代理 | neutron-l3-agent.service | /var/log/containers/neutron/l3-agent.log |
| 元数据代理服务 | neutron-metadata-agent.service | /var/log/containers/neutron/metadata-agent.log |
| 元数据命名空间代理 | 不适用 | /var/log/containers/neutron/neutron-ns-metadata-proxy-UUID.log |
| Open vSwitch 代理 | neutron-openvswitch-agent.service | /var/log/containers/neutron/openvswitch-agent.log |
| OpenStack 网络服务 | neutron-server.service | /var/log/containers/neutron/server.log |
4.10.8. Object Storage (swift)日志文件 复制链接链接已复制到粘贴板!
OpenStack Object Storage 将日志发送到系统日志功能。
默认情况下,所有对象存储日志文件都前往 /var/log/containers/swift/swift.log,使用 local0、local1 和 local2 syslog 工具。
对象存储的日志消息分为两大类:REST API 服务以及后台守护进程的那些类别。API 服务消息包含每个 API 请求一行,其方式类似于流行的 HTTP 服务器;前端(Proxy)和后端(Account、Container、Object)服务发布此类消息。守护进程消息的结构较少,通常包含有关执行周期性任务的守护进程的人类可读信息。但是,无论 Object Storage 的哪个部分都生成消息,源身份始终位于行首。
以下是代理消息的示例:
Apr 20 15:20:34 rhev-a24c-01 proxy-server: 127.0.0.1 127.0.0.1 20/Apr/2015/19/20/34 GET /v1/AUTH_zaitcev%3Fformat%3Djson%26marker%3Dtestcont HTTP/1.0 200 - python-swiftclient-2.1.0 AUTH_tk737d6... - 2 - txc454fa8ea4844d909820a-0055355182 - 0.0162 - - 1429557634.806570053 1429557634.822791100
Apr 20 15:20:34 rhev-a24c-01 proxy-server: 127.0.0.1 127.0.0.1 20/Apr/2015/19/20/34 GET /v1/AUTH_zaitcev%3Fformat%3Djson%26marker%3Dtestcont HTTP/1.0 200 - python-swiftclient-2.1.0 AUTH_tk737d6... - 2 - txc454fa8ea4844d909820a-0055355182 - 0.0162 - - 1429557634.806570053 1429557634.822791100
以下是来自后台守护进程的临时信息示例:
4.10.9. 编配(heat)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Heat API 服务 | openstack-heat-api.service | /var/log/containers/heat/heat-api.log |
| OpenStack Heat Engine 服务 | openstack-heat-engine.service | /var/log/containers/heat/heat-engine.log |
| 编配服务事件 | 不适用 | /var/log/containers/heat/heat-manage.log |
4.10.11. Telemetry (ceilometer)日志文件 复制链接链接已复制到粘贴板!
| Service | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack ceilometer 通知代理 | ceilometer_agent_notification | /var/log/containers/ceilometer/agent-notification.log |
| OpenStack ceilometer 中央代理 | ceilometer_agent_central | /var/log/containers/ceilometer/central.log |
| OpenStack ceilometer collection | openstack-ceilometer-collector.service | /var/log/containers/ceilometer/collector.log |
| OpenStack ceilometer 计算代理 | ceilometer_agent_compute | /var/log/containers/ceilometer/compute.log |
4.10.12. 用于支持服务的日志文件 复制链接链接已复制到粘贴板!
以下服务由 OpenStack 核心组件使用,拥有自己的日志目录和文件。
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| 消息代理(RabbitMQ) | rabbitmq-server.service |
/var/log/rabbitmq/rabbit@short_hostname.log |
| 数据库服务器(MariaDB) | mariadb.service | /var/log/mariadb/mariadb.log |
| 虚拟网络交换机(Open vSwitch) | openvswitch-nonetwork.service |
/var/log/openvswitch/ovsdb-server.log |
4.10.13. aodh (alarming 服务)日志文件 复制链接链接已复制到粘贴板!
| Service | 容器名称 | 日志路径 |
|---|---|---|
| 警报 API | aodh_api | /var/log/containers/httpd/aodh-api/aodh_wsgi_access.log |
| 警报评估日志 | aodh_evaluator | /var/log/containers/aodh/aodh-evaluator.log |
| 警报监听程序 | aodh_listener | /var/log/containers/aodh/aodh-listener.log |
| 警报通知 | aodh_notifier | /var/log/containers/aodh/aodh-notifier.log |
4.10.14. gnocchi (指标存储)日志文件 复制链接链接已复制到粘贴板!
| Service | 容器名称 | 日志路径 |
|---|---|---|
| Gnocchi API | gnocchi_api | /var/log/containers/httpd/gnocchi-api/gnocchi_wsgi_access.log |
| gnocchi metricd | gnocchi_metricd | /var/log/containers/gnocchi/gnocchi-metricd.log |
| Gnocchi statsd | gnocchi_statsd | /var/log/containers/gnocchi/gnocchi-statsd.log |
第 5 章 collectd 插件 复制链接链接已复制到粘贴板!
您可以根据 Red Hat OpenStack Platform (RHOSP) 17.0 环境配置多个 collectd 插件。
以下插件列表显示了可设置为覆盖默认值的可用 heat 模板 ExtraConfig 参数。每个部分都提供了 ExtraConfig 选项的一般配置名称。例如,如果存在名为 example_plugin 的 collectd 插件,则插件标题的格式是 collectd::plugin::example_plugin。
请参考特定插件的可用参数表,如下例所示:
ExtraConfig: collectd::plugin::example_plugin::<parameter>: <value>
ExtraConfig:
collectd::plugin::example_plugin::<parameter>: <value>
引用用于 Prometheus 或 Grafana 查询的特定插件的指标表。
5.1. collectd::plugin::aggregation 复制链接链接已复制到粘贴板!
您可以使用 聚合 插件将多个值聚合到一个值中。使用 sum、average、min 和 max 等聚合功能来计算指标,如平均和总 CPU 统计。
| 参数 | 类型 |
|---|---|
| 主机 | 字符串 |
| plugin | 字符串 |
| plugininstance | 整数 |
| agg_type | 字符串 |
| typeinstance | 字符串 |
| sethost | 字符串 |
| setplugin | 字符串 |
| setplugininstance | 整数 |
| settypeinstance | 字符串 |
| groupBy | 字符串数组 |
| calculatesum | 布尔值 |
| calculatenum | 布尔值 |
| calculateaverage | 布尔值 |
| calculateminimum | 布尔值 |
| calculatemaximum | 布尔值 |
| calculatestddev | 布尔值 |
配置示例:
部署三个聚合配置以创建以下文件:
-
aggregator-calcCpuLoadAvg.conf:按主机和状态分组的所有 CPU 内核的平均 CPU 负载 -
aggregator-calcCpuLoadMinMax.conf:按主机和状态的最小和最大 CPU 负载组 -
Aggregator-calcMemoryTotalMaxAvg.conf: maximum, average, 和 total 用于按类型分组的内存
聚合配置使用默认的 cpu 和 memory 插件配置。
5.2. collectd::plugin::amqp1 复制链接链接已复制到粘贴板!
使用 amqp1 插件将值写入 amqp1 消息总线,如 AMQ Interconnect。
| 参数 | 类型 |
|---|---|
| manage_package | 布尔值 |
| 传输 | 字符串 |
| 主机 | 字符串 |
| port | 整数 |
| user | 字符串 |
| password | 字符串 |
| address | 字符串 |
| 实例 | Hash |
| retry_delay | 整数 |
| send_queue_limit | 整数 |
| interval | 整数 |
使用 send_queue_limit 参数来限制传出指标队列的长度。
如果没有 AMQP1 连接,则该插件将继续将消息排队以发送,这可能会导致未绑定的内存消耗。默认值为 0,它会禁用传出指标队列。
如果缺少指标,请增加 send_queue_limit 参数的值。
配置示例:
5.3. collectd::plugin::apache 复制链接链接已复制到粘贴板!
使用 apache 插件从 Apache Web 服务器提供的 mod_status 插件收集 Apache 数据。提供的每个实例都有一个每个间隔 值(以秒为单位)。如果您为实例提供 超时 间隔参数,则该值以毫秒为单位。
| 参数 | 类型 |
|---|---|
| 实例 | Hash |
| interval | 整数 |
| manage-package | 布尔值 |
| package_install_options | list |
| 参数 | 类型 |
|---|---|
| url | HTTP URL |
| user | 字符串 |
| password | 字符串 |
| verifypeer | 布尔值 |
| verifyhost | 布尔值 |
| caCert | AbsolutePath |
| sslCiphers | 字符串 |
| timeout | 整数 |
配置示例:
在本例中,实例名称是 localhost,它连接到位于 http://10.0.0.111/mod_status?auto 的 Apache Web 服务器。您必须将 ?auto 附加到 URL 的末尾,以防止状态页面作为与插件不兼容的类型返回。
其他资源
有关配置 apache 插件的更多信息,请参阅 apache。
5.4. collectd::plugin::battery 复制链接链接已复制到粘贴板!
使用 电池 插件报告笔记本电脑的剩余容量、电源或卷标签。
| 参数 | 类型 |
|---|---|
| values_percentage | 布尔值 |
| report_degraded | 布尔值 |
| query_state_fs | 布尔值 |
| interval | 整数 |
其他资源
有关配置 电池插件的更多信息,请参阅 电池 。
5.5. collectd::plugin::bind 复制链接链接已复制到粘贴板!
使用 bind 插件检索来自 DNS 服务器的查询和响应的编码统计信息,并将这些值提交到 collectd。
| 参数 | 类型 |
|---|---|
| url | HTTP URL |
| memorystats | 布尔值 |
| opcodes | 布尔值 |
| parsetime | 布尔值 |
| qtypes | 布尔值 |
| resolverstats | 布尔值 |
| serverstats | 布尔值 |
| zonemaintstats | 布尔值 |
| 视图 | Array |
| interval | 整数 |
| 参数 | 类型 |
|---|---|
| name | 字符串 |
| qtypes | 布尔值 |
| resolverstats | 布尔值 |
| cacherrsets | 布尔值 |
| zones | 字符串列表 |
配置示例:
5.6. collectd::plugin::ceph 复制链接链接已复制到粘贴板!
使用 ceph 插件从 ceph 守护进程收集数据。
| 参数 | 类型 |
|---|---|
| 守护进程 | Array |
| longrunavglatency | 布尔值 |
| convertspecialmetrictypes | 布尔值 |
| package_name | 字符串 |
配置示例:
如果 Object Storage Daemon (OSD)没有在每个节点上,您必须列出 OSD。
部署 collectd 时,ceph 插件将添加到 Ceph 节点。不要将 Ceph 节点上的 ceph 插件添加到 CollectdExtraPlugins 中,因为这会导致部署失败。
其他资源
有关配置 ceph 插件的更多信息,请参阅 ceph。
5.7. collectd::plugins::cgroups 复制链接链接已复制到粘贴板!
使用 cgroups 插件收集 cgroup 中进程的信息。
| 参数 | 类型 |
|---|---|
| ignore_selected | 布尔值 |
| interval | 整数 |
| cgroups | list |
其他资源
有关配置 cgroups 插件的更多信息,请参阅 cgroups。
5.8. collectd::plugin::connectivity 复制链接链接已复制到粘贴板!
使用 connectivity 插件监控网络接口的状态。
如果没有列出接口,则默认监控所有接口。
| 参数 | 类型 |
|---|---|
| interfaces | Array |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::connectivity::interfaces:
- eth0
- eth1
parameter_defaults:
ExtraConfig:
collectd::plugin::connectivity::interfaces:
- eth0
- eth1
其他资源
有关配置 connectivity 插件的更多信息,请参阅 connectivity。
5.9. collectd::plugin::conntrack 复制链接链接已复制到粘贴板!
使用 conntrack 插件跟踪 Linux 连接跟踪表中的条目数。此插件没有参数。
5.10. collectd::plugin::contextswitch 复制链接链接已复制到粘贴板!
使用 ContextSwitch 插件收集系统处理的上下文切换数量。唯一可用的参数是 间隔,即以秒为单位定义的轮询间隔。
其他资源
有关配置 contextswitch 插件的更多信息,请参阅 contextswitch。
5.11. collectd::plugin::cpu 复制链接链接已复制到粘贴板!
使用 cpu 插件监控 CPU 处于各种状态的时间,如 idle、执行用户代码、执行系统代码、等待 IO-operations 和其他状态。
cpu 插件收集 jiffies 值,而不是百分比值。jiffy 的值取决于您的硬件平台的时钟频率,因此不是绝对时间间隔单位。
要报告百分比值,请将布尔值参数 reportbycpu 和 reportbystate 设置为 true,然后将布尔值 parameter percentage 设置为 true。
此插件默认是启用的。
| Name | 描述 | 查询 |
|---|---|---|
| idle | 空闲时间 |
|
| interrupt | 中断阻止的 CPU |
|
| nice | 运行低优先级进程的时间 |
|
| softirq | 为中断请求提供服务的周期量 |
|
| steal | 虚拟 CPU 等待实际 CPU 的时间百分比,而虚拟机监控程序为另一个虚拟处理器提供服务 |
|
| system | 在系统级别(内核)花费的时间长度. |
|
| user | 用户进程使用 |
|
| wait | CPU 等待未完成的 I/O 请求 |
|
| 参数 | 类型 | 默认值 |
|---|---|---|
| reportbystate | 布尔值 | true |
| valuespercentage | 布尔值 | true |
| reportbycpu | 布尔值 | true |
| reportnumcpu | 布尔值 | false |
| reportgueststate | 布尔值 | false |
| subtractgueststate | 布尔值 | true |
| interval | 整数 | 120 |
配置示例:
parameter_defaults:
CollectdExtraPlugins:
- cpu
ExtraConfig:
collectd::plugin::cpu::reportbystate: true
parameter_defaults:
CollectdExtraPlugins:
- cpu
ExtraConfig:
collectd::plugin::cpu::reportbystate: true
其他资源
有关配置 cpu 插件的更多信息,请参阅 cpu。
5.12. collectd::plugin::cpufreq 复制链接链接已复制到粘贴板!
使用 cpufreq 插件收集当前的 CPU 频率。此插件没有参数。
5.13. collectd::plugin::csv 复制链接链接已复制到粘贴板!
使用 csv 插件,以 CSV 格式将值写入本地文件。
| 参数 | 类型 |
|---|---|
| dataDir | 字符串 |
| storerates | 布尔值 |
| interval | 整数 |
5.14. collectd::plugin::df 复制链接链接已复制到粘贴板!
使用 df 插件为文件系统收集磁盘空间使用情况信息。
此插件默认是启用的。
| Name | 描述 | 查询 |
|---|---|---|
| free | 可用磁盘空间 |
|
| 保留 | 保留磁盘空间量 |
|
| 使用的 | 已用磁盘空间量 |
|
| 参数 | 类型 | 默认值 |
|---|---|---|
| devices | Array |
|
| fstypes | Array |
|
| ignoreselected | 布尔值 | true |
| mountpoints | Array |
|
| reportbydevice | 布尔值 | true |
| reportinodes | 布尔值 | true |
| reportreserved | 布尔值 | true |
| valuesabsolute | 布尔值 | true |
| valuespercentage | 布尔值 | false |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::df::fstypes: ['tmpfs','xfs']
parameter_defaults:
ExtraConfig:
collectd::plugin::df::fstypes: ['tmpfs','xfs']
其他资源
有关配置 df 插件的更多信息,请参阅 df。
5.15. collectd::plugin::disk 复制链接链接已复制到粘贴板!
使用 disk 插件收集硬盘的性能统计信息(如果支持)。
disk 插件默认监控所有磁盘。您可以使用 ignoreselected 参数忽略磁盘列表。示例配置会忽略 sda、sdb 和 sdc 磁盘,并监控列表中不包含的所有磁盘。
此插件默认是启用的。
| 参数 | 类型 | 默认值 |
|---|---|---|
| disks | Array |
|
| ignoreselected | 布尔值 | false |
| udevnameattr | 字符串 | <undefined> |
| Name | 描述 |
|---|---|
| 合并 | 可以合并在一起的排队操作数量,例如,一个物理磁盘访问提供了两个或者多个逻辑操作。 |
| 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::disks: ['sda', 'sdb', 'sdc']
collectd::plugin::disk::ignoreselected: true
parameter_defaults:
ExtraConfig:
collectd::plugin::disk::disks: ['sda', 'sdb', 'sdc']
collectd::plugin::disk::ignoreselected: true
其他资源
有关配置 disk 插件的更多信息,请参阅 disk。
5.16. collectd::plugin::hugepages 复制链接链接已复制到粘贴板!
使用 hugepages 插件收集巨页信息。
This plugin is enabled by default.
This plugin is enabled by default.
| 参数 | 类型 | 默认值 |
|---|---|---|
| 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
parameter_defaults:
ExtraConfig:
collectd::plugin::hugepages::values_percentage: true
其他资源
-
有关配置
hugepages插件的更多信息,请参阅 巨页。
5.17. collectd::plugin::interface 复制链接链接已复制到粘贴板!
使用 接口 插件来测量 octets、数据包每秒中的接口流量,以及每秒错误率。
This plugin is enabled by default.
This plugin is enabled by default.
| 参数 | 类型 | 默认 |
|---|---|---|
| interfaces | Array |
|
| ignoreselected | 布尔值 | false |
| reportinactive | 布尔值 | true |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::interface::interfaces:
- lo
collectd::plugin::interface::ignoreselected: true
parameter_defaults:
ExtraConfig:
collectd::plugin::interface::interfaces:
- lo
collectd::plugin::interface::ignoreselected: true
其他资源
-
有关配置
interfaces插件的更多信息,请参阅 接口。
5.18. collectd::plugin::load 复制链接链接已复制到粘贴板!
使用 load 插件收集系统负载和系统使用的概览。
This plugin is enabled by default.
This plugin is enabled by default.
| 参数 | 类型 | 默认 |
|---|---|---|
| report_relative | 布尔值 | true |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::load::report_relative: false
parameter_defaults:
ExtraConfig:
collectd::plugin::load::report_relative: false
其他资源
-
有关配置
load插件的更多信息,请参阅 load。
5.19. collectd::plugin::mcelog 复制链接链接已复制到粘贴板!
使用 mcelog 插件发送与 Machine Check Exceptions 相关的通知和统计信息。将 mcelog 配置为以守护进程模式运行并启用日志记录功能。
| 参数 | 类型 |
|---|---|
| Mcelogfile | 字符串 |
| 内存 |
hash |
配置示例:
parameter_defaults:
CollectdExtraPlugins: mcelog
CollectdEnableMcelog: true
parameter_defaults:
CollectdExtraPlugins: mcelog
CollectdEnableMcelog: true
其他资源
-
有关配置
mcelog插件的更多信息,请参阅 mcelog。
5.20. collectd::plugin::memcached 复制链接链接已复制到粘贴板!
使用 memcached 插件检索有关 memcached 缓存使用情况、内存和其他相关信息的信息。
| 参数 | 类型 |
|---|---|
| 实例 | Hash |
| interval | 整数 |
配置示例:
其他资源
-
有关配置
memcached插件的更多信息,请参阅 memcached。
5.21. collectd::plugin::memory 复制链接链接已复制到粘贴板!
使用 memory 插件检索有关系统内存的信息。
This plugin is enabled by default.
This plugin is enabled by default.
| 参数 | 类型 |
|---|---|
| 默认值 | valuesabsolute |
| 布尔值 | true |
| valuespercentage | 布尔值 |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::memory::valuesabsolute: true
collectd::plugin::memory::valuespercentage: false
parameter_defaults:
ExtraConfig:
collectd::plugin::memory::valuesabsolute: true
collectd::plugin::memory::valuespercentage: false
其他资源
-
有关配置
memory插件的更多信息,请参阅内存。
5.22. collectd::plugin::ntpd 复制链接链接已复制到粘贴板!
使用 ntpd 插件查询配置为允许访问统计数据的本地 NTP 服务器,并检索有关配置的参数和时间同步状态的信息。
| 参数 | 类型 |
|---|---|
| 主机 | Hostname |
| port | 端口号(整数) |
| reverselookups | 布尔值 |
| includeunitid | 布尔值 |
| interval | 整数 |
配置示例:
其他资源
-
有关配置
ntpd插件的更多信息,请参阅 ntpd。
5.23. collectd::plugin::ovs_stats 复制链接链接已复制到粘贴板!
使用 ovs_stats 插件收集 OVS 连接接口的统计信息。ovs_stats 插件使用 OVSDB 管理协议(RFC7047)监控机制从 OVSDB 获取统计信息。
| 参数 | 类型 |
|---|---|
| address | 字符串 |
| 网桥 | list |
| port | 整数 |
| 套接字 | 字符串 |
配置示例:
以下示例演示了如何启用 ovs_stats 插件。如果使用 OVS 部署 overcloud,则不需要启用 ovs_stats 插件。
parameter_defaults:
CollectdExtraPlugins:
- ovs_stats
ExtraConfig:
collectd::plugin::ovs_stats::socket: '/run/openvswitch/db.sock'
parameter_defaults:
CollectdExtraPlugins:
- ovs_stats
ExtraConfig:
collectd::plugin::ovs_stats::socket: '/run/openvswitch/db.sock'
其他资源
-
有关配置
ovs_stats插件的更多信息,请参阅 ovs_stats。
5.24. collectd::plugin::processes 复制链接链接已复制到粘贴板!
process 插件提供有关系统进程的信息。如果没有指定自定义进程匹配,则插件只按状态和进程分叉率收集进程数量。
要收集有关特定进程的更多详细信息,您可以使用 process 参数指定进程名称或 process_match 选项指定与正则表达式匹配的进程名称。process_match 输出的统计信息按进程名称分组。
| 参数 | 类型 | 默认值 |
|---|---|---|
| 进程 | Array | <undefined> |
| process_matches | Array | <undefined> |
| collect_context_switch | 布尔值 | <undefined> |
| collect_file_descriptor | 布尔值 | <undefined> |
| collect_memory_maps | 布尔值 | <undefined> |
其他资源
-
有关配置
processes插件的更多信息,请参阅 processes。
5.25. collectd::plugin::smart 复制链接链接已复制到粘贴板!
使用 智能 插件从节点上的物理磁盘收集 SMART (自助、分析和报告技术)信息。您还必须将参数 CollectdContainerAdditionalCapAdd 设置为 CAP_SYS_RAWIO,以允许 智能 插件读取 SMART 遥测。如果没有设置 CollectdContainerAdditionalCapAdd 参数,则会将以下信息写入 collectd 错误日志中:
智能插件:以 root 身份运行 collectd,但缺少 CAP_SYS_RAWIO 功能。该插件的读取功能可能会失败。您的 init 系统是否丢弃功能?。
| 参数 | 类型 |
|---|---|
| disks | Array |
| ignoreselected | 布尔值 |
| interval | 整数 |
配置示例:
parameter_defaults: CollectdExtraPlugins: - smart CollectdContainerAdditionalCapAdd: "CAP_SYS_RAWIO"
parameter_defaults:
CollectdExtraPlugins:
- smart
CollectdContainerAdditionalCapAdd: "CAP_SYS_RAWIO"
附加信息
-
有关配置
smart插件的更多信息,请参阅 smart。
5.26. collectd::plugin::swap 复制链接链接已复制到粘贴板!
使用 swap 插件收集有关可用和已用交换空间的信息。
| 参数 | 类型 |
|---|---|
| reportbydevice | 布尔值 |
| reportbytes | 布尔值 |
| valuesabsolute | 布尔值 |
| valuespercentage | 布尔值 |
| reportio | 布尔值 |
配置示例:
5.27. collectd::plugin::tcpconns 复制链接链接已复制到粘贴板!
使用 tcpconns 插件收集有关配置端口入站和出站的 TCP 连接数的信息。本地端口配置代表入口连接。远程端口配置代表出口连接。
| 参数 | 类型 |
|---|---|
| localports | port (Array) |
| remoteports | port (Array) |
| 侦听 | 布尔值 |
| allportssummary | 布尔值 |
配置示例:
5.28. collectd::plugin::thermal 复制链接链接已复制到粘贴板!
使用rmal 插件检索 ACPI thermal zone 信息。
| 参数 | 类型 |
|---|---|
| devices | Array |
| ignoreselected | 布尔值 |
| interval | 整数 |
配置示例:
parameter_defaults: CollectdExtraPlugins: - thermal
parameter_defaults:
CollectdExtraPlugins:
- thermal
5.29. collectd::plugin::uptime 复制链接链接已复制到粘贴板!
使用 uptime 插件收集有关系统正常运行时间的信息。
This plugin is enabled by default.
This plugin is enabled by default.
| 参数 | 类型 |
|---|---|
| interval | 整数 |
5.30. collectd::plugin::virt 复制链接链接已复制到粘贴板!
使用 virt 插件为主机上的虚拟机收集 CPU、磁盘、网络负载和其他指标。
在计算主机上默认启用此插件。
| 参数 | 类型 |
|---|---|
| 连接 | 字符串 |
| refresh_interval | Hash |
| domain | 字符串 |
| block_device | 字符串 |
| interface_device | 字符串 |
| ignore_selected | 布尔值 |
| plugin_instance_format | 字符串 |
| hostname_format | 字符串 |
| interface_format | 字符串 |
| extra_stats | 字符串 |
配置示例:
ExtraConfig: collectd::plugin::virt::hostname_format: "name uuid hostname" collectd::plugin::virt::plugin_instance_format: metadata
ExtraConfig:
collectd::plugin::virt::hostname_format: "name uuid hostname"
collectd::plugin::virt::plugin_instance_format: metadata
其他资源
有关配置 virt 插件的详情,请参考 virt。
5.31. collectd::plugin::vmem 复制链接链接已复制到粘贴板!
使用 vmem 插件从内核子系统收集有关虚拟内存的信息。
| 参数 | 类型 |
|---|---|
| 详细 | 布尔值 |
| interval | 整数 |
配置示例:
5.32. collectd::plugin::write_http 复制链接链接已复制到粘贴板!
通过使用带有 JSON 的 POST 请求和编码指标,或使用 PUTVAL 命令,使用 write_http 输出插件向 HTTP 服务器提交值。
| 参数 | 类型 |
|---|---|
| 确保 | Enum[present,absent] |
| 节点 | Hash[String, Hash[String, Scalar]] |
| urls | Hash[String, Hash[String, Scalar]] |
| manage_package | 布尔值 |
配置示例:
其他资源
-
有关配置
write_http插件的更多信息,请参阅 write_http。
5.33. collectd::plugin::write_kafka 复制链接链接已复制到粘贴板!
使用 write_kafka 插件将值发送到 Kafka 主题。使用一个或多个主题块配置 write_kafka 插件。对于每个主题块,您必须指定一个唯一的名称和一个 Kafka producer。您可以在主题块中使用以下 per-topic 参数:
| 参数 | 类型 |
|---|---|
| kafka_hosts | array[String] |
| topics | Hash |
| 属性 | Hash |
| meta | Hash |
配置示例:
其他资源:
有关如何配置 write_kafka 插件的更多信息,请参阅 write_kafka。