Aggregieren von Bestandsdaten - AWS Systems Manager

Aggregieren von Bestandsdaten

Nach der Konfiguration Ihrer verwalteten Knoten für AWS Systems Manager Inventory können Sie die aggregierte Anzahl der Bestandsdaten anzeigen. Nehmen wir beispielsweise an, Sie haben Dutzende oder Hunderte von verwalteten Knoten zur Erfassung des Bestandstyps AWS:Application konfiguriert. Mithilfe der Informationen in diesem Abschnitt können Sie die genaue Zahl der Knoten anzeigen, die zum Erfassen dieser Daten konfiguriert sind.

Sie können außerdem spezifische Bestandsdetails durch Aggregieren eines Datentyps sehen. Beispiel: Der Bestandstyp AWS:InstanceInformation erfasst Betriebssystem-Plattforminformationen mit dem Datentyp Platform. Durch die Aggregierung von Daten für den Datentyp Platform können Sie schnell sehen, wie viele Knoten Windows, wie viele Linux ausführen und wie viele macOS ausführen.

Die Verfahren in diesem Abschnitt beschreiben, wie Sie die aggregrierte Zahl der Bestandsdaten mithilfe der AWS Command Line Interface (AWS CLI) anzeigen. Außerdem können Sie vorkonfigurierte aggregierte Zählungen in der AWS Systems Manager-Konsole auf der Seite Inventory (Bestand) anzeigen. Diese vorkonfigurierten Dashboards werden als Inventory Insights (Bestandseinblicke) bezeichnet. Sie bieten eine 1-Klick-Wiederherstellung Ihrer Bestand-Konfigurationsprobleme.

Beachten Sie die folgenden wichtigen Details zu den Aggregationszählungen von Bestandsdaten:

  • Wenn Sie einen verwalteten Knoten beenden, der zum Sammeln von Bestandsdaten konfiguriert ist, behält Systems Manager die Bestandsdaten 30 Tage lang bei und löscht sie anschließend. Für ausgeführte Knoten löscht das System alle Bestandsdaten, die älter als 30 Tage sind. Wenn Sie Bestandsdaten länger als 30 Tage speichern müssen, können Sie mit AWS Config einen Verlauf aufzeichnen oder die Daten regelmäßig abfragen und in einen Amazon Simple Storage Service (Amazon S3)-Bucket hochladen.

  • Wenn ein Knoten zuvor konfiguriert wurde, um einen spezifischen Bestandsdatentyp zu melden, z. B. AWS:Network, und Sie die Konfiguration später so ändern, dass die Daten dieses Typs nicht mehr erfasst werden, zeigt die Aggregationszählung nach wie vor AWS:Network-Daten an, bis der Knoten beendet wurde und 30 Tage vergangen sind.

Weitere Informationen zum schnellen Konfigurieren und Erfassen von Bestandsdaten aus allen Knoten in einem bestimmten AWS-Konto (und allen künftigen Knoten, die in diesem Konto erstellt werden) finden Sie unter Bestandsaufnahme aller verwalteten Knoten in Ihrem AWS-Konto.

Aggregieren von Bestandsdaten zum Anzeigen der Anzahl von Knoten, die bestimmte Arten von Daten erfassen

Sie können die AWS Systems Manager GetInventory-API-Operation verwenden, um aggregierte Zählungen der Knoten anzuzeigen, die einen oder mehrere Bestands- und Datentypen erfassen. Zum Beispiel, ermöglicht der AWS:InstanceInformation-Inventory-Typ das Anzeigen der aggregierten Zahl von Betriebssystemen mithilfe der GetInventory-API-Operation und dem AWS:InstanceInformation.PlatformType-Datentyp. Hier finden Sie ein Beispiel für den AWS CLI-Befehl und die Ausgabe.

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

Das System gibt unter anderem folgende Informationen zurück

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

Bestimmen Sie die Bestands- und Datentypen, für die Sie Zählungen anzeigen möchten. Sie können eine Liste der Bestandstypen und Datentypen anzeigen, die die Aggregation unterstützen, indem Sie den folgenden Befehl im Fenster AWS CLI ausführen.

aws ssm get-inventory-schema --aggregator

Der Befehl gibt eine JSON-Liste mit Bestands- und Datentypen zurück, die die Aggregation unterstützen. Das Feld TypeName enthält die unterstützten Bestandstypen. Das Feld Name zeigt die einzelnen Datentypen. Der Bestandstyp AWS:Application in der folgenden Listen enthält z. B. Datentypen für Name und 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"
                }
            ]
        }
    ]
}

Sie können Daten für einen der gelisteten Bestandstypen aggregieren, indem Sie einen Befehl erstellen, der die folgende Syntax verwendet.

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

Hier sind einige Beispiele.

Beispiel 1

Dieses Beispiel aggregiert eine Zählung der Windows-Rollen, die von Ihren Knoten verwendet werden.

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

Beispiel 2

Dieses Beispiel aggregiert eine Zählung der Anwendungen, die auf Ihren Knoten installiert sind.

aws ssm get-inventory --aggregators "Expression=AWS:Application.Name"
Kombinieren von mehreren Aggregatoren

