操作测量
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。
使用直接文档反馈(DDF)功能
使用 添加反馈 DDF 功能,用于特定句子、段落或代码块上的直接注释。
- 以 Multi-page HTML 格式查看文档。
- 请确定您看到文档右上角的 反馈 按钮。
- 用鼠标指针高亮显示您想评论的文本部分。
- 点 添加反馈。
- 在添加反馈项中输入您的意见。
- 可选:添加您的电子邮件地址,以便文档团队可以联系您以讨论您的问题。
- 点 Submit。
第 1 章 操作测量简介 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenStack Platform (RHOSP)环境中的 Telemetry 服务组件来跟踪物理和虚拟资源,并使用在 Gnocchi 后端上存储聚合的数据收集守护进程收集指标,如 CPU 使用率和资源可用性。
您可以使用可用性和性能监控工具来测量和维护 RHOSP 环境。这些工具执行以下功能:
- 可用性监控
- 监控 RHOSP 环境中的所有组件,并确定任何组件当前是否出现停机或无法正常工作。您还可以将系统配置为在发现问题时提醒您。
- 性能监控
- 定期收集系统信息并提供使用数据收集守护进程存储和监控值的机制。此守护进程存储它收集的数据,如操作系统和日志文件。它还可使数据通过网络可用。您可以使用从数据收集的统计信息来监控系统、查找性能瓶颈和预测将来的系统负载。
1.1. Telemetry 架构 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform (RHOSP) Telemetry 为基于 OpenStack 的云提供用户级使用情况数据。您可以使用这些数据进行客户计帐、系统监控或警报。您可以配置 Telemetry 组件从现有 RHOSP 组件发送的通知中收集数据,如计算使用情况事件,或者轮询 RHOSP 基础架构资源,如 libvirt。Telemetry 将收集的数据发布到包括数据存储和消息队列的各种目标。
Telemetry 由以下组件组成:
- 数据收集 :Telemetry 使用 Ceilometer 收集指标和事件数据。更多信息请参阅 第 1.2.1 节 “Ceilometer”。
- 存储 :Telemetry 将指标数据存储在 Gnocchi 中,并将事件数据存储在 Panko 中。更多信息请参阅 第 1.3 节 “使用 Gnocchi 存储”。
- 警报服务:Telemetry 使用 Alarming 服务(Aodh)根据定义的规则根据 Ceilometer 收集的指标或事件数据来触发操作。
收集数据后,您可以使用第三方工具显示和分析指标数据,您可以使用 Alarming 服务为事件配置警报。
图 1.1. Telemetry 架构
1.1.1. 监控组件的支持状态 复制链接链接已复制到粘贴板!
使用这个表来查看 Red Hat OpenStack Platform 中监控组件的支持状态。
| 组件 | 完全支持自 | 中弃用 | 删除自 | 备注 |
|---|---|---|---|---|
| Aodh | RHOSP 9 | RHOSP 15 | 支持自动扩展用例。 | |
| Ceilometer | RHOSP 4 | 支持自动扩展和服务遥测框架(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)支持两种类型的数据收集:
- Ceilometer 用于 OpenStack 组件级监控。更多信息请参阅 第 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 节点上运行,并轮询资源利用率统计。此代理与轮询代理
ceilometer-polling与使用参数--polling namespace-compute一起运行相同。 -
中央代理(ceilometer-agent-central) :在中央管理服务器上运行,以轮询不与实例或 Compute 节点关联的资源利用率统计。您可以启动多个代理来横向扩展服务。这与轮询代理
ceilometer-polling与参数--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 发布程序时,指标和资源信息将推送到 Gnocchi,以优化时间序列。确保您在身份服务中注册了 Gnocchi,因为 Ceilometer 通过身份服务发现确切的路径。
- Panko :您可以在 panko 中存储 Ceilometer 的事件数据,该界面提供了一个 HTTP REST 接口,以在 Red Hat OpenStack Platform 中查询系统事件。Panko 已被弃用。
配置发布者参数
您可以为遥测服务内每个数据点配置多发布程序,使相同的技术计量或事件多次发布到多个目的地,每个都可能使用不同的传输方法。
流程
创建一个 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
1.2.2. collectd 复制链接链接已复制到粘贴板!
性能监控会定期收集系统信息,并提供一种机制,使用收集的数据代理以各种方式存储和监控值。红帽支持 collectd 守护进程作为数据收集代理。此守护进程将数据存储在时间序列数据库中。红帽支持的数据库之一称为 Gnocchi。您可以使用此存储的数据来监控系统、查找性能瓶颈和预测将来的系统负载。
其他资源
- 有关 Gnocchi 的更多信息,请参阅 第 1.3 节 “使用 Gnocchi 存储”。
1.3. 使用 Gnocchi 存储 复制链接链接已复制到粘贴板!
Gnocchi 是开源时间序列数据库。它以非常大的规模存储指标,并提供对操作器和用户的指标和资源的访问权限。Gnocchi 使用归档策略来定义计算和要保留的聚合数;以及索引器驱动程序,以存储所有资源、归档策略和指标的索引。
1.3.1. 归档策略:存储时间序列数据库中的短期和长期数据 复制链接链接已复制到粘贴板!
归档策略定义了计算的聚合以及要保留的聚合数量。Gnocchi 支持不同的聚合方法,如最小值、最大值、平均数、Nthile 和标准偏差。这些聚合会在特定时间段的时间段内计算名为 granularity 并保留的。
归档策略定义了指标的聚合方式,以及它们的存储时间。每个归档策略定义为 timespan 的点数。
例如,如果您的归档策略定义了粒度为 1 秒的 10 点策略,则时间序列存档最多保留 10 秒,各自代表一个超过 1 秒的聚合。这意味着,时间序列的最大值为上限,在最近点和旧点之间保留 10 秒的数据。
归档策略也定义使用哪些聚合方法。默认设置为参数 default_aggregation_methods,其默认值为 mean、min、max. sum、std、count。因此,根据用例,归档策略和粒度会有所不同。
其他资源
- 有关归档策略的更多信息,请参阅 规划和管理归档策略。
1.3.2. 索引器驱动程序 复制链接链接已复制到粘贴板!
索引器负责存储所有资源、归档策略和指标的索引及其定义、类型和属性。它还负责将资源与指标链接。Red Hat OpenStack Platform director 默认安装 indexer 驱动程序。您需要一个数据库来索引 Gnocchi 处理的所有资源和指标。支持的驱动程序是 MySQL。
1.3.3. Gnocchi Metric-as-a-Service 术语 复制链接链接已复制到粘贴板!
下表包含 Metric-as-a-Service 功能常用术语的定义。
| 术语 | 定义 |
|---|---|
| 聚合方法 | 种函数用于将多个测量结果聚合到聚合中。例如,min 聚合方法将不同测量结果的值聚合到时间范围中所有测量结果的最小值。 |
| aggregate | 根据归档策略,从多个测量结果生成的数据点元数据。聚合由时间戳和值组成。 |
| 归档策略 | 附加到指标的聚合存储策略。归档策略决定聚合在指标中保留的时长,以及如何聚合聚合(聚合方法)。 |
| granularity | 在一系列指标的聚合中两个聚合之间的时间。 |
| 测量 | API 发送到时间序列数据库的传入数据点元。测量由时间戳和值组成。 |
| 指标 | 由 UUID 标识的实体。指标可以使用名称附加到资源。指标存储其聚合的方式由与指标关联的归档策略定义。 |
| 资源 | 代表您与指标关联的任何实体。资源由唯一 ID 标识,可以包含属性。 |
| 时间序列 | 按时间排序的聚合列表。 |
| timespan | 指标保留其聚合的时间周期。它用于归档策略的上下文。 |
1.4. 显示指标数据 复制链接链接已复制到粘贴板!
您可以使用以下工具显示和分析指标数据:
- Grafana :开源指标分析和视觉化套件。Grafana 最常用于可视化时间序列数据以进行基础架构和应用程序分析。
- 红帽 CloudForms :IT 部门用来控制用户自助式服务功能的基础架构管理平台,以调配、管理并确保虚拟机及私有云中的合规性。
其他资源
- 有关 Grafana 的更多信息,请参阅 第 1.4.1 节 “使用并连接 Grafana 来显示数据”。
- 有关 Red Hat Cloudforms 的更多信息,请参阅 产品文档。
1.4.1. 使用并连接 Grafana 来显示数据 复制链接链接已复制到粘贴板!
您可以使用第三方软件(如 Grafana)来查看收集和存储的指标的图形化表示。
Grafana 是一个开源指标分析、监控和视觉化套件。要安装和配置 Grafana,请参阅官方 Grafana 文档。
第 2 章 规划运营测量 复制链接链接已复制到粘贴板!
您监控的资源取决于您的业务需求。您可以使用 Ceilometer 或 collectd 来监控您的资源。
- 如需有关 collectd 测量的更多信息,请参阅 第 2.2 节 “collectd 测量”。
- 有关 Ceilometer 测量的更多信息,请参阅 第 2.1 节 “Ceilometer 测量”。
2.1. Ceilometer 测量 复制链接链接已复制到粘贴板!
有关 Ceilometer 测量的完整列表,请参阅 https://docs.openstack.org/ceilometer/train/admin/telemetry-measurements.html
2.2. collectd 测量 复制链接链接已复制到粘贴板!
以下测量是最常用的 collectd 指标:
- disk
- interface
- load
- 内存
- 进程
- tcpconns
有关测量结果的完整列表,请参阅 collectd 指标和事件。
2.3. 规划数据存储 复制链接链接已复制到粘贴板!
Gnocchi 存储数据点的集合,其中每个数据点都是一个聚合的。存储格式使用不同的技术进行压缩。因此,若要计算时间序列数据库的大小,您必须根据最糟糕的情况来估算大小。
流程
计算数据点数:
point 数量 = timespan / granularity
例如,如果要使用一分钟分辨率保留一个年的数据,请使用公式:
数据点数 = (365 天 24 小时 X 60 分钟)/1 分钟的数据点数 = 525600
计算时间序列数据库的大小:
字节大小 = 数据点 X 8 字节数
如果您将这个公式应用到示例,则结果为 4.1 MB:
字节大小 = 525600 点 X 8 字节 = 4204800 字节 = 4.1 MB
这个值是一个单一聚合时间序列数据库的估算存储要求。如果您的归档策略使用多个聚合方法(min、max、mean、ided、std、std 和 count),则按您使用的聚合方法数乘以该值。
2.4. 规划和管理归档策略 复制链接链接已复制到粘贴板!
归档策略定义了您如何聚合指标,以及将指标存储在时间序列数据库中的时长。归档策略定义为 timespan 的点数。
如果您的归档策略定义了粒度为 1 秒的 10 点策略,则时间序列存档最多保留 10 秒,各自代表 1 秒的聚合。这意味着,时间序列在最近点和旧点之间保留最多 10 秒的数据。归档策略也定义要使用的聚合方法。默认设置为参数 default_aggregation_methods,其中默认值设置为 mean、min、max。总、std、count.因此,根据用例,归档策略和粒度可能会有所不同。
要计划归档策略,请确定您熟悉以下概念:
- 指标.更多信息请参阅 第 2.4.1 节 “指标”。
- 测量结果。更多信息请参阅 第 2.4.2 节 “创建自定义测量结果”。
- 聚合.更多信息请参阅 第 2.4.4 节 “计算时间序列聚合的大小”。
- 指标的 worker。更多信息请参阅 第 2.4.5 节 “metricd 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. 默认归档策略 复制链接链接已复制到粘贴板!
默认情况下,Gnocc 具有以下归档策略:
低
- 5 分钟粒度超过 30 天
-
使用的聚合方法:
default_aggregation_methods - 每个指标的最大估算大小: 406 KiB
中
- 1 分钟粒度超过 7 天
- 365 天 1 小时粒度
-
使用的聚合方法:
default_aggregation_methods - 每个指标的最大估算大小:887 KiB
high
- 1 小时第二个粒度
- 1 周的 1 分钟粒度
- 1 小时粒度超过 1 年
-
使用的聚合方法:
default_aggregation_methods - 每个指标的最大预计大小:1 057 KiB
bool
- 1 年超过 1 秒的粒度
- 使用的聚合方法:最后
- 每个指标的最大优化大小:1 539 KiB
- 每个指标的最大 pessimistic 大小:277 172 KiB
2.4.4. 计算时间序列聚合的大小 复制链接链接已复制到粘贴板!
Gnocchi 存储一系列数据点,其中每个点都是一个聚合的。存储格式使用不同的技术进行压缩。因此,根据最糟糕的情况,计算时间序列的大小估计是估算的,如下例所示。
流程
使用此公式计算点数:
point 数量 = timespan / granularity
例如,如果要使用一分钟分辨率保留一年的数据:
点数 = (365 天 X 24 小时 X 60 分钟)/1 分钟
点数 = 525600
要计算点大小(以字节为单位),请使用这个公式:
字节大小(以字节为单位) = 点 X 8 字节数
字节大小 = 525600 点 X 8 字节 = 4204800 字节 = 4.1 MB
这个值是一个单一聚合时间序列的估算存储要求。如果您的归档策略使用多个聚合方法 - 分钟、max、mean、sted、std、count - 按您使用的聚合方法数乘以该值。
2.4.5. metricd worker 复制链接链接已复制到粘贴板!
您可以使用 metricd 守护进程来处理测量结果,创建聚合、存储测量结果,以及删除指标。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 章 管理警报 复制链接链接已复制到粘贴板!
您可以使用遥测 Alarming 服务(aodh)根据定义的规则根据 Ceilometer 或 Gnocchi 收集的指标数据来触发操作。
警报可处于以下状态之一:
- ok
- 指标或事件处于可接受的状态。
- 触发
- 指标或事件超出定义的 ok 状态。
- 数据不足
- 警报状态未知。这有多种原因,例如,请求的粒度没有数据,检查还没有执行,以此类推。
3.1. 查看现有警报 复制链接链接已复制到粘贴板!
您可以查看现有的 Telemetry 警报信息,并列出分配给资源的计量,以检查指标的当前状态。
流程
列出现有的 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 点(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 之间的数字,并确保该值大于遥测 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. 示例:监控实例的磁盘活动 复制链接链接已复制到粘贴板!
本例演示了如何使用属于 Telemetry Alarming 服务的警报来监控特定项目中包含的所有实例的累积磁盘活动。
流程
检查现有项目,再选择要监控的项目的适当 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 因此,指标值列出了您可以使用 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的监控任务。此任务会根据您指定的设置触发事件。例如,当实例在延长持续时间超过 80% 时,要引发日志条目,请使用以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - comparison-operator:如果 CPU 使用率大于或等于 80%,ge 运算符定义了警报触发。
- granularity:指标关联有一个归档策略,策略可以具有各种粒度。例如,每月 1 小时的 5 分钟聚合为 1 小时聚合。granularity 值必须与归档策略中描述的持续时间匹配。
- 评估-periods:在警报触发前需要传递的粒度周期数。例如,如果您将此值设置为 2,则在警报触发前,CPU 用量需要超过 80% 才能触发两个轮询周期。
[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 等等。集中式日志记录工具链包括以下组件:
- log Collection Agent (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 文件中找到这些参数。
| 参数 | 描述 |
|---|---|
|
|
配置 |
|
| 包含发布 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/containers/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)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| 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)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| Block Storage 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. compute (nova)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Compute API 服务 | openstack-nova-api.service | /var/log/containers/nova/nova-api.log |
| OpenStack 计算证书服务器 | openstack-nova-cert.service | /var/log/containers/nova/nova-cert.log |
| OpenStack 计算服务 | 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 计算调度程序服务 | openstack-nova-scheduler.service | /var/log/containers/nova/nova-scheduler.log |
4.10.4. 仪表板(horizon)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| 特定用户交互的日志 | 仪表板接口 | /var/log/containers/horizon/horizon.log |
Apache HTTP 服务器将多个额外的日志文件用于 Dashboard 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)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack 身份服务 | openstack-keystone.service | /var/log/containers/keystone/keystone.log |
4.10.6. Image Service (glance)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| 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)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Neutron DHCP Agent | 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 仅将日志发送到系统日志功能。
默认情况下,所有 Object Storage 日志文件都会使用 local0、local1 和 local2 syslog 工具进入 /var/log/containers/swift.log。
对象存储的日志消息分为两大类:由 REST API 服务以及后台守护进程使用它们。API 服务消息包含每个 API 请求的一个行,其方式与常见的 HTTP 服务器类似;前端(Proxy)和后端(Account、Container、Object)服务也会发布此类消息。守护进程消息的结构较少,通常包含有关执行定期任务的守护进程的人类可读信息。但是,无论对象存储的哪个部分生成消息,源身份始终位于行首。
以下是代理消息的示例:
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)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| OpenStack Heat API 服务 | openstack-heat-api.service | /var/log/containers/heat/heat-api.log |
| OpenStack Heat Engine Service | openstack-heat-engine.service | /var/log/containers/heat/heat-engine.log |
| 编排服务事件 | 不适用 | /var/log/containers/heat/heat-manage.log |
4.10.11. 遥测(ceilometer)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 服务名称 | 日志路径 |
|---|---|---|
| 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 集合 | 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 (警报服务)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 容器名称 | 日志路径 |
|---|---|---|
| 警报 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 (指标存储)日志文件 复制链接链接已复制到粘贴板!
| 服务 | 容器名称 | 日志路径 |
|---|---|---|
| Gnocchi API | gnocchi_api | /var/log/containers/httpd/gnocchi-api/gnocchi_wsgi_access.log |
| Gnocchi 指标 | 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) 16.1 环境配置多个 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 查询的特定插件的指标表。
collectd::plugin::aggregation
您可以使用 聚合 插件将多个值聚合到一起。使用聚合函数,如 sum、average、min 和 max 来计算指标,如平均和 CPU 统计。
| 参数 | 类型 |
|---|---|
| 主机 | 字符串 |
| plugin | 字符串 |
| plugininstance | 整数 |
| agg_type | 字符串 |
| 类型实例 | 字符串 |
| sethost | 字符串 |
| setplugin | 字符串 |
| setplugininstance | 整数 |
| settypeinstance | 字符串 |
| groupby | 字符串数组 |
| computesum | 布尔值 |
| computenum | 布尔值 |
| Computeaverage | 布尔值 |
| 计算最小值 | 布尔值 |
| 计算最大大小 | 布尔值 |
| calculatestddev | 布尔值 |
配置示例:
部署三个聚合配置以创建以下文件:
-
aggregator-calcCpuLoadAvg.conf:按主机和状态分组的所有 CPU 内核的平均 CPU 负载 -
aggregator-calcCpuLoadMinMax.conf: : minimum and maximum CPU load groups by host and state -
aggregator-calcMemoryTotalMaxAvg.conf:最大、平均值和总计内存,按类型分组的内存总数
聚合配置使用默认的 CPU 和内存插件配置。
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 参数的值。
配置示例:
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,它连接到 Apache Web 服务器,地址为 http://10.0.0.111/mod_status?auto。您必须将 ?auto 附加到 URL 的末尾,以防止状态页面返回为与插件不兼容的类型。
其他资源
有关配置 apache 插件的更多信息,请参阅 apache。
collectd::plugin::battery
使用 battery 插件报告笔记本电脑的剩余容量、能力或自愿。
| 参数 | 类型 |
|---|---|
| values_percentage | 布尔值 |
| report_degraded | 布尔值 |
| query_state_fs | 布尔值 |
| interval | 整数 |
其他资源
有关配置 btery 插件 的更多信息,请参阅 battery。
collectd::plugin::bind
使用 bind 插件检索与 DNS 服务器查询和响应相关的编码统计。插件将值提交到 collectd。
| 参数 | 类型 |
|---|---|
| url | HTTP URL |
| memorystats | 布尔值 |
| opcodes | 布尔值 |
| parsetime | 布尔值 |
| qtypes | 布尔值 |
| resolverstats | 布尔值 |
| serverstats | 布尔值 |
| zonemaintstats | 布尔值 |
| 视图 | 数组 |
| interval | 整数 |
| 参数 | 类型 |
|---|---|
| name | 字符串 |
| qtypes | 布尔值 |
| resolverstats | 布尔值 |
| cacherrsets | 布尔值 |
| zones | 字符串列表 |
配置示例:
collectd::plugin::ceph
使用 ceph 插件从 ceph 守护进程收集数据。
| 参数 | 类型 |
|---|---|
| Daemon | 数组 |
| longrunavglatency | 布尔值 |
| convertspecialmetrictypes | 布尔值 |
| package_name | 字符串 |
配置示例:
如果 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
parameter_defaults:
ExtraConfig:
collectd::plugin::connectivity::interfaces:
- eth0
- eth1
其他资源
有关配置连接插件的更多信息,请参阅 连接 。
collectd::plugin::conntrack
使用 conntrack 插件跟踪 Linux 连接跟踪表中的条目数。此插件没有参数。
collectd::plugin::contextswitch
使用 ContextSwitch 插件收集系统处理的上下文切换数。唯一可用的参数是 interval,这是以秒为单位定义的轮询间隔。
其他资源
有关配置 contextswitch 插件的更多信息,请参阅 contextswitch。
collectd::plugin::cpu
使用 cpu 插件监控 CPU 在各种状态花费的时间,如空闲、执行用户代码、执行系统代码、等待 IO-operations 和其他状态。
cpu 插件会收集 jiffies,而不是百分比值。jiffy 的值取决于您的硬件平台的时钟频率,因此不是一个绝对的时间间隔单位。
要报告百分比值,请将布尔值参数 reportbycpu 和 reportbystate 设置为 true,然后将布尔值 值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。
collectd::plugin::cpufreq
使用 cpufreq 插件收集当前的 CPU 频率。此插件没有参数。
collectd::plugin::csv
使用 csv 插件将值写入 CSV 格式的本地文件。
| 参数 | 类型 |
|---|---|
| datadir | 字符串 |
| storerates | 布尔值 |
| interval | 整数 |
collectd::plugin::df
使用 df 插件收集文件系统的磁盘空间使用信息。
此插件默认为启用。
| Name | 描述 | 查询 |
|---|---|---|
| free | 可用磁盘空间量 |
|
| 保留 | 保留磁盘空间量 |
|
| 使用的 | 已用磁盘空间量 |
|
| 参数 | 类型 | 默认值 |
|---|---|---|
| devices | 数组 |
|
| fstypes | 数组 |
|
| ignoreselected | 布尔值 | true |
| 挂载点 | 数组 |
|
| 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。
collectd::plugin::disk
使用 disk 插件收集硬盘的性能统计信息,如果支持,则需使用分区。
所有磁盘会被默认监控。您可以使用 ignoreselected 参数来忽略磁盘列表。示例配置会忽略 sda、sdb 和 sdc 磁盘,并监控列表中不包含的所有磁盘。
此插件默认为启用。
| 参数 | 类型 | 默认值 |
|---|---|---|
| disks | 数组 |
|
| 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
其他资源
有关配置磁盘插件的更多信息,请参阅 磁盘 。
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
parameter_defaults:
ExtraConfig:
collectd::plugin::hugepages::values_percentage: true
其他资源
-
有关配置
巨页插件的更多信息,请参阅 大页。
collectd::plugin::interface
使用 interface 插件来测量 octets 中的接口流量,每秒数据包每秒和错误率。
此插件默认为启用。
| 参数 | 类型 | 默认 |
|---|---|---|
| interfaces | 数组 |
|
| 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
其他资源
-
有关配置
接口插件的更多信息,请参阅 接口。
collectd::plugin::load
使用 load 插件收集系统负载以及系统使用的概览。
此插件默认为启用。
| 参数 | 类型 | 默认 |
|---|---|---|
| report_relative | 布尔值 | true |
配置示例:
parameter_defaults:
ExtraConfig:
collectd::plugin::load::report_relative: false
parameter_defaults:
ExtraConfig:
collectd::plugin::load::report_relative: false
其他资源
-
有关配置
load插件的更多信息,请参阅 加载。
collectd::plugin::mcelog
使用 mcelog 插件,在出现时发送通知和与机器检查例外相关的统计信息。将 mcelog 配置为以守护进程模式运行并启用日志记录功能。
| 参数 | 类型 |
|---|---|
| Mcelogfile | 字符串 |
| 内存 |
hash |
配置示例:
parameter_defaults:
CollectdExtraPlugins: mcelog
CollectdEnableMcelog: true
parameter_defaults:
CollectdExtraPlugins: mcelog
CollectdEnableMcelog: true
其他资源
-
有关配置
mcelog插件的更多信息,请参阅 mcelog。
collectd::plugin::memcached
使用 memcached 插件检索有关 memcached 缓存使用情况、内存以及其他相关信息的信息。
| 参数 | 类型 |
|---|---|
| 实例 | hash |
| interval | 整数 |
配置示例:
其他资源
-
有关配置
memcached插件的更多信息,请参阅 memcached。
collectd::plugin::memory
使用 memory 插件检索有关系统内存的信息。
此插件默认为启用。
| 参数 | 类型 |
|---|---|
| 默认值 | 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
其他资源
-
有关配置
内存插件的更多信息,请参阅 内存。
collectd::plugin::ntpd
使用 ntpd 插件查询本地 NTP 服务器,该服务器已配置为允许访问统计数据,并检索有关配置的参数和时间同步状态的信息。
| 参数 | 类型 |
|---|---|
| 主机 | Hostname |
| port | 端口号(整数) |
| reverselookups | 布尔值 |
| includeunitid | 布尔值 |
| interval | 整数 |
配置示例:
其他资源
-
有关配置
ntpd插件的更多信息,请参阅 ntpd。
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'
parameter_defaults:
CollectdExtraPlugins:
- ovs_stats
ExtraConfig:
collectd::plugin::ovs_stats::socket: '/run/openvswitch/db.sock'
其他资源
-
有关配置
ovs_stats插件的更多信息,请参阅 ovs_stats。
collectd::plugin::processes
进程插件 提供有关系统进程的信息。如果没有指定进程匹配,则插件仅通过状态收集进程数量和进程分叉率。
要收集特定进程的更多详细信息,您可以使用 process 参数指定进程名称或 process_match 选项指定与正则表达式匹配的进程名称。process_match 输出的统计信息按进程名称分组。
此插件默认为启用。
| 参数 | 类型 | 默认值 |
|---|---|---|
| 进程 | 数组 | <undefined> |
| process_matches | 数组 | <undefined> |
| collect_context_switch | 布尔值 | <undefined> |
| collect_file_descriptor | 布尔值 | <undefined> |
| collect_memory_maps | 布尔值 | <undefined> |
其他资源
-
有关配置进程插件的更多信息,请参阅
进程。https://collectd.org/documentation/manpages/collectd.conf.5.shtml#plugin_processes
collectd::plugin::smart
使用 智能 插件从节点上的物理磁盘收集 SMART 信息。您还必须将参数 CollectdContainerAdditionalCapAdd 设置为 CAP_SYS_RAWIO 以允许 智能 插件读取 SMART 遥测。如果您没有设置 CollectdContainerAdditionalCapAdd 参数,则会将以下消息写入 collectd 错误日志:
smart 插件:以 root 用户身份运行 collectd,但缺少 CAP_SYS_RAWIO 功能。插件的读取功能可能会失败。您的 init 系统是否丢弃功能?。
| 参数 | 类型 |
|---|---|
| disks | 数组 |
| ignoreselected | 布尔值 |
| interval | 整数 |
配置示例:
parameter_defaults: CollectdExtraPlugins: - smart CollectdContainerAdditionalCapAdd: "CAP_SYS_RAWIO"
parameter_defaults:
CollectdExtraPlugins:
- smart
CollectdContainerAdditionalCapAdd: "CAP_SYS_RAWIO"
附加信息
-
有关配置
智能插件的更多信息,请参阅 smart。
collectd::plugin::swap
使用 swap 插件收集有关可用和已用 swap 空间的信息。
| 参数 | 类型 |
|---|---|
| reportbydevice | 布尔值 |
| reportbytes | 布尔值 |
| valuesabsolute | 布尔值 |
| valuespercentage | 布尔值 |
| reportio | 布尔值 |
配置示例:
collectd::plugin::tcpconns
使用 tcpconns 插件收集有关配置的端口入站或出站的 TCP 连接数的信息。本地端口配置代表到端口的入站连接。远程端口配置代表来自端口的出站连接。
| 参数 | 类型 |
|---|---|
| localports | 端口(ay) |
| remoteports | 端口(ay) |
| listening | 布尔值 |
| allportssummary | 布尔值 |
配置示例:
collectd::plugin::thermal
使用 rmal 插件检索 ACPI 热区域信息。
| 参数 | 类型 |
|---|---|
| devices | 数组 |
| ignoreselected | 布尔值 |
| interval | 整数 |
配置示例:
parameter_defaults: CollectdExtraPlugins: - thermal
parameter_defaults:
CollectdExtraPlugins:
- thermal
collectd::plugin::uptime
使用 uptime 插件收集有关系统正常运行时间的信息。
此插件默认为启用。
| 参数 | 类型 |
|---|---|
| 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::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。
collectd::plugin::vmem
使用 vmem 插件从内核子系统收集虚拟内存的信息。
| 参数 | 类型 |
|---|---|
| 详细 | 布尔值 |
| interval | 整数 |
配置示例:
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 | 布尔值 |
配置示例:
其他资源
-
有关配置
write_http插件的更多信息,请参阅 write_http。
collectd::plugin::write_kafka
使用 write_kafka 插件将值发送到 Kafka 主题。使用一个或多个主题块配置 write_kafka 插件。对于每个主题块,您必须指定一个唯一名称和一个 Kafka producer。您可以使用主题块中的以下每主题参数:
| 参数 | 类型 |
|---|---|
| kafka_hosts | 数组[String] |
| 主题 | hash |
| 属性 | hash |
| meta | hash |
配置示例:
其他资源:
有关如何配置 write_kafka 插件的更多信息,请参阅 write_kafka。