

• AWS Systems Manager CloudWatch ダッシュボードは、2026 年 4 月 30 日以降は利用できなくなります。お客様は、これまでと同様に Amazon CloudWatch コンソールを使用して、Amazon CloudWatch ダッシュボードの表示、作成、管理を継続できます。詳細については、「[Amazon CloudWatch ダッシュボードのドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)」を参照してください。

# インベントリデータの集計
<a name="inventory-aggregate"></a>

AWS Systems Manager インベントリのマネージドノードを設定した後、インベントリデータの集計カウントを表示できます。例えば、数十または数百のマネージドノードで `AWS:Application` インベントリタイプを収集するように設定されている場合を考えます。このセクションの情報を使用することで、このデータを収集するように設定されているノードの数を正確に把握できます。

データ型で集計することで、特定のインベントリの詳細を確認することもできます。例えば、`AWS:InstanceInformation` インベントリタイプは、`Platform` データ型とオペレーティングシステムのプラットフォーム情報を収集します。`Platform` データ型でデータを集計することで、Windows Server を実行するノードの数、Linux を実行するノードの数、macOS を実行するノードの数を速やかに確認できます。

このセクションの手順では、AWS Command Line Interface (AWS CLI) を使用して、集計されたインベントリデータ数を表示する方法について説明します。AWS Systems Manager コンソールの [**インベントリ**] ページで、事前設定された集計カウントを表示することもできます。これらの事前設定されたダッシュボードは、*インベントリインサイト*と呼ばれ、インベントリ設定の問題を 1 クリックで修復する機能が用意されています。

インベントリデータの集計カウントに関する以下の重要な詳細情報に注意してください。
+ インベントリデータを収集するように設定されたマネージドノードを終了すると、Systems Manager はインベントリデータを 30 日間保持し、その後削除します。実行中のノードの場合、システムは 30 日以上経過した古いインベントリデータを削除します。インベントリデータを 30 日以上保存する必要がある場合は、AWS Config を使用して履歴を記録したり、データを定期的にクエリして Amazon Simple Storage Service (Amazon S3) バケットにアップロードしたりできます。
+ 以前に特定のインベントリデータタイプ (`AWS:Network` など) をレポートするようにノードが設定されていて、後で設定を変更し、そのタイプの収集を停止する場合は、ノードが終了し 30 日間が経過するまで、集計カウントに `AWS:Network` データが表示されます。