Sie können auch mehrere Bestands- und Datentypen in einem Befehl kombinieren, um die Daten besser zu verstehen. Hier sind einige Beispiele.

Beispiel 1

Dieses Beispiel aggregiert eine Zählung der Betriebssystemtypen, die von Ihren Knoten verwendet werden. Außerdem wird der spezifische Name der Betriebssysteme zurückgegeben.

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

Beispiel 2

Dieses Beispiel aggregiert eine Zählung der Anwendungen, die auf Ihren Knoten ausgeführt werden, sowie die spezifische Version der einzelnen Anwendungen.

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

Wenn Sie möchten, können Sie einen Aggregationsausdruck mit einem oder mehreren Bestands- und Datentypen in einer JSON-Datei erstellen und die Datei über die AWS CLI aufrufen. Die JSON-Datei muss die folgende Syntax verwenden.

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

Sie müssen die Datei mit der Erweiterung „.json” speichern.

Im folgenden Beispiel werden mehrere Bestands- und Datentypen verwendet.

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

Rufen Sie die Datei mit folgendem Befehl über die AWS CLI auf.

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

Der Befehl gibt Informationen wie die folgenden zurück.

{"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"}
 ]
}

Aggregieren von Bestandsdaten mit Gruppen, um zu sehen, welche Knoten zur Erfassung eines Bestandstyps konfiguriert sind und welche nicht

Gruppen in Systems Manager Inventory ermöglichen es Ihnen, schnell eine Anzahl der verwalteten Knoten zu sehen, die für das Erfassen einer oder mehrerer Bestandstypen konfiguriert bzw. nicht konfiguriert sind. Mit Gruppen geben Sie einen oder mehrere Bestandstypen sowie einen Filter an, der den exists-Operator verwendet.

Beispiel: Angenommen, Sie haben vier verwaltete Knoten zum Erfassen der folgenden Bestandstypen konfiguriert:

  • Knoten 1: AWS:Application

  • Knoten 2: AWS:File

  • Knoten 3: AWS:Application, AWS:File

  • Knoten 4: AWS:Network

Sie können den folgenden Befehl in der AWS CLI ausführen, um zu sehen, wie viele Knoten zum Erfassen der Bestandstypen AWS:Application und AWS:File inventory konfiguriert sind. Die Antwort gibt auch die Anzahl der Knoten zurück, die nicht zum Erfassen dieser beiden Bestandstypen konfiguriert sind.

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

Die Befehlsantwort zeigt, dass nur ein verwalteter Knoten zum Erfassen der beiden Bestandstypen AWS:Application und AWS:File konfiguriert ist.

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

Gruppen geben keine Datentypzahlen zurück. Außerdem können Sie die Ergebnisse nicht aufschlüsseln, um die IDs von Knoten zu sehen, die zum Erfassen des Bestandstyps konfiguriert bzw. nicht konfiguriert sind.

Wenn Sie möchten, können Sie einen Aggregationsausdruck mit einem oder mehreren Bestandstypen in einer JSON-Datei erstellen und die Datei über die AWS CLI aufrufen. Die JSON-Datei muss die folgende Syntax verwenden:

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

Sie müssen die Datei mit der Erweiterung „.json” speichern.

Rufen Sie die Datei mit folgendem Befehl über die AWS CLI auf.

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

Die folgenden Beispiele zeigen Ihnen, wie Sie Bestandsdaten aggregieren, um zu sehen, welche verwalteten Knoten zum Erfassen der angegebenen Bestandstypen konfiguriert bzw. nicht konfiguriert sind. Diese Beispiele verwenden die AWS CLI. Jedes Beispiel enthält einen vollständigen Befehl mit Filtern, die Sie über die Befehlszeile ausführen können, und eine input.json-Beispieldatei, falls Sie es vorziehen, die Informationen in eine Datei einzugeben.

Beispiel 1

Dieses Beispiel aggregiert eine Zählung der Knoten, die zum Erfassen entweder des Bestandstyps AWS:Application oder des Typs AWS:File konfiguriert bzw. nicht konfiguriert sind.

Führen Sie den folgenden Befehl über die AWS CLI aus.

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

Wenn Sie eine Datei verwenden möchten, kopieren Sie das folgende Beispiel in eine Datei und speichern Sie sie unter dem Namen input.json.

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

Führen Sie den folgenden Befehl über die AWS CLI aus.

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

Der Befehl gibt Informationen wie die folgenden zurück.

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

Beispiel 2

Dieses Beispiel aggregiert eine Zählung der Knoten, die zum Erfassen des Bestandstyps AWS:Application, AWS:File und AWS:Network konfiguriert bzw. nicht konfiguriert sind.

Führen Sie den folgenden Befehl über die AWS CLI aus.

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}]}]'

Wenn Sie eine Datei verwenden möchten, kopieren Sie das folgende Beispiel in eine Datei und speichern Sie sie unter dem Namen 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" } ] } ] } ] }

Führen Sie den folgenden Befehl über die AWS CLI aus.

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

Der Befehl gibt Informationen wie die folgenden zurück.

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