18.2. データ収集の詳細
Automation Analytics を有効にした際に、Automation Controller が収集して Red Hat に送信する特定のデータについて説明します。
Automation Analytics は、Automation Controller から次の種類のデータを収集します。
- 有効になっている機能や使用されているオペレーティングシステムなどの基本設定
- 容量と健全性など、Automation Controller 環境とホストのトポロジーおよびステータス
自動化リソースの数:
- 組織、チーム、ユーザー
- インベントリーとホスト
- 認証情報 (タイプで索引付け)
- プロジェクト (タイプで索引付け)
- テンプレート
- スケジュール
- アクティブセッション
- 実行中および保留中のジョブ
- ジョブ実行の詳細 (開始時間、終了時間、起動タイプ、成功)
- 自動化タスクの詳細 (成功、ホスト ID、Playbook/ロール、タスク名、使用モジュール)
awx-manage gather_analytics (--ship なし) を使用して Automation Controller が送信するデータを検査できるため、データ収集に関する懸念に対応できます。これにより、Red Hat に送信される分析データを含む tar ファイルが作成されます。
このファイルには、複数の JSON ファイルと CSV ファイルが含まれています。各ファイルには、異なる分析データのセットが含まれています。
- manifest.json
- config.json
- instance_info.json
- counts.json
- org_counts.json
- cred_type_counts.json
- inventory_counts.json
- projects_by_scm_type.json
- query_info.json
- job_counts.json
- job_instance_counts.json
- unified_job_template_table.csv
- unified_jobs_table.csv
- workflow_job_template_node_table.csv
- workflow_job_node_table.csv
- events_table.csv
18.2.1. manifest.json リンクのコピーリンクがクリップボードにコピーされました!
manifest.json は、分析データのマニフェストです。これは、コレクションに含まれる各ファイルと、ファイルのスキーマのバージョンを記述しています。
以下は、manifest.json ファイルの例です。
"config.json": "1.1",
"counts.json": "1.0",
"cred_type_counts.json": "1.0",
"events_table.csv": "1.1",
"instance_info.json": "1.0",
"inventory_counts.json": "1.2",
"job_counts.json": "1.0",
"job_instance_counts.json": "1.0",
"org_counts.json": "1.0",
"projects_by_scm_type.json": "1.0",
"query_info.json": "1.0",
"unified_job_template_table.csv": "1.0",
"unified_jobs_table.csv": "1.0",
"workflow_job_node_table.csv": "1.0",
"workflow_job_template_node_table.csv": "1.0"
}
18.2.2. config.json リンクのコピーリンクがクリップボードにコピーされました!
config.json ファイルには、クラスターの設定エンドポイント /api/v2/config のサブセットが含まれています。config.json の例は次のとおりです。
{
"ansible_version": "2.9.1",
"authentication_backends": [
"social_core.backends.azuread.AzureADOAuth2",
"django.contrib.auth.backends.ModelBackend"
],
"external_logger_enabled": true,
"external_logger_type": "splunk",
"free_instances": 1234,
"install_uuid": "d3d497f7-9d07-43ab-b8de-9d5cc9752b7c",
"instance_uuid": "bed08c6b-19cc-4a49-bc9e-82c33936e91b",
"license_expiry": 34937373,
"license_type": "enterprise",
"logging_aggregators": [
"awx",
"activity_stream",
"job_events",
"system_tracking"
],
"pendo_tracking": "detailed",
"platform": {
"dist": [
"redhat",
"7.4",
"Maipo"
],
"release": "3.10.0-693.el7.x86_64",
"system": "Linux",
"type": "traditional"
},
"total_licensed_instances": 2500,
"controller_url_base": "https://ansible.rhdemo.io",
"controller_version": "3.6.3"
}
これには次のフィールドが含まれます。
- ansible_version: ホスト上のシステム Ansible バージョン
- authentication_backends: 使用可能なユーザー認証バックエンド。詳細は、認証タイプの設定 を参照してください。
- external_logger_enabled: 外部ロギングが有効かどうか
- external_logger_type: 有効になっている場合に使用されているロギングバックエンド。詳細は、ロギングおよびアグリゲーション を参照してください。
- logging_aggregators: 外部ロギングに送信されるロギングカテゴリー。詳細は、ロギングおよびアグリゲーション を参照してください。
- free_instances: ライセンスで使用できるホストの数。値がゼロの場合は、クラスターがライセンスを完全に消費していることを意味します。
- install_uuid: インストールの UUID (すべてのクラスターノードで同一)
- instance_uuid: インスタンスの UUID (クラスターノードごとに異なる)
- license_expiry: ライセンスの有効期限が切れるまでの時間 (秒単位)
- license_type: ライセンスのタイプ (ほとんどの場合は 'enterprise')
-
pendo_tracking:
usability_data_collectionの状態 - platform: クラスターが実行されているオペレーティングシステム
- total_licensed_instances: ライセンス内のホストの合計数
- controller_url_base: クライアントが使用するクラスターのベース URL (Automation Analytics に表示)
- controller_version: クラスター上のソフトウェアのバージョン
18.2.3. instance_info.json リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller は、クラスター内の各インスタンスに関する詳細情報を提供する instance_info.json ファイルを生成します。このファイルは通常、コントローラーノードの /var/lib/<controller_service_name>/instance_info.json パスにあります。
instance_info.json ファイルには、クラスターを構成するインスタンスに関する詳細情報がインスタンスの UUID ごとにまとめられています。
以下は、instance_info.json ファイルの例です。
{
"bed08c6b-19cc-4a49-bc9e-82c33936e91b": {
"capacity": 57,
"cpu": 2,
"enabled": true,
"last_isolated_check": "2019-08-15T14:48:58.553005+00:00",
"managed_by_policy": true,
"memory": 8201400320,
"uuid": "bed08c6b-19cc-4a49-bc9e-82c33936e91b",
"version": "3.6.3"
}
"c0a2a215-0e33-419a-92f5-e3a0f59bfaee": {
"capacity": 57,
"cpu": 2,
"enabled": true,
"last_isolated_check": "2019-08-15T14:48:58.553005+00:00",
"managed_by_policy": true,
"memory": 8201400320,
"uuid": "c0a2a215-0e33-419a-92f5-e3a0f59bfaee",
"version": "3.6.3"
}
}
これには次のフィールドが含まれます。
- capacity: タスクを実行するためのインスタンスの容量
- cpu: インスタンスのプロセッサーコア
- memory: インスタンスのメモリー
- enabled: インスタンスが有効でタスクを受け付けているかどうか
- managed_by_policy: インスタンスグループ内のインスタンスのメンバーシップがポリシーによって管理されているか、手動で管理されているか
- version: インスタンス上のソフトウェアのバージョン
18.2.4. counts.json リンクのコピーリンクがクリップボードにコピーされました!
counts.json ファイルには、クラスター内の関連するカテゴリーごとの合計オブジェクト数が含まれています。
以下は、counts.json ファイルの例です。
{
"active_anonymous_sessions": 1,
"active_host_count": 682,
"active_sessions": 2,
"active_user_sessions": 1,
"credential": 38,
"custom_inventory_script": 2,
"custom_virtualenvs": 4,
"host": 697,
"inventories": {
"normal": 20,
"smart": 1
},
"inventory": 21,
"job_template": 78,
"notification_template": 5,
"organization": 10,
"pending_jobs": 0,
"project": 20,
"running_jobs": 0,
"schedule": 16,
"team": 5,
"unified_job": 7073,
"user": 28,
"workflow_job_template": 15
}
このファイルの各エントリーは、アクティブセッション数を除いて、/api/v2 の対応する API オブジェクトに関するものです。
18.2.5. org_counts.json リンクのコピーリンクがクリップボードにコピーされました!
org_counts.json ファイルには、クラスター内の各組織に関する情報と、その組織に関連付けられているユーザーとチームの数が含まれています。
以下は、org_counts.json ファイルの例です。
{
"1": {
"name": "Operations",
"teams": 5,
"users": 17
},
"2": {
"name": "Development",
"teams": 27,
"users": 154
},
"3": {
"name": "Networking",
"teams": 3,
"users": 28
}
}
18.2.6. cred_type_counts.json リンクのコピーリンクがクリップボードにコピーされました!
Automation Controller は、クラスター内の認証情報のタイプとその数の概要を提供する cred_type_counts.json ファイルを生成します。このファイルは通常、コントローラーノードの /var/lib/<controller_service_name>/cred_type_counts.json パスにあります。
cred_type_counts.json ファイルには、クラスター内のさまざまな認証情報の種類と、各種類に存在する認証情報の数に関する情報が含まれています。
以下は、cred_type_counts.json ファイルの例です。
{
"1": {
"credential_count": 15,
"managed_by_controller": true,
"name": "Machine"
},
"2": {
"credential_count": 2,
"managed_by_controller": true,
"name": "Source Control"
},
"3": {
"credential_count": 3,
"managed_by_controller": true,
"name": "Vault"
},
"4": {
"credential_count": 0,
"managed_by_controller": true,
"name": "Network"
},
"5": {
"credential_count": 6,
"managed_by_controller": true,
"name": "Amazon Web Services"
},
"6": {
"credential_count": 0,
"managed_by_controller": true,
"name": "OpenStack"
},
18.2.7. inventory_counts.json リンクのコピーリンクがクリップボードにコピーされました!
inventory_counts.json ファイルには、クラスター内のさまざまなインベントリーに関する情報が含まれています。
以下は、inventory_counts.json ファイルの例です。
{
"1": {
"hosts": 211,
"kind": "",
"name": "AWS Inventory",
"source_list": [
{
"name": "AWS",
"num_hosts": 211,
"source": "ec2"
}
],
"sources": 1
},
"2": {
"hosts": 15,
"kind": "",
"name": "Manual inventory",
"source_list": [],
"sources": 0
},
"3": {
"hosts": 25,
"kind": "",
"name": "SCM inventory - test repo",
"source_list": [
{
"name": "Git source",
"num_hosts": 25,
"source": "scm"
}
],
"sources": 1
}
"4": {
"num_hosts": 5,
"kind": "smart",
"name": "Filtered AWS inventory",
"source_list": [],
"sources": 0
}
}
18.2.8. projects_by_scm_type.json リンクのコピーリンクがクリップボードにコピーされました!
projects_by_scm_type.json ファイルには、クラスター内の全プロジェクトの内訳がソースコントロールタイプ別に記載されています。
以下は、projects_by_scm_type.json ファイルの例です。
{
"git": 27,
"hg": 0,
"insights": 1,
"manual": 0,
"svn": 0
}
18.2.9. query_info.json リンクのコピーリンクがクリップボードにコピーされました!
query_info.json ファイルには、データ収集がいつどのように行われたかに関する詳細が記載されています。
以下は、query_info.json ファイルの例です。
{
"collection_type": "manual",
"current_time": "2019-11-22 20:10:27.751267+00:00",
"last_run": "2019-11-22 20:03:40.361225+00:00"
}
collection_type は、manual または automatic のいずれかです。
18.2.10. job_counts.json リンクのコピーリンクがクリップボードにコピーされました!
job_counts.json ファイルは、クラスターのジョブ履歴の詳細を提供し、ジョブの起動方法とジョブの終了ステータスの両方を記述します。
以下は、job_counts.json ファイルの例です。
"launch_type": {
"dependency": 3628,
"manual": 799,
"relaunch": 6,
"scheduled": 1286,
"scm": 6,
"workflow": 1348
},
"status": {
"canceled": 7,
"failed": 108,
"successful": 6958
},
"total_jobs": 7073
}
18.2.11. job_instance_counts.json リンクのコピーリンクがクリップボードにコピーされました!
job_instance_counts.json ファイルは、job_counts.json と同じ詳細をインスタンスごとに分類して記載します。
以下は、job_instance_counts.json ファイルの例です。
{
"localhost": {
"launch_type": {
"dependency": 3628,
"manual": 770,
"relaunch": 3,
"scheduled": 1009,
"scm": 6,
"workflow": 1336
},
"status": {
"canceled": 2,
"failed": 60,
"successful": 6690
}
}
}
このファイルのインスタンスは、instance_info のように UUID ごとに記載されているのではなく、ホスト名ごとに記載されていることに注意してください。
18.2.12. unified_job_template_table.csv リンクのコピーリンクがクリップボードにコピーされました!
unified_job_template_table.csv ファイルは、システム内のジョブテンプレートに関する情報を提供します。各行には、ジョブテンプレートの次のフィールドがあります。
- id: ジョブテンプレート ID。
- name: ジョブテンプレート名。
- polymorphic_ctype_id: テンプレートのタイプの ID。
-
model: テンプレートの
polymorphic_ctype_idの名前。例として、project、systemjobtemplate、jobtemplate、inventorysource、workflowjobtemplateなどがあります。 - created: テンプレートが作成された日時。
- updated: テンプレートが最後に更新された日時。
-
created_by_id: テンプレートを作成した
userid。システムが作成した場合は空白です。 -
modified_by_id: テンプレートを最後に変更した
userid。システムが作成した場合は空白です。 - current_job_id: テンプレートの現在実行中のジョブ ID (該当する場合)。
- last_job_id: ジョブの最後の実行。
- last_job_run: ジョブが最後に実行された時刻。
-
last_job_failed:
last_job_idが失敗したかどうか。 -
status:
last_job_idのステータス。 - next_job_run: テンプレートで次にスケジュールされている実行 (該当する場合)。
-
next_schedule_id:
next_job_runのスケジュール ID (該当する場合)。
18.2.13. unified_jobs_table.csv リンクのコピーリンクがクリップボードにコピーされました!
unified_jobs_table.csv ファイルは、システムによって実行されるジョブに関する情報を提供します。
各行にはジョブに関する次のフィールドがあります。
- id: ジョブ ID。
- name: ジョブ名 (テンプレートから)。
- polymorphic_ctype_id: ジョブのタイプの ID。
-
model: ジョブの
polymorphic_ctype_idの名前。例として、jobやworkflowなどがあります。 - organization_id: ジョブの組織 ID。
-
organization_name:
organization_idの名前。 - created: ジョブレコードが作成された日時。
- started: ジョブの実行が開始した日時。
- finished: ジョブが終了した日時。
- elapsed: ジョブの経過時間 (秒単位)。
- unified_job_template_id: このジョブのテンプレート。
-
launch_type:
manual、scheduled、relaunched、scm、workflow、dependencyのいずれか。 - schedule_id: ジョブを起動したスケジュールの ID (該当する場合)
- instance_group_id: ジョブを実行したインスタンスグループ。
- execution_node: ジョブを実行したノード (UUID ではなくホスト名)。
- controller_node: ジョブの Automation Controller ノード (分離ジョブとして実行される場合、またはコンテナーグループ内で実行される場合)。
- cancel_flag: ジョブがキャンセルされたかどうか。
- status: ジョブのステータス。
- failed: ジョブが失敗したかどうか。
- job_explanation: 適切に実行できなかったジョブの追加の詳細。
- forks: ジョブに対して実行されたフォークの数。
18.2.14. workflow_job_template_node_table.csv リンクのコピーリンクがクリップボードにコピーされました!
workflow_job_template_node_table.csv は、システムのワークフロージョブテンプレートで定義されるノードの情報を提供します。
各行には、ワークフローのジョブテンプレートノードに以下のフィールドが含まれます。
- id: ノード ID。
- created: ノードが作成された日時。
- modified: ノードが最後に更新された日時。
- unified_job_template_id: このノードのジョブテンプレート、プロジェクト、インベントリー、またはその他の親リソースの ID。
- workflow_job_template_id: このノードを含むワークフローのジョブテンプレート。
- inventory_id: このノードによって使用されるインベントリー。
- success_nodes: このノードが成功した後にトリガーされるノード。
- failure_nodes: このノードが失敗した後にトリガーされるノード。
- always_nodes: このノードの終了後に常にトリガーされるノード。
- all_parents_must_converge: このノードを起動するためにすべての親条件が満たされる必要があるかどうか。
18.2.15. workflow_job_node_table.csv リンクのコピーリンクがクリップボードにコピーされました!
workflow_job_node_table.csv は、システム上のワークフローの一部として実行されたジョブに関する情報を提供します。
各行には、ワークフローの一部として実行されるジョブに次のフィールドが含まれています。
- id: ノード ID。
- created: ノードが作成された日時。
- modified: ノードが最後に更新された日時。
- job_id: このノードで実行されるジョブのジョブ ID。
- unified_job_template_id: このノードのジョブテンプレート、プロジェクト、インベントリー、またはその他の親リソースの ID。
- workflow_job_template_id: このノードを含むワークフローのジョブテンプレート。
- inventory_id: このノードによって使用されるインベントリー。
- success_nodes: このノードが成功した後にトリガーされるノード。
- failure_nodes: このノードが失敗した後にトリガーされるノード。
- always_nodes: このノードの終了後に常にトリガーされるノード。
- do_not_run: 開始条件がトリガーされなかったためにワークフローで実行されなかったノード。
- all_parents_must_converge: このノードを起動するためにすべての親条件が満たされる必要があるかどうか。
18.2.16. events_table.csv リンクのコピーリンクがクリップボードにコピーされました!
これによって、システム内のすべてのジョブ実行からのすべてのジョブイベントに関する情報が提供されます。
各行には、ジョブイベントに関する次のフィールドがあります。
- id: イベント ID。
- uuid: イベント UUID。
- created: イベントが作成された日時。
- parent_uuid: このイベントの親 UUID (存在する場合)。
- event: Ansible イベントタイプ。
-
task_action: このイベントに関連付けられたモジュール (存在する場合) (
commandやyumなど)。 -
failed: イベントが
failedを返したかどうか。 -
changed: イベントが
changedを返したかどうか。 - Playbook: イベントに関連付けられた Playbook。
- play: Playbook のプレイ名。
- task: Playbook のタスク名。
- role: Playbook のロール名。
- job_id: このイベントが発生したジョブの ID。
- host_id: このイベントが関連付けられているホストの ID (存在する場合)。
- host_name: このイベントが関連付けられているホストの名前 (存在する場合)。
- start: タスクの開始時刻。
- end: タスクの終了時刻。
- duration: タスクの期間。
- warnings: タスクまたはモジュールからの警告。
- deprecations: タスクまたはモジュールからの非推奨の警告。