特定の AWS アカウント のすべてのノード (およびそのアカウントで作成される可能性がある将来のノード) に対してインベントリデータを迅速に設定および収集する方法については、「[AWS アカウント のすべてのマネージドイノードインベントリする](inventory-collection.md#inventory-management-inventory-all)」を参照してください。

**Topics**
+ [特定のタイプのデータを収集するノードのカウントを表示するためのインベントリデータの集計](#inventory-aggregate-type)
+ [インベントリタイプを収集するように設定されている/設定されていないノードを確認するためのグループによるインベントリデータの集計](#inventory-aggregate-groups)

## 特定のタイプのデータを収集するノードのカウントを表示するためのインベントリデータの集計
<a name="inventory-aggregate-type"></a>

AWS Systems Manager [GetInventory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetInventory.html) API オペレーションを使用して、1 つ以上のインベントリタイプとデータ型を収集するノードの集計数を表示できます。例えば、`AWS:InstanceInformation` インベントリタイプでは、GetInventory API オペレーションで `AWS:InstanceInformation.PlatformType` データ型を使用することにより、オペレーティングシステムの集計を表示できます。AWS CLI コマンドの例と出力を次に示します。

```
aws ssm get-inventory --aggregators "Expression=AWS:InstanceInformation.PlatformType"
```

システムが以下のような情報をレスポンスします。

```
{
   "Entities":[
      {
         "Data":{
            "AWS:InstanceInformation":{
               "Content":[
                  {
                     "Count":"7",
                     "PlatformType":"windows"
                  },
                  {
                     "Count":"5",
                     "PlatformType":"linux"
                  }
               ]
            }
         }
      }
   ]
}
```

**開始方法**  
カウントを表示するインベントリタイプとデータ型を決定します。AWS CLI で次のコマンドを実行して、集計をサポートするインベントリタイプとデータ型のリストを表示できます。

```
aws ssm get-inventory-schema --aggregator
```

このコマンドは、集計をサポートするデータ型とインベントリタイプの JSON リストを返します。[**TypeName**] フィールドには、サポートされているインベントリタイプが表示されます。また、[**Name (名前)**] フィールドに各データ型が表示されます。例えば、次のリストでは、`AWS:Application` インベントリタイプには `Name` および `Version` データ型が含まれています。

```
{
    "Schemas": [
        {
            "TypeName": "AWS:Application",
            "Version": "1.1",
            "DisplayName": "Application",
            "Attributes": [
                {
                    "DataType": "STRING",
                    "Name": "Name"
                },
                {
                    "DataType": "STRING",
                    "Name": "Version"
                }
            ]
        },
        {
            "TypeName": "AWS:InstanceInformation",
            "Version": "1.0",
            "DisplayName": "Platform",
            "Attributes": [
                {
                    "DataType": "STRING",
                    "Name": "PlatformName"
                },
                {
                    "DataType": "STRING",
                    "Name": "PlatformType"
                },
                {
                    "DataType": "STRING",
                    "Name": "PlatformVersion"
                }
            ]
        },
        {
            "TypeName": "AWS:ResourceGroup",
            "Version": "1.0",
            "DisplayName": "ResourceGroup",
            "Attributes": [
                {
                    "DataType": "STRING",
                    "Name": "Name"
                }
            ]
        },
        {
            "TypeName": "AWS:Service",
            "Version": "1.0",
            "DisplayName": "Service",
            "Attributes": [
                {
                    "DataType": "STRING",
                    "Name": "Name"
                },
                {
                    "DataType": "STRING",
                    "Name": "DisplayName"
                },
                {
                    "DataType": "STRING",
                    "Name": "ServiceType"
                },
                {
                    "DataType": "STRING",
                    "Name": "Status"
                },
                {
                    "DataType": "STRING",
                    "Name": "StartType"
                }
            ]
        },
        {
            "TypeName": "AWS:WindowsRole",
            "Version": "1.0",
            "DisplayName": "WindowsRole",
            "Attributes": [
                {
                    "DataType": "STRING",
                    "Name": "Name"
                },
                {
                    "DataType": "STRING",
                    "Name": "DisplayName"
                },
                {
                    "DataType": "STRING",
                    "Name": "FeatureType"
                },
                {
                    "DataType": "STRING",
                    "Name": "Installed"
                }
            ]
        }
    ]
}
```

次の構文を使用するコマンドを作成することで、リストされているインベントリタイプのいずれかのデータを集計できます。

```
aws ssm get-inventory --aggregators "Expression=InventoryType.DataType"
```

次に例を示します。

**例 1**

この例では、ノードによって使用される Windows ロールの数を集計します。

```
aws ssm get-inventory --aggregators "Expression=AWS:WindowsRole.Name"
```

**例 2**

この例では、ノードにインストールされているアプリケーション数を集計します。

```
aws ssm get-inventory --aggregators "Expression=AWS:Application.Name"
```

**複数のアグリゲータの結合**  
データをさらによく理解できるように、1 つのコマンドで複数のインベントリタイプとデータ型を組み合わせることもできます。次に例を示します。

**例 1**

この例では、ノードによって使用されるオペレーティングシステムのタイプ数を集計します。また、オペレーティングシステムの個別の名前も返します。

```
aws ssm get-inventory --aggregators '[{"Expression": "AWS:InstanceInformation.PlatformType", "Aggregators":[{"Expression": "AWS:InstanceInformation.PlatformName"}]}]'
```

**例 2**

この例では、各アプリケーションの特定のバージョンとノードで実行されているアプリケーションの数を集計します。

```
aws ssm get-inventory --aggregators '[{"Expression": "AWS:Application.Name", "Aggregators":[{"Expression": "AWS:Application.Version"}]}]'
```

必要に応じて、JSON ファイルの 1 つまたは複数のインベントリタイプとデータ型に対する集計式を作成し、AWS CLI からファイルを呼び出すことができます。ファイルの JSON には次の構文を使用する必要があります。

```
[
       {
           "Expression": "string",
           "Aggregators": [
               {
                  "Expression": "string"
               }
           ]
       }
]
```

.json 拡張子でファイルを保存する必要があります。

複数のインベントリタイプとデータ型を使用する例を次に示します。

```
[
       {
           "Expression": "AWS:Application.Name",
           "Aggregators": [
               {
                   "Expression": "AWS:Application.Version",
                   "Aggregators": [
                     {
                     "Expression": "AWS:InstanceInformation.PlatformType"
                     }
                   ]
               }
           ]
       }
]
```

次のコマンドを使用して AWS CLI からファイルを呼び出します。

```
aws ssm get-inventory --aggregators file://file_name.json
```

このコマンドによって以下のような情報が返されます。

```
{"Entities": 
 [
   {"Data": 
     {"AWS:Application": 
       {"Content": 
         [
           {"Count": "3", 
            "PlatformType": "linux", 
            "Version": "2.6.5", 
            "Name": "audit-libs"}, 
           {"Count": "2", 
            "PlatformType": "windows", 
            "Version": "2.6.5", 
            "Name": "audit-libs"}, 
           {"Count": "4", 
            "PlatformType": "windows", 
            "Version": "6.2.8", 
            "Name": "microsoft office"}, 
           {"Count": "2", 
            "PlatformType": "windows", 
            "Version": "2.6.5", 
            "Name": "chrome"}, 
           {"Count": "1", 
            "PlatformType": "linux", 
            "Version": "2.6.5", 
            "Name": "chrome"}, 
           {"Count": "2", 
            "PlatformType": "linux", 
            "Version": "6.3", 
            "Name": "authconfig"}
         ]
       }
     }, 
    "ResourceType": "ManagedInstance"}
 ]
}
```

## インベントリタイプを収集するように設定されている/設定されていないノードを確認するためのグループによるインベントリデータの集計
<a name="inventory-aggregate-groups"></a>

Systems Manager Inventory のグループを使用すると、1 つ以上のインベントリタイプを収集するように設定されている/設定されていないマネージドノードのカウントを迅速に確認できます。グループを使用して、`exists` オペレータを使用するフィルタと 1 つ以上のインベントリタイプを指定します。

たとえば、以下のインベントリタイプを収集するように設定されている 4 つのマネージドノードがある場合を考えます。
+ ノード 1: `AWS:Application`
+ ノード 2: `AWS:File`
+ ノード 3: `AWS:Application`、`AWS:File`
+ ノード 4: `AWS:Network`

AWS CLI から次のコマンドを実行して、`AWS:Application` および `AWS:File inventory` タイプの両方を収集するように設定されているノードの数を確認できます。レスポンスは、これら両方のインベントリタイプを収集するように設定されていないノードの数も返します。

```
aws ssm get-inventory --aggregators 'Groups=[{Name=ApplicationAndFile,Filters=[{Key=TypeName,Values=[AWS:Application],Type=Exists},{Key=TypeName,Values=[AWS:File],Type=Exists}]}]'
```

このコマンドのレスポンスでは、`AWS:Application` および `AWS:File` インベントリタイプの両方を収集するように設定されているマネージドノードは 1 つのみであること表しています。

```
{
   "Entities":[
      {
         "Data":{
            "ApplicationAndFile":{
               "Content":[
                  {
                     "notMatchingCount":"3"
                  },
                  {
                     "matchingCount":"1"
                  }
               ]
            }
         }
      }
   ]
}
```

**注記**  
グループはデータ型のカウントを返しません。また、インベントリタイプを収集するように設定されているノード ID、または設定されていないノード ID を表示する結果をドリルダウンすることはできません。

必要に応じて、JSON ファイルの 1 つまたは複数のインベントリタイプで集計式を作成し、AWS CLI からファイルを呼び出すことができます。ファイルの JSON には次の構文を使用する必要があります。

```
{
   "Aggregators":[
      {
         "Groups":[
            {
               "Name":"Name",
               "Filters":[
                  {
                     "Key":"TypeName",
                     "Values":[
                        "Inventory_type"
                     ],
                     "Type":"Exists"
                  },
                  {
                     "Key":"TypeName",
                     "Values":[
                        "Inventory_type"
                     ],
                     "Type":"Exists"
                  }
               ]
            }
         ]
      }
   ]
}
```

.json 拡張子でファイルを保存する必要があります。

次のコマンドを使用して AWS CLI からファイルを呼び出します。

```
aws ssm get-inventory --cli-input-json file://file_name.json
```

**その他の例**  
次の例は、指定されたインベントリタイプを収集するように設定されている/設定されていないマネージドノードを確認するためにインベントリデータを集計する方法を示します。以下の例では、AWS CLI を使用します。それぞれの例には、コマンドラインから実行できるフィルタ付きのフルコマンドと、情報をファイルに入力する場合のサンプル input.json ファイルが含まれています。

**例 1**

この例では、`AWS:Application` または `AWS:File` インベントリタイプを収集するように設定されている/設定されていないノードの数を集計します。

AWS CLI から、次のコマンドを実行します。

```
aws ssm get-inventory --aggregators 'Groups=[{Name=ApplicationORFile,Filters=[{Key=TypeName,Values=[AWS:Application, AWS:File],Type=Exists}]}]'
```

ファイルを使用する場合は、以下のサンプルをコピーしてファイルに貼り付け、input.json ファイルとして保存します。

```
{
   "Aggregators":[
      {
         "Groups":[
            {
               "Name":"ApplicationORFile",
               "Filters":[
                  {
                     "Key":"TypeName",
                     "Values":[
                        "AWS:Application",
                        "AWS:File"
                     ],
                     "Type":"Exists"
                  }
               ]
            }
         ]
      }
   ]
}
```

AWS CLI から、次のコマンドを実行します。

```
aws ssm get-inventory --cli-input-json file://input.json
```

このコマンドによって以下のような情報が返されます。

```
{
   "Entities":[
      {
         "Data":{
            "ApplicationORFile":{
               "Content":[
                  {
                     "notMatchingCount":"1"
                  },
                  {
                     "matchingCount":"3"
                  }
               ]
            }
         }
      }
   ]
}
```

**例 2**

この例では、`AWS:Application`、`AWS:File`、および `AWS:Network` インベントリタイプを収集するように設定されているノードとそう設定されていないノードの数を集計します。

AWS CLI から、次のコマンドを実行します。

```
aws ssm get-inventory --aggregators 'Groups=[{Name=Application,Filters=[{Key=TypeName,Values=[AWS:Application],Type=Exists}]}, {Name=File,Filters=[{Key=TypeName,Values=[AWS:File],Type=Exists}]}, {Name=Network,Filters=[{Key=TypeName,Values=[AWS:Network],Type=Exists}]}]'
```

ファイルを使用する場合は、以下のサンプルをコピーしてファイルに貼り付け、input.json ファイルとして保存します。

```
{
   "Aggregators":[
      {
         "Groups":[
            {
               "Name":"Application",
               "Filters":[
                  {
                     "Key":"TypeName",
                     "Values":[
                        "AWS:Application"
                     ],
                     "Type":"Exists"
                  }
               ]
            },
            {
               "Name":"File",
               "Filters":[
                  {
                     "Key":"TypeName",
                     "Values":[
                        "AWS:File"
                     ],
                     "Type":"Exists"
                  }
               ]
            },
            {
               "Name":"Network",
               "Filters":[
                  {
                     "Key":"TypeName",
                     "Values":[
                        "AWS:Network"
                     ],
                     "Type":"Exists"
                  }
               ]
            }
         ]
      }
   ]
}
```

AWS CLI から、次のコマンドを実行します。

```
aws ssm get-inventory --cli-input-json file://input.json
```

このコマンドによって以下のような情報が返されます。

```
{
   "Entities":[
      {
         "Data":{
            "Application":{
               "Content":[
                  {
                     "notMatchingCount":"2"
                  },
                  {
                     "matchingCount":"2"
                  }
               ]
            },
            "File":{
               "Content":[
                  {
                     "notMatchingCount":"2"
                  },
                  {
                     "matchingCount":"2"
                  }
               ]
            },
            "Network":{
               "Content":[
                  {
                     "notMatchingCount":"3"
                  },
                  {
                     "matchingCount":"1"
                  }
               ]
            }
         }
      }
   ]
}
```