操作测量
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对文档提供反馈信息。与我们分享您的成功秘诀。
在 JIRA 中提供文档反馈
使用 Create Issue 表单对文档提供反馈。JIRA 问题将在 Red Hat OpenStack Platform Jira 项目中创建,您可以在其中跟踪您的反馈进度。
- 确保您已登录到 JIRA。如果您没有 JIRA 帐户,请创建一个帐户来提交反馈。
- 点击以下链接打开 Create Issue 页面: Create Issue
- 完成 Summary 和 Description 字段。在 Description 字段中,包含文档 URL、章节或章节号以及问题的详细描述。不要修改表单中的任何其他字段。
- 点 Create。
第 1 章 操作测量介绍 复制链接链接已复制到粘贴板!
您可以使用 Red Hat OpenStack Platform(RHOSP)环境中的 Telemetry 服务组件来跟踪物理和虚拟资源,并通过将聚合存储在 Gnocchi 后端上的数据收集守护进程(如 CPU 用量和资源可用性)在部署中收集指标。
您可以使用可用性和性能监控工具来测量和维护 RHOSP 环境。这些工具执行以下功能:
- 可用性监控
- 监控 RHOSP 环境中的所有组件,并确定任何组件当前是否遇到故障或无法正常工作。您还可以配置系统,以便在发现问题时提醒您。
- 性能监控
- 定期收集系统信息,通过使用数据收集守护进程提供存储和监控值的机制。此守护进程存储它收集的数据,如操作系统和日志文件。它还通过网络提供数据。您可以使用从数据收集的统计数据来监控系统,查找性能瓶颈和预测将来的系统负载。
1.1. Telemetry 架构 复制链接链接已复制到粘贴板!
Red Hat OpenStack Platform(RHOSP)Telemetry 为基于 OpenStack 的云提供用户级使用情况数据。您可以使用数据进行客户账单、系统监控或警报。您可以配置遥测组件,以从现有 RHOSP 组件发送的通知(如计算使用事件)或通过轮询 RHOSP 基础架构资源(如 libvirt)收集数据。Telemetry 将收集的数据发布到各种目标,包括数据存储和消息队列。
Telemetry 包括以下组件:
- 数据收集 :Telemetry 使用 Ceilometer 收集指标和事件数据。更多信息请参阅 第 1.2.1 节 “Ceilometer”。
- 存储 :遥测将指标数据存储在 Gnocchi 中,并在 Panko 中存储事件数据。更多信息请参阅 第 1.3 节 “使用 Gnocchi 存储”。
- 警报服务:遥测使用 Alarming 服务(Aodh)根据 Ceilometer 收集的指标或事件数据的定义规则触发操作。
收集数据后,您可以使用第三方工具显示和分析指标数据,您可以使用 Alarming 服务为事件配置警报。
图 1.1. Telemetry 架构
1.1.1. 支持监控组件的状态 复制链接链接已复制到粘贴板!
使用此表查看 Red Hat OpenStack Platform (RHOSP)中监控组件的支持状态。
组件 | 完全支持自 | 中已弃用 | 删除自 | 备注 |
---|---|---|---|---|
Nhce | 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)支持两种类型的数据收集:
- OpenStack 组件级监控的 Ceilometer.更多信息请参阅 第 1.2.1 节 “Ceilometer”。
- collectd 用于基础架构监控。更多信息请参阅 第 1.2.2 节 “collectd”。
1.2.1. Ceilometer 复制链接链接已复制到粘贴板!
Ceilometer 是 OpenStack Telemetry 服务的默认数据收集组件,能够跨所有当前 OpenStack 核心组件对数据进行规范化和转换。Ceilometer 收集与 OpenStack 服务相关的计量和事件数据。用户可以根据部署配置访问收集的数据。
Ceilometer 服务使用三个代理从 Red Hat OpenStack Platform(RHOSP)组件收集数据:
-
计算代理(ceilometer-agent-compute) :在每个 Compute 节点上运行,并轮询资源使用情况统计。此代理与轮询代理
ceilometer-polling
与参数--polling namespace-compute
一起运行。 -
中央代理(ceilometer-agent-central) :在中央管理服务器上运行,轮询不与实例或 Compute 节点关联的资源利用统计信息。您可以启动多个代理来横向扩展服务。这与通过
--polling namespace-central
运行的轮询代理ceilometer-polling
操作相同。 - 通知代理(ceilometer-agent-notification) :在中央管理服务器上运行,并使用来自消息队列的消息来构建事件和计量数据。数据发布到定义的目标。Gnocchi 是默认目标。这些服务使用 RHOSP 通知总线进行通信。
Ceilometer 代理使用发布程序向对应的端点发送数据,如 Gnocchi。您可以在 pipeline.yaml
文件中配置此信息。
其他资源
- 有关发布程序的更多信息,请参阅 第 1.2.1.1 节 “publishers”。
1.2.1.1. publishers 复制链接链接已复制到粘贴板!
遥测服务提供多种传输方法,以将收集的数据传送到外部系统。此数据的消费者有所不同,例如监控系统,此类系统可以接受数据丢失,以及需要可靠的数据传输系统。Telemetry 提供处理这两个系统类型的要求的方法。您可以使用服务的发布组件通过消息总线将数据保存到持久性存储中,或将其发送到一个或多个外部消费者。一个链可以包含多个发布程序。
支持以下发布程序类型:
- Gnocchi(默认):Geploy publisher 处于启用时,测量和资源信息推送到 Gnocchi,以便优化存储。确保您在身份服务中注册了 Gnocchi,因为 Ceilometer 发现通过身份服务的确切路径。
- Panko :您可以在 panko 中存储来自 Ceilometer 的事件数据,它提供了 HTTP REST 接口来查询 Red Hat OpenStack Platform 中的系统事件。Panko 已被弃用。
配置发布程序参数
您可以为 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
$ openstack overcloud deploy --templates \ -e /home/custom/ceilometer-publisher.yaml -e <environment_files>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 有关参数的更多信息,请参阅高级 Overcloud 自定义指南中的 Overcloud 参数和 Heat 参数中的 Telemetry 参数 。
1.2.2. collectd 复制链接链接已复制到粘贴板!
性能监控会定期收集系统信息,并提供使用数据收集代理以各种方式存储和监控值的机制。红帽支持 collectd 守护进程作为数据收集代理。此守护进程将数据存储在时间序列数据库中。其中一个红帽支持的数据库称为 Gnocchi。您可以使用此存储的数据来监控系统,查找性能瓶颈和预测将来的系统负载。
其他资源
- 有关 Gnocchi 的更多信息,请参阅 第 1.3 节 “使用 Gnocchi 存储”。
1.3. 使用 Gnocchi 存储 复制链接链接已复制到粘贴板!
Gnocchi 是开源时间序列数据库。它将指标以非常大的规模存储,并提供对操作员和用户的指标和资源的访问权限。Gnocchi 使用存档策略来定义用于计算哪些聚合以及要保留的聚合量,以及索引器驱动程序来存储所有资源、归档策略和指标的索引。
1.3.1. 归档策略:将短期和长期数据存储在时间序列数据库中 复制链接链接已复制到粘贴板!
归档策略定义用于计算的聚合以及要保留的聚合数。Gnocchi 支持不同的聚合方法,如最小、最大值、平均、数百分比和标准开发。这些聚合在名为粒度的期间内计算,并保留特定时间span。
归档策略定义了指标的聚合方式,以及它们的存储时间。每个归档策略定义为一段时间span上的点数。
例如,如果您的归档策略定义了粒度为 1 秒的 10 点,则时间序列存档最多保留 10 秒,各自代表聚合超过 1 秒。这意味着,时间序列最长,在更新点和旧点之间保留 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 术语 复制链接链接已复制到粘贴板!
此表包含 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
- 内存
- Process
- tcpconns
2.3. 规划数据存储 复制链接链接已复制到粘贴板!
Gnocchi 存储一个数据点集合,每个数据点都是聚合的。存储格式使用不同的技术压缩。因此,要计算时间序列数据库的大小,您必须根据最糟的情况来估算大小。
使用 Red Hat OpenStack Platform (RHOSP) Object Storage (swift)进行时间序列数据库(Gnocchi)存储只支持小型和非生产环境。
流程
计算数据点数:
点数 = timespan / granularity
例如,如果要保留一分钟分辨率的数据,请使用公式:
数据点数 = (365 天 X 24 小时 X 60 分钟)/ 1 分钟的数据点数 = 525600
计算时间序列数据库的大小:
大小(以字节为单位) = 数据点数 X 8 字节
如果您将这个公式应用到示例,则结果为 4.1 MB:
bytes = 525600 指向 X 8 字节 = 4204800 字节 = 4.1 MB
这个值是一个聚合的时间序列数据库估计的存储要求。如果您的归档策略使用多个聚合方法(min、max、mean、sum、ad、cest、count),根据您使用的聚合方法数乘以这个值。
2.4. 规划和管理归档策略 复制链接链接已复制到粘贴板!
归档策略定义了您如何聚合指标以及将指标存储在时间序列数据库中的时长。归档策略定义为时间span上的点数。
如果您的归档策略定义了粒度为 1 秒的 10 点策略,则时间序列存档最多保留 10 秒,各自代表聚合超过 1 秒。这意味着,时间序列在更新点和旧点之间最多保留 10 秒数据。归档策略也定义了要使用的聚合方法。默认设置为参数 default_aggregation_methods
,其中默认值设置为 mean
,min
,max
。和
、std
、计数
。因此,根据用例,归档策略和粒度可能会有所不同。
要规划归档策略,请确保您已熟悉以下概念:
- 指标.更多信息请参阅 第 2.4.1 节 “指标”。
- 测量结果。更多信息请参阅 第 2.4.2 节 “创建自定义测量结果”。
- 聚合.更多信息请参阅 第 2.4.4 节 “计算时间序列聚合的大小”。
- 指标工作线程.更多信息请参阅 第 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 的传入 datapoint tuple。它由一个时间戳和一个值组成。您可以创建自己的自定义测量结果。
流程
创建自定义测量:
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. 默认归档策略 复制链接链接已复制到粘贴板!
默认情况下,Gunome 具有以下归档策略:
低
- 5 分钟粒度,超过 30 天
-
aggregation methods used:
default_aggregation_methods
- 每个指标的最大估算大小: 406 KiB
中
- 7 天的 1 分钟粒度
- 1 小时粒度,超过 365 天
-
aggregation methods used:
default_aggregation_methods
- 每个指标的最大估算大小: 887 KiB
high
- 1 小时上的 1 秒粒度
- 1 分钟粒度超过 1 周
- 1 年 1 小时粒度
-
aggregation methods used:
default_aggregation_methods
- 每个指标的最大估算大小: 1 057 KiB
bool
- 1 年 1 年第二个粒度
- 使用的聚合方法:最后
- 每个指标的最大 optimistic 大小:1 539 KiB
- 每个指标的最大数值:277 172 KiB
2.4.4. 计算时间序列聚合的大小 复制链接链接已复制到粘贴板!
Gnocchi 存储一个数据点集合,其中每个点都是聚合的。存储格式使用不同的技术压缩。因此,根据最糟的情况计算时间序列的大小估计,如下例所示。
流程
使用此公式计算点数:
点数 = timespan / granularity
例如,如果要在一分钟内保留一年的数据:
点数 = (365 天 X 24 小时 X 60 分钟)/ 1 分钟
点数 = 525600
要计算点大小(以字节为单位),请使用这个公式:
大小(以字节为单位) = 指向 X 8 字节数
bytes = 525600 指向 X 8 字节 = 4204800 字节 = 4.1 MB
这个值是一个聚合的时间序列的估算存储要求。如果您的归档策略使用多个聚合方法 - min、max、mean, sum、ad、sd、count - 按您使用的聚合方法数乘以这个值。
2.4.5. 指标 worker 复制链接链接已复制到粘贴板!
您可以使用 metricd 守护进程来处理测量、创建聚合、存储聚合(聚合存储)和删除指标中的测量结果。指标守护进程负责大多数 CPU 使用量和 I/O 作业在 Gnocchi 中。每个指标的归档策略决定了指标守护进程的执行速度。指标检查传入的存储,以定期检查新测量结果。要配置各个检查之间的延迟,您可以使用 [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> 是策略定义。使用逗号(,)分隔多个属性。使用冒号(:)分隔归档策略定义的名称和值。
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 list
Copy 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> /
# 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)来根据根据 Ceilometer 或 Gnocchi 收集的事件数据的定义规则触发操作。
警报可以处于以下状态之一:
- ok
- 指标或事件处于可接受的状态。
- 触发
- 指标或事件超出了定义的 ok 状态。
- insufficient data
- 警报状态未知。这可能会有若干原因,例如:请求粒度没有数据,检查还没有执行,以此类推。
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:mean
Copy 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. 编辑警报 复制链接链接已复制到粘贴板!
编辑警报时,您可以增加或减少警报的值阈值。
流程
要更新 threshold 值,请使用
openstack alarm update
命令。例如,要将警报阈值增加到 75%,请使用以下命令:openstack alarm update --name cpu_usage_high --threshold 75
# openstack alarm update --name cpu_usage_high --threshold 75
Copy 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=false
Copy 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_high
Copy 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 因此,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
的监控任务。此任务会根据您指定的设置触发事件。例如,若要在实例负载超过 80% 时引发日志条目,请使用以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - comparison-operator:ge operator 定义当 CPU 使用量大于或等于 80% 时警报触发。
- granularity:指标关联有归档策略,策略可以具有各种粒度。例如,一个月内 1 小时进行聚合的 5 分钟聚合 + 1 小时聚合。granularity 值必须与归档策略中描述的持续时间匹配。
- 评估:在警报触发前需要经过的粒度周期数。例如,如果您将此值设置为 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 服务。集中式日志记录工具链由以下组件组成:
- Log Collection Agent(Rsyslog)
- Data Store (ElasticSearch)
- API/Presentation Layer(Grafana)
Red Hat OpenStack Platform director 不会为集中日志记录部署服务器端组件。红帽不支持服务器端组件,包括 Elasticsearch 数据库和 Grafana。RHOSP 16.2 仅支持 Elasticsearch 版本 7 的 rsyslog。
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.yaml
Copy 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 证书的内容。 |
| 包含针对 Elasticsearch 进行客户端证书授权的内容。 |
|
包含与 cert |
4.4. 覆盖日志文件的默认路径 复制链接链接已复制到粘贴板!
如果您修改默认容器和修改服务日志文件的路径,还必须修改默认的日志文件路径。每个可组合的服务都有一个 < ;service_name>LoggingSource
参数。例如,对于 nova-compute 服务,参数是 NovaComputeLoggingSource
。
流程
要覆盖 nova-compute 服务的默认路径,请在配置文件中添加
NovaComputeLoggingSource
参数的路径:NovaComputeLoggingSource: tag: openstack.nova.compute file: /some/other/path/nova-compute.log
NovaComputeLoggingSource: tag: openstack.nova.compute file: /some/other/path/nova-compute.log
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意对于每个服务,
定义标签
和文件
。其他值默认是派生的。您可以修改特定服务的格式。这会直接传递给 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>.format
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下片段是一个更复杂的转换示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.5. 修改日志记录的格式 复制链接链接已复制到粘贴板!
您可以修改特定服务的日志记录启动格式。这会直接传递给 Rsyslog 配置。
Red Hat OpenStack Platform(RHOSP)日志记录的默认格式为('^[0-9]{4}-[0-9]except-[0-9]0-9 [0-9]0-9 [0-9]0-9(.[0-9]+ [0-9]+ [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.6. 测试 Rsyslog 和 Elasticsearch 之间的连接 复制链接链接已复制到粘贴板!
在客户端中,您可以验证 Rsyslog 和 Elasticsearch 之间的通信。
流程
-
导航到主机上的 Elasticsearch 连接日志文件
/var/log/rsyslog/omelasticsearch.log
,或主机上的/var/log/containers/rsyslog/omelasticsearch.log
。如果这个日志文件不存在,或者日志文件存在但不包含日志,则不会存在连接问题。如果日志文件存在并包含日志,则 Rsyslog 没有成功连接。
要从服务器端测试连接,请查看 Elasticsearch 日志中的连接问题。
4.7. 服务器端日志记录 复制链接链接已复制到粘贴板!
如果有一个 Elasticsearch 集群正在运行,则必须在 logging-environment-rsyslog.yaml
文件中配置 RsyslogElasticsearchSetting
参数以连接 overcloud 节点上运行的 Rsyslog。要配置 RsyslogElasticsearchSetting
参数,请参阅 https://www.rsyslog.com/doc/v8-stable/configuration/modules/omelasticsearch.html
4.8. 追溯 复制链接链接已复制到粘贴板!
当您遇到问题并开始故障排除时,您可以使用回溯日志诊断问题。在日志文件中,追溯通常包含几行信息,与同一问题相关的所有信息。
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.9. OpenStack 服务的日志文件位置 复制链接链接已复制到粘贴板!
每个 OpenStack 组件都有单独的日志记录目录,其中包含特定于正在运行的服务的文件。
4.9.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.9.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.9.3. 计算(nova)日志文件 复制链接链接已复制到粘贴板!
服务 | 服务名称 | 日志路径 |
---|---|---|
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 计算调度程序服务 | openstack-nova-scheduler.service | /var/log/containers/nova/nova-scheduler.log |
4.9.4. dashboard(horizon)日志文件 复制链接链接已复制到粘贴板!
服务 | 服务名称 | 日志路径 |
---|---|---|
特定用户交互的日志 | 仪表板接口 | /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.9.5. Identity Service(keystone)日志文件 复制链接链接已复制到粘贴板!
服务 | 服务名称 | 日志路径 |
---|---|---|
OpenStack Identity Service | openstack-keystone.service | /var/log/containers/keystone/keystone.log |
4.9.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.9.7. 网络(neutron)日志文件 复制链接链接已复制到粘贴板!
服务 | 服务名称 | 日志路径 |
---|---|---|
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.9.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)服务会发布此类消息。守护进程消息的结构较少,通常包含关于执行其定期任务的守护进程的人类可读信息。但是,无论对象存储的哪个部分都生成消息,源身份始终位于行开头。
以下是代理消息的示例:
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.9.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.9.11. Telemetry(ceilometer)日志文件 复制链接链接已复制到粘贴板!
服务 | 服务名称 | 日志路径 |
---|---|---|
OpenStack ceilometer 通知代理 | ceilometer_agent_notification | /var/log/containers/ceilometer/agent-notification.log |
OpenStack ceilometer central agent | 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.9.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.9.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.9.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.2 环境来配置多个 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 统计和总 CPU 统计。
参数 | 类型 |
---|---|
主机 | 字符串 |
plugin | 字符串 |
plugininstance | 整数 |
agg_type | 字符串 |
typeinstance | 字符串 |
sethost | 字符串 |
setplugin | 字符串 |
setplugininstance | 整数 |
settypeinstance | 字符串 |
groupby | String 数组 |
calculatesum | 布尔值 |
calculatenum | 布尔值 |
calculateaverage | 布尔值 |
calculateminimum | 布尔值 |
calculatemaximum | 布尔值 |
calculatestddev | 布尔值 |
配置示例:
部署三个聚合配置以创建以下文件:
-
aggregator-calcCpuLoadAvg.conf
:按主机和状态分组的所有 CPU 内核的平均 CPU 负载 -
aggregator-calcCpuLoadMinMax.conf
:主机和状态最大 CPU 负载组 -
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
,它连接到位于 http://10.0.0.111/mod_status?auto 的 Apache Web 服务器。您必须在 URL 的末尾附加 ?auto
以防止状态页面返回为与插件不兼容的类型。
其他资源
有关配置 apache
插件的详情,请参考 apache。
collectd::plugin::battery
使用 battery
插件报告笔记本电脑 Batteries 剩余容量、power 或 voltage。
参数 | 类型 |
---|---|
values_percentage | 布尔值 |
report_degraded | 布尔值 |
query_state_fs | 布尔值 |
interval | 整数 |
其他资源
有关配置 battery
插件的详情,请参考 https://collectd.org/documentation/manpages/collectd.conf.5.shtml#plugin_ceph。
collectd::plugin::bind
使用 bind
插件检索有关 DNS 服务器的查询和响应的编码统计,并将这些值提交至 collectd。
参数 | 类型 |
---|---|
url | HTTP URL |
memorystats | 布尔值 |
opcode | 布尔值 |
parsetime | 布尔值 |
qtypes | 布尔值 |
resolverstats | 布尔值 |
serverstats | 布尔值 |
zonemaintstats | 布尔值 |
视图 | 数组 |
interval | 整数 |
参数 | 类型 |
---|---|
name | 字符串 |
qtypes | 布尔值 |
resolverstats | 布尔值 |
cacherrsets | 布尔值 |
zones | 字符串列表 |
配置示例:
collectd::plugin::ceph
使用 ceph
插件从 ceph 守护进程收集数据。
参数 | 类型 |
---|---|
daemons | 数组 |
longrunavglatency | 布尔值 |
convertspecialmetrictypes | 布尔值 |
package_name | 字符串 |
配置示例:
如果 Object Storage Daemon(OSD)不在每个节点中,您必须列出 OSD。
部署 collectd 时,ceph
插件将添加到 Ceph 节点。不要在 Ceph 节点上添加 ceph
插件到 CollectdExtraPlugins
,因为这会导致部署失败。
其他资源
有关配置 ceph
插件的更多信息,请参阅 ceph。
collectd::plugins::cgroups
使用 cgroups
插件收集 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
插件收集系统处理的上下文切换的数量。唯一可用的参数是 间隔
,这是以秒为单位定义的轮询间隔。
其他资源
有关配置 contextswitch
插件的详情,请参考 contextswitch。
collectd::plugin::cpu
使用 cpu
插件监控 CPU 处于各种状态的时间,如 idle、执行用户代码、执行系统代码、等待 IO-operations 和其他状态。
cpu
插件收集 jiffies,而不是百分比值。jiffy 的值取决于您的硬件平台的时钟频率,因此不是绝对时间间隔单元。
要报告百分比值,请将布尔值参数 reportbycpu
和 reportbystate
设为 true
,然后将布尔值 参数值percentage
设置为 true。
此插件默认为启用。
Name | 描述 | 查询 |
---|---|---|
idle | 空闲时间 |
|
interrupt | 中断的 CPU 阻断 |
|
nice | 运行低优先级进程的时间 |
|
softirq | 在服务中断请求中花费的时间量 |
|
steal | 虚拟 CPU 等待实际 CPU 的时间百分比,同时虚拟机监控程序为另一个虚拟处理器提供服务 |
|
system | 在系统级别花费的时间(内核) |
|
user | 断言该用户进程使用 |
|
wait | 等待未完成 I/O 请求的 CPU |
|
参数 | 类型 | 默认值 |
---|---|---|
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 |
mountpoints | 数组 |
|
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
使用 磁盘插件
收集硬盘的性能统计信息,如果支持,分区。
默认情况下,磁盘插件
会监控所有磁盘。您可以使用 ignoreselected
参数忽略磁盘列表。示例配置会忽略 sda、sdb 和 sdc 磁盘,并监控列表中不包含的所有磁盘。
此插件默认为启用。
参数 | 类型 | 默认值 |
---|---|---|
disks | 数组 |
|
ignoreselected | 布尔值 | false |
udevnameattr | 字符串 | <undefined> |
Name | 描述 |
---|---|
合并 | 可合并在一起的已排队操作数量,例如,一个物理磁盘访问提供了两个或多个逻辑操作。 |
time | I/O-operation 的平均时间完成。值可能不准确。 |
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 插件收集大页信息。
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
插件的更多信息,请参阅 hugepages。
collectd::plugin::interface
使用 interface
插件测量 octets、每秒数据包和每秒错误率中的接口流量。
This plugin is enabled by default.
This plugin is enabled by default.
参数 | 类型 | 默认 |
---|---|---|
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
插件收集系统负载和系统使用的概述。
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
其他资源
collectd::plugin::mcelog
使用 mcelog
插件发送与 Machine Check Exception 相关的通知和统计数据。配置 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
插件检索系统内存的信息。
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
其他资源
-
有关配置
内存
插件的详情,请参考 内存。
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 | 字符串 |
网桥 | 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。
collectd::plugin::processes
process
插件提供有关系统进程的信息。如果您没有指定自定义进程匹配,则插件仅按状态和进程分叉率收集进程数量。
要收集有关特定进程的更多详细信息,您可以使用 process
参数指定进程名称或 process_match
选项,以指定与正则表达式匹配的进程名称。process_match
输出的统计数据按进程名称分组。
参数 | 类型 | 默认值 |
---|---|---|
Process | 数组 | <undefined> |
process_matches | 数组 | <undefined> |
collect_context_switch | 布尔值 | <undefined> |
collect_file_descriptor | 布尔值 | <undefined> |
collect_memory_maps | 布尔值 | <undefined> |
其他资源
-
有关配置进程插件的详情,请参考 进程。
collectd::plugin::smart
使用 智能
插件从节点上的物理磁盘收集 SMART(self-monitoring、分析和报告技术)。您还必须将参数 CollectdContainerAdditionalCapAdd
设置为 CAP_SYS_RAWIO
,以允许 智能
插件读取 SMART 遥测。如果您没有设置 CollectdContainerAdditionalCapAdd
参数,则会将以下消息写入 collectd 错误日志:
智能插件:以 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"
附加信息
collectd::plugin::swap
使用 swap
插件收集有关可用和已用 swap 空间的信息。
参数 | 类型 |
---|---|
reportbydevice | 布尔值 |
reportbytes | 布尔值 |
valuesabsolute | 布尔值 |
valuespercentage | 布尔值 |
reportio | 布尔值 |
配置示例:
collectd::plugin::tcpconns
使用 tcpconns
插件从配置的端口收集 TCP 连接数或出站的信息。本地端口配置代表入口连接。远程端口配置代表出口连接。
参数 | 类型 |
---|---|
localports | 端口(文章) |
remoteports | 端口(文章) |
侦听 | 布尔值 |
allportssummary | 布尔值 |
配置示例:
collectd::plugin::thermal
使用 rmal
插件检索 ACPIrmal 区信息。
参数 | 类型 |
---|---|
devices | 数组 |
ignoreselected | 布尔值 |
interval | 整数 |
配置示例:
parameter_defaults: CollectdExtraPlugins: - thermal
parameter_defaults:
CollectdExtraPlugins:
- thermal
collectd::plugin::uptime
使用 uptime
插件收集有关系统运行时间的信息。
This plugin is enabled by default.
This plugin is enabled by default.
参数 | 类型 |
---|---|
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 请求和编码指标向 HTTP 服务器提交值,或使用 PUTVAL
命令。
参数 | 类型 |
---|---|
确保 | 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 主题。使用一个或多个 topic 块配置 write_kafka
插件。对于每个主题块,您必须指定一个唯一名称和一个 Kafka producer。您可以在主题块中使用以下内容( per-topic)参数:
参数 | 类型 |
---|---|
kafka_hosts | 数组[字符串] |
topics | hash |
属性 | hash |
meta | hash |
配置示例:
其他资源:
有关如何配置 write_kafka
插件的更多信息,请参阅 write_kafka。
5.1. 其他 collectd 插件 复制链接链接已复制到粘贴板!
可用的插件可用,但在许多 Red Hat OpenStack Platform (RHOSP)环境中未定义的用例。
参数 | 注 |
---|---|
cURL |
您可以使用此插件读取 |
cURL-JSON | 您可以使用此插件来使用 cURL 库查询 JSON 数据,并根据配置解析数据。 |
DNS | 您可以使用此插件来解释数据包,并在 UDP 端口 53 上收集 DNS 流量统计信息。 |
熵 | 您可以使用此插件来报告系统上可用的熵。 |
Ethstat | 您可以使用此插件从以太网卡中读取性能统计信息。 |
exec | 您可以使用此插件来执行脚本或应用程序,并输出到 STDOUT。 |
fhcount | 您可以使用此插件提供有关 Linux 上使用、未使用以及文件句柄总数的统计信息。 |
filecount | 您可以使用此插件来计算目录及其子目录中的文件数。 |
fscache | 您可以使用此插件为网络文件系统和其他慢速介质收集有关基于系统的缓存基础架构的信息。 |
HDDTemp | 您可以使用此插件来收集硬盘的温度。 |
IntelRDT | 您可以使用此插件来收集由 Intel 资源 Director 技术监控功能提供的信息。 |
IPMI | 您可以使用此插件通过智能平台管理接口(IPMI)从服务器读取硬件传感器。 |
IRQ | 您可以使用此插件来收集每个中断由操作系统处理的次数。 |
logfile | 您可以使用此插件写入日志文件。 |
MySQL | 您可以使用此插件连接到 MySQL 数据库并定期发出 SHOW STATS 命令。该命令返回服务器状态变量,其中很多是收集的。 |
netlink | 您可以使用此插件获取接口、qdiscs、类或过滤器的统计信息。 |
网络 |
您可以使用此插件与其他 |
NFS | 您可以使用此插件获取有关使用网络文件系统(NFS)、版本 2、3 和 4 的信息。 |
numa | 您可以使用此插件报告 Linux 的 Non-Uniform Memory Access (NUMA)子系统的统计信息。 |
OpenLDAP | 您可以使用此插件报告 OpenLDAP 的状态。 |
OpenVPN | 您可以使用此插件读取 OpenVPN 输出的状态文件。 |
OVS 事件 | 您可以使用此插件来监控 OpenvSwitch-connected 接口的链接状态,并在链接状态发生变化时发送通知。 |
PCIe 错误 | 您可以使用此插件来监控和报告 PCI Express 错误。 |
ping | 您可以使用此插件来测量使用互联网控制消息协议(ICMP)回显请求的网络延迟。 |
procevent | 您可以使用此插件来监控进程启动并退出。 |
Python | 您可以使用此插件绑定到 python。 |
传感器 |
您可以使用此插件来读取使用 |
serial | 您可以使用此插件来收集串行接口上的流量。 |
SNMP | 您可以使用简单网络管理协议(SNMP)从网络设备中读取值。 |
SNMP Agent | 您可以使用此插件来处理来自主要 SNMP 代理的查询,并返回读取插件收集的数据。 |
StatsD |
您可以使用此插件来实现 |
sysevent |
您可以使用此插件侦听网络套接字上的传入的 |
SysLog |
您可以使用此插件从 |
表 | 您可以使用此插件来解析表格式的纯文本文件。 |
tail |
您可以使用此插件来尾部日志文件,其方式与 |
tail CSV | 您可以使用此插件来跟踪 CSV 文件。 |
阈值 | 您可以使用此插件在给定阈值上生成通知。 |
turbostat | 您可以使用此插件来读取支持现代 Intel turbo 的处理器上的 CPU 频率和 C-state residency。 |
UnixSock |
您可以使用此插件与 |
用户 | 您可以使用此插件来计算当前登录到该系统的用户数量。 |
UUID | 您可以使用此插件来决定它所运行系统的 uniquie 标识符(UUID)。 |
编写 Graphite |
您可以使用此插件将值存储在 |
写 HTTP |
您可以使用此插件,将 |
写入日志 | 您可以使用此插件将指标写为 INFO 日志消息。 |
编写 Prometheus | 您可以使用此插件来实现可通过 Prometheus 提取的 Web 服务器。 |