第 14 章 使用 metrics-utility 报告使用量
Ansible Automation Platform 指标工具(metrics-utility)是一个命令行工具,安装在包含自动化控制器实例的系统上。
安装和配置后,metrics-utility 会从您的系统收集与计费相关的指标,并创建基于消费的账单报告。metrics-utility 特别适用于具有多个受管主机的用户,并希望使用基于消费的账单。生成报告后,它将在您配置文件中指定的目标位置中。
metrics-utility 从您的系统收集两种类型的数据:配置数据和报告数据。
配置数据包括以下信息:
- 自动化控制器和操作系统的版本信息
- 订阅信息
- 基本 URL
报告数据包括以下信息:
- 作业名称和 ID
- 主机名
- 清单名称
- 机构名称
- 项目名称
- 成功或失败信息
- 报告日期和时间
为确保 metrics-utility 继续按配置工作,请定期清除报告目录。
14.1. 配置 metrics-utility 复制链接链接已复制到粘贴板!
配置 metrics-utility,以在 Red Hat Enterprise Linux 和 OpenShift Container Platform 上收集和报告 Ansible Automation Platform 的使用数据。
14.1.1. 在 Red Hat Enterprise Linux 中配置 metrics-utility 复制链接链接已复制到粘贴板!
先决条件
- 订阅: 一个活跃的 Ansible Automation Platform 订阅。
-
安装: 在自动化控制器节点上的 Ansible Automation Platform 安装中默认包括
metrics-utility工具。不需要单独的安装。 -
用户权限 : 您必须以
root用户身份登录,或者awx用户才能运行metrics-utility工具。
metrics-utility 需要对 /etc/tower/SECRET_KEY 的读取访问权限才能正常工作。尝试以标准用户身份运行此工具(非 root 用户或非awx)会导致 PermissionError 和执行失败。
以下命令收集相关数据,并生成包含您的使用指标的 CCSP 报告。您可以将这些命令配置为 cron 作业,以确保它们在每月开始时运行。有关使用 cron 语法 配置的更多信息,请参阅使用 Linux cron 工具调度作业。
流程
在用户的主目录中创建两个脚本,以设置正确的变量,以确保
metrics-utility收集所有相关数据:在
/home/my-user/cron-gather中:#!/bin/sh # Specify the following variables to indicate where the report is deposited in your file system: export METRICS_UTILITY_SHIP_TARGET=directory export METRICS_UTILITY_SHIP_PATH=/awx_devel/awx-dev/metrics-utility/shipped_data/billing # Run the following command to gather and store the data in the provided SHIP_PATH directory: metrics-utility gather_automation_controller_billing_data --ship --until=10m在
/home/my-user/cron-report中:#!/bin/sh # Specify the following variables to indicate where the report is deposited in your file system: export METRICS_UTILITY_SHIP_TARGET=directory export METRICS_UTILITY_SHIP_PATH=/awx_devel/awx-dev/metrics-utility/shipped_data/billing # Set these variables to generate a report: export METRICS_UTILITY_REPORT_TYPE=CCSPv2 export METRICS_UTILITY_PRICE_PER_NODE=11.55 # in USD export METRICS_UTILITY_REPORT_SKU=MCT3752MO export METRICS_UTILITY_REPORT_SKU_DESCRIPTION="EX: Red Hat Ansible Automation Platform, Full Support (1 Managed Node, Dedicated, Monthly)" @@ -44,21 +51,31 @@ export METRICS_UTILITY_REPORT_EMAIL="email@email.com" export METRICS_UTILITY_REPORT_RHN_LOGIN="test_login" export METRICS_UTILITY_REPORT_COMPANY_BUSINESS_LEADER="BUSINESS LEADER" export METRICS_UTILITY_REPORT_COMPANY_PROCUREMENT_LEADER="PROCUREMENT LEADER" # Build the report metrics-utility build_report
要确保这些文件是可执行的,请运行:
chmod a+x /home/my-user/cron-gather /home/my-user/cron-report要打开
cron文件进行编辑,请运行:crontab -e要配置运行计划,请在文件的末尾添加以下参数,并指定您希望
metrics-utility使用方法收集信息并使用 cron 语法 构建报告的频率。在以下示例中,gather命令配置为在 00 分钟每小时运行。build_report命令配置为在每月第二天的上午 4:00 运行。0 */1 * * * /home/my-user/cron-gather 0 4 2 * * /home/my-user/cron-report- 保存并关闭该文件。
要验证您是否已保存更改,请运行:
crontab -l要确保收集数据,请运行:
cat /var/log/cron以下是输出的示例:请注意,时间和日期可能会因您配置运行调度的方式而有所不同:
May 8 09:45:03 ip-10-0-6-23 CROND[51623]: (root) CMDOUT (No billing data for month: 2024-04) May 8 09:45:03 ip-10-0-6-23 CROND[51623]: (root) CMDEND (metrics-utility build_report) May 8 09:45:19 ip-10-0-6-23 crontab[51619]: (root) END EDIT (root) May 8 09:45:34 ip-10-0-6-23 crontab[51659]: (root) BEGIN EDIT (root) May 8 09:46:01 ip-10-0-6-23 CROND[51688]: (root) CMD (metrics-utility gather_automation_controller_billing_data --ship --until=10m) May 8 09:46:03 ip-10-0-6-23 CROND[51669]: (root) CMDOUT (/tmp/9e3f86ee-c92e-4b05-8217-72c496e6ffd9-2024-05-08-093402+0000-2024-05-08-093602+0000-0.tar.gz) May 8 09:46:03 ip-10-0-6-23 CROND[51669]: (root) CMDEND (metrics-utility gather_automation_controller_billing_data --ship --until=10m) May 8 09:46:26 ip-10-0-6-23 crontab[51659]: (root) END EDIT (root)生成的报告将具有默认名称 token-<YEAR>-<MONTH>.xlsx,并将在在第 1a 中指定的发运路径中处理。
OpenShift Container Platform 自动化控制器镜像中包括了 metrics-utility 版本 4.12、4.5.12 和 4.6。如果您的系统没有安装 metrics-utility,请将 OpenShift 镜像更新至最新版本。
在 OpenShift UI YAML 视图中创建一个 ConfigMap,并部署自动化控制器,以使用 Ansible Automation Platform Operator 在 OpenShift Container Platform 上配置 metrics-utility 的运行调度。
先决条件
- 正在运行的 OpenShift 集群
- 在 OpenShift Container Platform 上基于 Operator 的安装 Ansible Automation Platform。
metrics-utility 将按照您在配置文件中设置的参数所示运行。
14.1.2.1. 在 OpenShift UI YAML 视图中创建 ConfigMap 复制链接链接已复制到粘贴板!
要将 metrics-utility cronjobs 注入配置数据,请使用以下步骤在 OpenShift UI YAML 视图中创建 ConfigMap:
- 在左侧的导航面板中,选择 ConfigMaps,然后单击 Create ConfigMap 按钮。
- 在下一屏幕中,选择 YAML 视图 选项卡。
在
YAML字段中,使用设置的适当变量输入以下参数:apiVersion: v1 kind: ConfigMap metadata: name: automationcontroller-metrics-utility-configmap data: METRICS_UTILITY_SHIP_TARGET: directory METRICS_UTILITY_SHIP_PATH: /metrics-utility METRICS_UTILITY_REPORT_TYPE: CCSP METRICS_UTILITY_PRICE_PER_NODE: '11' # in USD METRICS_UTILITY_REPORT_SKU: MCT3752MO METRICS_UTILITY_REPORT_SKU_DESCRIPTION: "EX: Red Hat Ansible Automation Platform, Full Support (1 Managed Node, Dedicated, Monthly)" METRICS_UTILITY_REPORT_H1_HEADING: "CCSP Reporting <Company>: ANSIBLE Consumption" METRICS_UTILITY_REPORT_COMPANY_NAME: "Company Name" METRICS_UTILITY_REPORT_EMAIL: "email@email.com" METRICS_UTILITY_REPORT_RHN_LOGIN: "test_login" METRICS_UTILITY_REPORT_COMPANY_BUSINESS_LEADER: "BUSINESS LEADER" METRICS_UTILITY_REPORT_COMPANY_PROCUREMENT_LEADER: "PROCUREMENT LEADER"- 点 。
- 要验证 ConfigMap 是否已创建并安装了指标工具,请从导航面板中选择 ConfigMap 并在列表中查找您的 ConfigMap。
14.1.2.2. 部署自动化控制器 复制链接链接已复制到粘贴板!
要部署自动化控制器并指定变量,指定 metrics-utility 收集使用情况信息并生成报告的频率,请使用以下步骤:
流程
- 在导航面板中,选择 Installed Operators。
- 选择 Ansible Automation Platform。
- 在 Operator 详情中,选择 自动化控制器 标签页。
- 点 dc
选择 YAML view 选项。
YAML现在显示自动化控制器的默认参数。metrics-utility的相关参数如下:[cols="50%,50%",options="header"] |==== | *Parameter* | *Variable* | *`metrics_utility_enabled`* | True. | *`metrics_utility_cronjob_gather_schedule`* | @hourly or @daily. | *`metrics_utility_cronjob_report_schedule`* | @daily or @monthly. |====-
查找
metrics_utility_enabled参数,并将变量更改为true。 -
找到
metrics_utility_cronjob_gather_schedule参数,并为实用程序应收集使用情况信息的频率输入变量(如 @hourly 或 @daily)。 -
找到
metrics_utility_cronjob_report_schedule参数,并为实用程序生成报告的频率输入变量(例如 @daily 或 @monthly)。 - 点 。