インベントリデータの集計 - AWS Systems Manager

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

インベントリデータの集計

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

データ型で集計することで、特定のインベントリの詳細を確認することもできます。例えば、AWS:InstanceInformation インベントリタイプは、Platform データ型とオペレーティングシステムのプラットフォーム情報を収集します。Platform データ型でデータを集計することで、Windows を実行するノードの数、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 Systems Manager GetInventory 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"}
 ]
}

インベントリタイプを収集するように設定されている/設定されていないノードを確認するためのグループによるインベントリデータの集計

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

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

  • ノード 1: AWS:Application

  • ノード 2: AWS:File

  • ノード 3: AWS:ApplicationAWS: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:ApplicationAWS: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"
                  }
               ]
            }
         }
      }
   ]
}