第12章 metrics-utility による使用状況レポート
Ansible Automation Platform メトリクスユーティリティーツール (metrics-utility) は、Automation Controller のインスタンスを含むシステムにインストールされるコマンドラインユーティリティーです。
metrics-utility は、インストールおよび設定されると、システムから請求関連のメトリクスを収集し、消費量に基づく請求レポートを作成します。metrics-utility ツールは、管理対象ホストが複数あり、消費量ベースの請求を使用するユーザーに特に適しています。レポートが生成されると、設定ファイルで指定した保存先の場所に保存されます。
metrics-utility は、システムから設定データとレポートデータの 2 種類のデータを収集します。
設定データには次の情報が含まれます。
- Automation Controller とオペレーティングシステムのバージョン情報
- サブスクリプション情報
- ベース URL
レポートデータには次の情報が含まれます。
- ジョブ名と ID
- ホスト名
- インベントリー名
- 組織名
- プロジェクト名
- 成功または失敗に関する情報
- レポート日時
metrics-utility が設定どおりに動作し続けるように、レポートディレクトリーから古いレポートを定期的に消去してください。
12.1. metrics-utility の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux と OpenShift Container Platform の両方で、Ansible Automation Platform の使用状況データを収集して報告するように metrics-utility を設定します。
12.1.1. Red Hat Enterprise Linux の metrics-utility の設定 リンクのコピーリンクがクリップボードにコピーされました!
前提条件:
- サブスクリプション: アクティブな Ansible Automation Platform サブスクリプション。
-
インストール:
metrics-utilityツールは、デフォルトで Automation Controller ノード上の Ansible Automation Platform インストールに含まれています。別途インストールする必要はありません。 -
ユーザー権限:
metrics-utilityツールを実行するには、rootユーザーまたはawxユーザーとしてログインしている必要があります。
metrics-utility が正常に機能するには、/etc/tower/SECRET_KEY への読み取りアクセスが必要です。このユーティリティーを標準ユーザー(root または非 awx)として実行しようとすると、PermissionError と実行に失敗します。
次の手順では、関連データを収集し、使用状況メトリクスを含む CCSP レポートを生成します。これらのコマンドを cron ジョブとして設定し、毎月の初めに実行されるようにできます。cron 構文の使用方法の詳細は、How to schedule jobs using the Linux cron utility を参照してください。
手順
metrics-utilityにすべての関連データを収集させるための正しい変数を設定するために、ユーザーのホームディレクトリー内に次の 2 つのスクリプトを作成します。/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)" export METRICS_UTILITY_REPORT_H1_HEADING="CCSP Reporting <Company>: ANSIBLE Consumption" export METRICS_UTILITY_REPORT_COMPANY_NAME="Company Name" 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コマンドは、毎月 2 日の午前 4 時に実行されるように設定されています。0 */1 * * * /home/my-user/cron-gather0 4 2 * * /home/my-user/cron-report- ファイルを保存してから閉じます。
検証
正しい設定を確認するには、次の検証手順を使用します。
cronジョブのエントリーが正しく保存されたことを確認するには、次のコマンドを実行します。crontab -lcronログを調べて、cronデーモンがコマンドを実行し、metrics-utilityが出力を生成していることを確認します。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)生成されたレポートには、
CCSP-<YEAR>-<MONTH>.xlsxというデフォルトの名前が付けられます。レポートはステップ 1a で指定した送信先パスに保存されます。
時間と日付は、実行スケジュールの設定方法に応じて異なる場合があります。
12.1.2. Ansible Automation Platform Operator から OpenShift Container Platform の metrics-utility を設定する リンクのコピーリンクがクリップボードにコピーされました!
metrics-utility は、バージョン 4.12、4.512、および 4.6 以降の OpenShift Container Platform イメージに含まれています。システムに metrics-utility がインストールされていない場合は、OpenShift イメージを最新バージョンに更新してください。
Ansible Automation Platform Operator を使用して OpenShift Container Platform で metrics-utility の実行スケジュールを設定するには、次の手順を実行します。
12.1.2.1. OpenShift UI の YAML ビューで ConfigMap を作成する リンクのコピーリンクがクリップボードにコピーされました!
設定データを含む metrics-utility cronjobs を注入するには、次の手順に従って、OpenShift UI の YAML ビューで ConfigMap を作成します。
前提条件:
- 実行中の OpenShift クラスター
- Operator によって OpenShift Container Platform にインストールされた Ansible Automation Platform
metrics-utility は、設定ファイルで設定したパラメーターに従って実行されます。OpenShift Container Platform では、このユーティリティーを手動で実行することはできません。
手順
- ナビゲーションパネルから、 を選択します。
- をクリックします。
- 次の画面で、YAML view タブを選択します。
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: CCSPv2 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 が作成され、
metrics-utilityがインストールされていることを確認するために、ナビゲーションパネルから ConfigMap を選択し、リストで ConfigMap を探します。
12.1.2.2. Automation Controller のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller をデプロイし、metrics-utility によって使用状況情報を収集してレポートを生成する頻度を表す変数を指定するには、次の手順を使用します。
手順
- ナビゲーションパネルから、Installed Operators を選択します。
- Ansible Automation Platform を選択します。
- Operator の詳細で、Automation Controller タブを選択します。
- をクリックします。
YAML view オプションを選択します。YAML に Automation Controller のデフォルトパラメーターが表示されます。
metrics-utilityに関連するパラメーターは次のとおりです。Expand パラメーター 変数 metrics_utility_enabledTrue
metrics_utility_cronjob_gather_schedule@hourlyまたは@daily。metrics_utility_cronjob_report_schedule@dailyまたは@monthly-
metrics_utility_enabledパラメーターを見つけて、変数を true に変更します。 -
metrics_utility_cronjob_gather_scheduleパラメーターを見つけて、ユーティリティーによって使用状況情報を収集する頻度を表す変数を入力します (たとえば、@hourlyまたは@daily)。 -
metrics_utility_cronjob_report_scheduleパラメーターを見つけて、ユーティリティーによってレポートを生成する頻度を表す変数を入力します (たとえば、@dailyまたは@monthly)。 - をクリックします。
12.1.3. Ansible Automation Platform の手動コンテナー化インストールで metrics-utility を設定する リンクのコピーリンクがクリップボードにコピーされました!
metrics-utility は、バージョン 4.12、4.512、および 4.6 以降の OpenShift Container Platform イメージに含まれています。システムに metrics-utility がインストールされていない場合は、OpenShift イメージを最新バージョンに更新してください。
Ansible Automation Platform Operator を使用して OpenShift Container Platform で metrics-utility の実行スケジュールを設定するには、次の手順を実行します。
Ansible Automation Platform の手動コンテナー化インストールで metrics-utility を設定するには、次の手順に従います。
- ホストディレクトリーとスクリプトを準備します。
- スクリプトを実行可能にします。
- cron ジョブを設定します。
前提条件
- 有効な Ansible Automation Platform サブスクリプション
最小リソース要件
Ansible Automation Platform のコンテナー化されたインストールで metrics-utility ツールを使用するには、次のリソースが必要です。
CPU: 専用 CPU コア 1 個
- 実行中は 1 コアの 100% が使用されます。
メモリー:
- 最小: 256 MB RAM (最大約 10,000 件のジョブホストサマリーをサポート)
- 推奨: 512 MB RAM (標準デプロイメント)
大規模: 1 GB RAM (最大約 100,000 件のジョブホストサマリーをサポート)
注記メモリー要件は、処理されるホストとジョブの数に応じて変化します。
- 実行時間: レポート生成は、データ量に応じて通常 10 - 30 秒以内に完了します。
12.1.3.1. ホストディレクトリーとスクリプトの準備 リンクのコピーリンクがクリップボードにコピーされました!
ホストディレクトリーとスクリプトを準備するには、実行中のコンテナー内で metrics-utility コマンドを実行するための 2 つのシェルスクリプトをホストマシンに作成します。
手順
インベントリーファイルを変更して、[all:vars] セクションの下に次の行を追加し、metrics-utility コンテナーのデプロイメントを有効にします。
metrics_utility_enabled=trueこの設定は、Ansible Automation Platform デプロイメントの一部として専用の
automation-controller-metrics-utilityコンテナーを作成して設定するようにインストーラーに指示します。この行を、他のグローバル変数と一緒に、インベントリーファイルの[all:vars]ヘッダーの下に必ず配置してください。Ansible Automation Platform のデプロイメントがすでに設定されている場合は、インストーラースクリプトを再実行してコンテナーをアクティブ化します。次のコマンドを実行して、ホストレポートの保存先ディレクトリーを作成します。
mkdir -p /home/my-user/aap/controller/data/ホストマシン上のこのディレクトリーには、最終的に生成されたレポートが保存されます。
/home/my-user/cron-gatherという名前のファイルを作成し (/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=/metrics_utility/data # Run metrics-utility inside the running container podman exec \ -e METRICS_UTILITY_SHIP_TARGET="$METRICS_UTILITY_SHIP_TARGET" \ -e METRICS_UTILITY_SHIP_PATH="$METRICS_UTILITY_SHIP_PATH" \ automation-controller-task \ metrics-utility gather_automation_controller_billing_data --ship --until=10mこのスクリプトは
metrics-utilityを実行して、Ansible Automation Platform インスタンスから課金データを収集し、コンテナー内に一時的に保存します。/home/my-user/cron-reportという名前のファイルを作成し (/home/my-user/を目的のパスに置き換えます)、次のコンテンツを追加してcron-reportスクリプトを作成します。#!/bin/sh # --- Configuration Variables --- # Define variables for the metrics utility parameters export METRICS_UTILITY_SHIP_TARGET="directory" export METRICS_UTILITY_SHIP_PATH="/metrics_utility/data" # This is the *internal* path in the container export METRICS_UTILITY_REPORT_TYPE="CCSPv2" export METRICS_UTILITY_PRICE_PER_NODE="11.55" export METRICS_UTILITY_REPORT_SKU="MCT3752MO" export METRICS_UTILITY_REPORT_SKU_DESCRIPTION="EX: Red Hat {PlatformNameShort}, Full Support (1 Managed Node, Dedicated, Monthly)" export METRICS_UTILITY_REPORT_H1_HEADING="CCSP Reporting <Company>: ANSIBLE Consumption" export METRICS_UTILITY_REPORT_COMPANY_NAME="Company Name" 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" podman exec \ -e METRICS_UTILITY_SHIP_TARGET="$METRICS_UTILITY_SHIP_TARGET" \ -e METRICS_UTILITY_SHIP_PATH="$METRICS_UTILITY_SHIP_PATH" \ -e METRICS_UTILITY_REPORT_TYPE="$METRICS_UTILITY_REPORT_TYPE" \ -e METRICS_UTILITY_PRICE_PER_NODE="$METRICS_UTILITY_PRICE_PER_NODE" \ -e METRICS_UTILITY_REPORT_SKU="$METRICS_UTILITY_REPORT_SKU" \ -e METRICS_UTILITY_REPORT_SKU_DESCRIPTION="$METRICS_UTILITY_REPORT_SKU_DESCRIPTION" \ -e METRICS_UTILITY_REPORT_H1_HEADING="$METRICS_UTILITY_REPORT_H1_HEADING" \ -e METRICS_UTILITY_REPORT_COMPANY_NAME="$METRICS_UTILITY_REPORT_COMPANY_NAME" \ -e METRICS_UTILITY_REPORT_EMAIL="$METRICS_UTILITY_REPORT_EMAIL" \ -e METRICS_UTILITY_REPORT_RHN_LOGIN="$METRICS_UTILITY_REPORT_RHN_LOGIN" \ -e METRICS_UTILITY_REPORT_COMPANY_BUSINESS_LEADER="$METRICS_UTILITY_REPORT_COMPANY_BUSINESS_LEADER" \ -e METRICS_UTILITY_REPORT_COMPANY_PROCUREMENT_LEADER="$METRICS_UTILITY_REPORT_COMPANY_PROCUREMENT_LEADER" \ "automation-controller-metrics-utility" \ metrics-utility build_reportこのスクリプト METRICS_UTILITY_REPORT_SKU_DESCRIPTION
metrics-utilityは、収集されたデータからレポートを作成し、最終レポートをコンテナーから指定されたホストディレクトリーにコピーします。
12.1.3.2. スクリプトを実行可能にする リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、作成した両方のスクリプトが実行可能であることを確認します。
手順
以下のコマンドを実行します。
chmod a+x /home/my-user/cron-gather /home/my-user/cron-report注記/home/my-user/は実際のパスに置き換えます。
12.1.3.3. cron ジョブの設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、metrics-utility コマンドが自動的に実行されるように cron を設定します。
手順
cronファイルを開いて編集します。crontab -ecronスケジュールエントリーを追加するには、crontabファイルの末尾に次の行を追加します。0 */1 * * * /home/my-user/cron-gather 0 4 2 * * /home/my-user/cron-reportこれらの例では、
gatherコマンドを毎時 0 分に実行するように設定し、build_reportコマンドを毎月 2 日の午前 4 時に実行するように設定しています。希望するスケジュールに合わせて、必要に応じて cron 構文を調整します。以下に例を示します。
-
0 */1 * * *: 毎時 0 分に実行されます。 -
0 4 2 * *: 2 日の 04:00 に実行されます。
-
- ファイルを保存してから閉じます。
検証
正しい設定を確認するには、次の検証手順を使用します。
cronジョブのエントリーが正しく保存されたことを確認するには、次のコマンドを実行します。crontab -lcronジョブのエントリーが正しく保存されている場合は、cron-gatherとcron-reportに追加した 2 行が表示されます。cronログを調べて、cronデーモンがコマンドを実行しているかどうか、およびmetrics-utilityが出力を生成しているかどうかを確認します。cat /var/log/cron参考までに、次の出力例を参照してください。
# Example Output: Aug 20 09:55:01 aap CROND[72746]: (aap) CMD (/home/aap/Documents/scripts/cron-gather) Aug 20 09:55:03 aap CROND[72744]: (aap) CMDOUT (2025-08-20 08:55:03,581 INFO [-] awx.main.analytics /tmp/3292ca44-3314-4f0b-b3f6-ba4a1e47a2b1-2025-08-20-083506+0000-2025-08-20-084503+0000-0.tar.gz) Aug 20 09:55:03 aap CROND[72744]: (aap) CMDOUT (/tmp/3292ca44-3314-4f0b-b3f6-ba4a1e47a2b1-2025-08-20-083506+0000-2025-08-20-084503+0000-0.tar.gz) Aug 20 09:55:03 aap CROND[72744]: (aap) CMDOUT (2025-08-20 08:55:03,581 INFO [-] awx.main.analytics /tmp/3292ca44-3314-4f0b-b3f6-ba4a1e47a2b1-2025-08-20-083506+0000-2025-08-20-084503+0000-1.tar.gz) Aug 20 09:55:03 aap CROND[72744]: (aap) CMDOUT (/tmp/3292ca44-3314-4f0b-b3f6-ba4a1e47a2b1-2025-08-20-083506+0000-2025-08-20-084503+0000-1.tar.gz) Aug 20 09:55:03 aap CROND[72744]: (aap) CMDEND (/home/aap/Documents/scripts/cron-gather) Aug 20 10:00:02 aap CROND[77629]: (aap) CMD (/home/aap/Documents/scripts/cron-report) Aug 20 10:00:02 aap CROND[77623]: (aap) CMDOUT (Generating metrics report inside the container...) Aug 20 10:00:04 aap CROND[77623]: (aap) CMDOUT (2025-08-20 09:00:04,639 INFO [-] awx.main.analytics No billing data for month 2025-07) Aug 20 10:00:04 aap CROND[77623]: (aap) CMDOUT (No billing data for month 2025-07) Aug 20 10:00:05 aap CROND[77623]: (aap) CMDOUT (Copying generated reports from container to host: /tmp/ansible_metrics_reports) Aug 20 10:00:05 aap CROND[77623]: (aap) CMDOUT (Reports successfully moved to: /tmp/ansible_metrics_reports) Aug 20 10:00:05 aap CROND[77623]: (aap) CMDOUT (Files in destination:) Aug 20 10:00:05 aap CROND[77623]: (aap) CMDOUT (total 0) Aug 20 10:00:05 aap CROND[77623]: (aap) CMDOUT (drwxr-xr-x. 3 aap aap 18 Aug 20 09:43 data) Aug 20 10:00:05 aap CROND[77623]: (aap) CMDEND (/home/aap/Documents/scripts/cron-report)生成されたレポートを見つけます。
-
生成されたレポートのデフォルトの名前の形式は
CCSP-<YEAR>-<MONTH>.xlsx(例:CCSP-2024-07.xlsx) です。レポートは、手順 2 で指定した接頭辞付きパス (例:/home/my-user/aap/controller/data/metrics_utility/data) を持つMETRICS_UTILITY_SHIP_PATHに保存されます。
-
生成されたレポートのデフォルトの名前の形式は